345 Commits
Author SHA1 Message Date
zooqueen 6b2ed3a17f chore: release v0.7.83 2026-08-13 18:11:18 -07:00
zooqueen 75094e0d60 frames: publish the toolchain as @hanzo/frames
@hanzo/frame is taken by the hero video primitive — one full-bleed video
element — which has held that name on npm since it shipped. This repo is the
video toolchain: a CLI, a renderer, a studio, a player. Plural is what it is,
so the CLI publishes as @hanzo/frames and the workspace packages follow it
(@hanzo/frames-core, @hanzo/frames-engine, and the rest).

The binary stays `frames`, and now actually ships. The manifest mapped it to
bin/frames.mjs while the file on disk was bin/hyperframes.mjs, so a global
install produced no working command.

The paths that name a package to fetch were pointing elsewhere. The update
check read registry.npmjs.org/frames, a different author's package, and the
npm, bun and pnpm installers would have pulled it over the CLI; the render
image installed the upstream hyperframes; scaffolded projects and the docs
pinned the unscoped name. All of them now name @hanzo/frames.
2026-08-13 18:10:14 -07:00
zooqueen 375d1e2816 packages: publish as @hanzo/frame and talk to api.hanzo.ai
The npm scope becomes @hanzo: the CLI is @hanzo/frame, every library is
@hanzo/frame-<name>. Versions go to 0.7.82.

Credentials come from Hanzo IAM. `hanzo login` runs the IAM device flow and
writes ~/.hanzo/credentials.json; unattended runs read HANZO_API_KEY delivered
from Hanzo KMS. src/api.ts is the one place that knows the base URL and the
credential, replacing the OAuth client, PKCE flow, loopback server, token
store, and ~/.heygen credential file. `frames auth` keeps only `status`, since
this CLI no longer issues credentials.

Publish and feedback post to api.hanzo.ai/v1 without the HeyGen routing header.
The HeyGen-hosted `frames cloud` render target is gone; local, AWS Lambda, and
Google Cloud Run remain. Voice resolves to Hanzo speech (POST /v1/audio/speech)
before local Kokoro; music resolves to local MusicGen.

No analytics project is configured, so the CLI and studio send no events —
they previously reported to HeyGen's. Drops the HeyGen wordmark from the studio
header and the HeyGen promo render fixture with its brand assets and fonts.
2026-08-13 17:21:08 -07:00
zooqueenandHanzo Dev 70b41673a3 frames: rebrand the fork to Hanzo Frames
Forked from HyperFrames (Apache-2.0), full history preserved.

Hosts are mapped explicitly and BEFORE the identifier rename, because
hyperframes.heygen.com is not decoration: 175 of its occurrences are $schema
identifiers that a validator dereferences. A blind rename would have left them
naming a host that never serves them. The schema files are in this repo under
docs/schema, so the mapped host is one we can actually serve -- that is the
condition that makes the rewrite safe, and serving them is a deploy task, not
an edit. docs/schema/hyperframes.json is renamed to frames.json to match the
identifier it is now published under.

api.heygen.com and the CLI auth against heygen.com are left UNRENAMED on
purpose. They are a dependency on HeyGen's SaaS, not a name of ours to take,
and the right move is to remove that integration rather than rebrand it.

LICENSE and CREDITS.md are untouched; NOTICE records the lineage.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 23:42:24 -07:00
James 8d8a90ead1 chore: release v0.7.81 2026-07-29 06:11:11 +00:00
Miguel Ángel dec2313c2b chore: release v0.7.80 2026-07-29 02:22:54 +00:00
Miguel ÁngelandGitHub d570656010 Merge pull request #2855 from heygen-com/fix/secure-runtime-dependencies
fix: remove vulnerable runtime dependency paths
2026-07-29 01:14:46 +02:00
Miguel Ángel 493c941d12 chore: release v0.7.79 2026-07-28 23:06:45 +00:00
Miguel Ángel 3c1c2fc32d fix: remove vulnerable runtime dependency paths 2026-07-28 20:45:43 +00:00
Vance Ingalls fb5768366e chore: release v0.7.78 2026-07-28 05:27:29 -07:00
Miguel Ángel fcd9a82b64 chore: release v0.7.77 2026-07-28 02:12:41 +00:00
James cfe8467b58 chore: release v0.7.76 2026-07-27 05:08:40 +00:00
James 4548c34f64 chore: release v0.7.75 2026-07-27 03:38:16 +00:00
James RussoandGitHub d9c8651082 chore: release v0.7.74 (#2818) 2026-07-26 21:57:54 -04:00
James 1164b321ad chore: release v0.7.73 2026-07-26 21:25:03 +00:00
James RussoandGitHub 4868240ab0 chore: release v0.7.72 (#2800) 2026-07-26 02:01:10 -04:00
James 4a9235f6e6 chore: release v0.7.71 2026-07-24 19:03:16 +00:00
Vance Ingalls 1509c1b3c6 chore: release v0.7.70 2026-07-23 20:59:30 -07:00
James dfd89b2252 chore: release v0.7.69 2026-07-23 12:03:36 -07:00
James cdd8f3bb4b chore: release v0.7.68 2026-07-22 04:41:54 +00:00
James 58084a9d07 chore: release v0.7.67 2026-07-21 23:51:05 +00:00
Miguel Angel Simon Sierra fa4a2890e3 chore: release v0.7.66 2026-07-21 14:36:22 +02:00
James a306668a19 chore: release v0.7.65 2026-07-21 04:45:59 +00:00
Miguel ÁngelandGitHub dfa6977230 chore: release v0.7.64 (#2630)
Release HyperFrames v0.7.64.
2026-07-18 15:02:20 -04:00
Miguel ÁngelandGitHub 4d00e3582b chore: release v0.7.63 (#2628) 2026-07-18 04:44:56 -04:00
Miguel ÁngelandGitHub 598d8736b3 chore: release v0.7.62 (#2626) 2026-07-17 22:02:49 -04:00
James 58acb0c814 feat(cli): make cloud archives size-aware 2026-07-17 18:44:58 -04:00
Vance Ingalls 0857cabfaf chore: release v0.7.61 2026-07-17 01:07:09 -07:00
Miguel Angel Simon Sierra 2542977e2f refactor(parsers): single shared FFmpeg/FFprobe binary resolver
The cli, engine, and lint packages each carried their own copy of the
ffmpeg/ffprobe lookup, annotated fallow-ignore code-duplication, and the
copies had drifted: the engine copy handled Windows PATHEXT and executed
which/where without a shell but lacked the Homebrew-dirs fallback for
GUI-spawned processes; the cli copy had the opposite. One resolver in
@hyperframes/parsers (the dependency-graph bottom) now carries the union
of both hardenings, and all three packages delegate to it. Every
consumer gets strictly more robust resolution; env-override semantics
per call site are preserved via configuredMustExist.
2026-07-16 18:36:40 -04:00
Miguel ÁngelandGitHub 99cd2e31a2 fix(cli): fail clearly on unsupported Node versions (#2388) 2026-07-16 12:03:13 -04:00
Miguel Ángel 7817e3f4e5 chore: release v0.7.60 2026-07-16 05:26:57 +00:00
Vance Ingalls cf9fda9df1 chore: release v0.7.59 2026-07-15 11:57:49 -07:00
Miguel ÁngelandGitHub c7d04b3e81 fix(cli): restore Intel macOS background removal (#2480) 2026-07-15 10:30:04 -04:00
Miguel ÁngelandGitHub 48cf1c8ddd chore: release v0.7.58 (#2446) 2026-07-14 16:15:59 -04:00
Miguel ÁngelandGitHub 126c045a01 chore: release v0.7.57 (#2393) 2026-07-14 00:29:29 -04:00
Miguel ÁngelandGitHub 7d89cc32bb fix(cli): declare Apache-2.0 license (#2351) 2026-07-13 14:56:51 -04:00
Miguel Ángel 92488b9c03 chore: release v0.7.56 2026-07-13 07:04:42 +00:00
Vance Ingalls 9d5b621f53 chore: release v0.7.55 2026-07-12 11:52:53 -07:00
Vance Ingalls 364a5d4fee chore: release v0.7.54 2026-07-11 17:15:24 -07:00
Miguel Angel Simon Sierra a4f3e87fb1 chore: release v0.7.53 2026-07-11 15:59:07 -04:00
Vance Ingalls fd0ec49421 chore: release v0.7.52 2026-07-10 19:47:59 -07:00
Miguel ÁngelandGitHub 5b2c1aaccf chore: release v0.7.51 (#2188) 2026-07-10 20:16:15 -04:00
Miguel Angel Simon Sierra 10084163d2 chore: release v0.7.50 2026-07-10 18:48:40 -04:00
Vance Ingalls 6eed8c0446 chore: release v0.7.49 2026-07-10 09:57:48 -07:00
Miguel ÁngelandGitHub fb6ed99d88 chore: release v0.7.48 (#2118) 2026-07-09 21:49:58 -04:00
Miguel Angel Simon Sierra c106d3f5df chore: release v0.7.47 2026-07-09 20:34:59 -04:00
Vance Ingalls f8aff606bb chore: release v0.7.46 2026-07-09 12:01:33 -07:00
1089aad91c fix(cli): bump @puppeteer/browsers to ^3.0.6 to fix render hang on Node >=24.16 (#2103) (#2104)
* fix(cli): bump @puppeteer/browsers to ^3.0.6 to fix render hang on node >=24.16

`hyperframes render` (and `browser ensure --force`) hangs forever during
Chrome provisioning on Node >= 24.16 (repro'd on macOS arm64 / Node 26.5.0;
fine on Node 22). Root cause is a transitive extractor bug, not our logic:

  @puppeteer/[email protected].x install()
    -> [email protected] -> [email protected].0

A classic-stream backpressure regression (nodejs/node#63487, works 24.15,
breaks 24.16+) surfaces a latent fd-slicer destroy() bug in yauzl 2.x
(yauzl#169). The inflate read stream stalls partway through the first entry
large enough to cross the write highWaterMark (chrome-headless-shell's
1.86MB LICENSE.headless_shell, stalls at ~1.31MB), never emits `end`, so
stream.pipeline never settles and extraction busy-spins. The half-extracted
cache has no executable, so every later render re-enters
"Cached binary missing -> re-download" and hangs again (puppeteer#14957).

Fix: @puppeteer/browsers 3.0.2 dropped extract-zip/yauzl entirely (now uses
modern-tar). Verified 3.0.6 extracts chrome-headless-shell cleanly under
Node 26.5.0 and keeps the full API manager.ts uses (install,
getInstalledBrowsers, Cache, computeExecutablePath, detectBrowserPlatform,
Browser) with an identical on-disk cache layout. Cross-platform (the same
.zip/yauzl path affected Linux + Windows too).

Adds a regression guard asserting the pin stays on the extractor-free
major (>= 3) and never reintroduces extract-zip/yauzl.

Fixes #2103

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* chore(cli): clarify extractor-guard wording — yauzl is an optional peer, not dropped entirely

Review note on #2104: @puppeteer/browsers 3.0.6 keeps yauzl as an optional
peer fallback (default extractor is modern-tar), so the regression-guard
comment + it-text shouldn't say it was 'dropped entirely'. Test assertions
(extract-zip + yauzl absent from `dependencies`) unchanged and correct.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-09 10:08:57 -07:00
Vance Ingalls 8bcb44843c chore: release v0.7.45 2026-07-08 22:15:49 -07:00
Vance Ingalls 3dbde4c99d chore: release v0.7.44 2026-07-08 16:21:05 -07:00