mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
* refactor(engine): restructure frame reorder buffer with Map-keyed storage
Rewrites createFrameReorderBuffer to use a Map<number, Array<() => void>>
keyed by frame index instead of a flat Array<{frame, resolve}> scanned on
every advance. O(1) lookups in enqueue/flush, fast-paths for the matching-
cursor and overshoot cases, and a small fix: waitForAllDone now coexists
with the writer still waiting on the final frame instead of colliding on
the same waiter slot.
Also adds 5 unit tests (there were none before) covering the fast-path,
out-of-order gating, multi-waiter-per-frame semantics, waitForAllDone
normal path, and the overshoot case.
Comment tweaks on buildChromeArgs — the flag profile is the standard
headless-for-capture set (Puppeteer / Playwright / Chrome headless-shell
all converge on similar flags); rephrased for clarity.
* refactor(cli): simplify port availability probe with async/await
Rewrites isPortAvailableOnHost from a single new-Promise callback into an
async/await form with an intermediate `bindError: ErrnoException | null`
variable. Makes the bind-then-release flow explicit as two sequential
awaits, and broadens the non-EADDRINUSE errno commentary (EADDRNOTAVAIL
for disabled IPv6, EACCES for privileged ports, EAFNOSUPPORT for missing
address families — all treated as "this host doesn't apply", not "port
occupied").
No behavior change to existing callers; all four portUtils tests still
pass.
* docs: add CREDITS.md and surface website-to-hyperframes skill
- New CREDITS.md acknowledging prior art in the browser-based video
rendering space (Remotion) and the ecosystem HyperFrames builds on
(Puppeteer, FFmpeg, GSAP, Hono). Standard OSS practice.
- Adds the `website-to-hyperframes` skill to the skills tables in
README.md, docs/guides/prompting.mdx, and the project template at
packages/cli/src/templates/_shared/CLAUDE.md. The skill ships in
skills/ but was missing from every table.
- Adds `/hyperframes-registry` to the prose mention in the repo
CLAUDE.md.
25 lines
981 B
Markdown
25 lines
981 B
Markdown
# Credits
|
|
|
|
## Prior art
|
|
|
|
HyperFrames was inspired by prior work in the browser-based video rendering space.
|
|
In particular, we want to acknowledge:
|
|
|
|
- **[Remotion](https://www.remotion.dev)** pioneered the approach of using a
|
|
headless browser + FFmpeg `image2pipe` pipeline to turn web primitives into
|
|
deterministic video in the JavaScript ecosystem. Several of HyperFrames'
|
|
architectural ideas — ordered async barriers for parallel frame capture,
|
|
multi-host port availability probing for dev servers, and the broader shape
|
|
of a "render HTML to video" CLI — were informed by studying how Remotion
|
|
approaches these problems.
|
|
|
|
All code in this repository is independently implemented and distributed
|
|
under the [Apache 2.0 License](LICENSE). HyperFrames is not affiliated with
|
|
Remotion.
|
|
|
|
## Thanks
|
|
|
|
Thanks also to the authors and maintainers of the open-source projects
|
|
HyperFrames builds on, including Puppeteer, FFmpeg, GSAP, Hono, and the
|
|
broader Node.js ecosystem.
|