HyperFrames v0.8.51
Released on 2026-09-19.
Speed ramps land end to end: a rate lane in data-automation that renders with the same source-time mapping as the preview. A composition with no authored length now takes it from its clips, and hyperframes timeline prints a project's tracks and clips from the CLI.
Features
- Studio: Studio now records why a composition could not be opened for editing, so the remaining cases can be diagnosed (ff078accd, #4161).
- Core: A composition with no authored length takes it from its clips (fa44d7621, #4174).
- Studio: Dock engine for a movable Studio layout, not yet wired in (dc9469244, #4165).
- Core: Video, audio and image length come from one shared resolver (09aadd86a, #4166).
- Engine: Render speed ramps with the same source-time mapping as the preview (bdecae066, #4143).
- Core: Speed ramps as a rate lane in data-automation (7f452ad27, #4129).
- Studio: Trimming a clip shows the snap guide and the frame at the dragged edge (86667203c, #4163).
- Studio: Move every design value into one theme file (339dc7602, #3621).
- Studio: The Lint badge pulses while an error finding exists (f50df3767, #4152).
- CLI: Hyperframes timeline prints a project's tracks and clips (0a5c23517, #4138).
- Studio: Upgrade Studio to Tailwind CSS v4 (68b61675e, #3618).
- Parsers: Detect where the gsap timeline disagrees with timing attributes (144e8023c, #4147).
- Producer: One router predicate for segmented capture, multi-worker allowed (f78c3cb8d).
- Producer: Capture segments with N parallel workers off a shared queue (4e4cfe7ee).
- Producer: Wire the segment browser-recycle cadence and retry telemetry (c87b4d1b4).
- Producer: Recycle the browser between segments and retry target loss once (7d214e96e).
- Producer: Target-loss classifier and browser recycle cadence (61223223d).
- Render: --resume and --keep-segments for segmented capture (a560f498c).
- Producer: Segmented stage skips validated segments and reports completions (8c14169ef).
- Producer: Segment manifest with content-addressed plan hash (5daaae849).
- Producer: Route long renders to segmented capture behind HF_SEGMENTED_CAPTURE (4b54b5d26).
- Producer: Sequential segmented capture stage (8391abd67).
- Producer: Sdr_segmented capture plan kind (d7398517b).
- Producer: Segment planner for long-form capture (9c3cff496).
- Producer: Stream multi-worker BeginFrame renders by default (1ae359ca0).
- CLI: Emit Chrome memory, capture path and segment fields on render events (ddbc9a8a9).
- Producer: Carry Chrome memory and capture path on observability and perf summary (119dafc00).
- Engine: Sample Chrome process memory per capture session (428922162).
- Engine: Chrome memory sampler with live onMemorySample capture option (53403a589).
- Engine: Zero-dependency per-pid RSS sampler (ps / tasklist) (bc70156f0).
- Lint: Flag nested structure, missing timing and caption tracks on the root composition (b44f1f85d, #4146).
- Producer: Stream long single-worker renders; name the streaming gate reason (c8b21c965).
- Engine: Add streamingEncodeDurationCapEnabled config flag, default off (68a605c82).
Fixes
- CLI: Timeline lists every clip of a kind in one flat list, nested ones included (ac0d8ced2, #4173).
- Runtime: A finished film rests on its last frame instead of a blank one (f4e00ce2b, #4158).
- Engine: Audio source-not-found names the file and shares one src resolver with lint (3f3f3b7f1, #4172).
- CLI: Timeline reports real media durations instead of unauthored (7597b80c9, #4169).
- CLI: A failed docker render names the container's last error (45f92e557, #4168).
- Producer: Stop disk capture early when frames cannot fit on disk (35a4fe1da, #4164).
- Studio: Dropping an asset between or above timeline rows opens a new row (c2ca2291c, #4160).
- CLI: Install onnxruntime-node and google-genai on first use (e8fdfd0d6, #4156).
- Lint: Video and audio take their length from the file, only an img needs data-duration (17b0c2689, #4154).
- Producer: Retry a dead browser tab once on the single-worker capture path (73f39862f, #4162).
- Studio: Button children lay out with the consumer's gap (0915affe9, #4159).
- Engine: Make urlDownloader retry tests independent of wall-clock time (607775bb3, #4155).
- Parsers: Unroll keeps tween order and label positions the parser read (559e57d29, #4157).
- Producer: Concat directly on a full segmented resume and document the retry surface (7b65cb98e).
- Producer: Record the manual interleave opt-in on the plan so its retry drops to one worker (bcb2544e7).
- Engine: Pin the pool's worker-failure contract and survive a throwing hook (439bdbd77).
- Producer: Label a non-Linux multi-worker trace as screenshot, not beginframe (0d4560748).
- Producer: Retry parallel stalls and mid-stream encoder death on default routing (b05072342).
- Producer: Retry an interleaved parallel-stream plan at one worker, never N contiguous (9d72e7fa2).
- Producer: Type the parallel stall, arm its watchdog after init, propagate worker death (9acf96d03).
- Engine: A worker death is pool-fatal on the streaming path (527355451).
- Engine: Classify a broken encoder pipe as io, not authoring (95cbf5663).
- Engine: Keep ffmpeg's exit reason when it dies under a parked write (69024e17d).
- Producer: Call closeCaptureSession through its live binding in segmented defaults (763ea8f97).
- Producer,cli: Hash every byte-affecting segment input; pin the resume-flag plumbing (e7c4eb52b).
- CLI: Pass the segmented resume flags from the plan into render options (ae6aedf1c).
- Producer: Drop the closed probe reference when segmented capture falls back to streaming (cb2894211).
- Producer: Disk preflight names only causes that reach it; refresh the router field's docstring (5f373894d).
- Engine: Read Chrome process info from the browser target, not the page (2cf8024a7).
- Engine: SampleOnce() joins an in-flight sample instead of skipping it (a35168edd).
- Engine: Read
/proc/<pid>/statusfor RSS on linux instead of shelling out to ps (3cee3b94f). - Producer: Point the disk-capture preflight at routes that actually stream (457687e77).
Docs & Examples
- Skills: An agent adds media with the duration Studio gives a dropped file (2f2457339, #4144).
- Skills: The agent presents a tailor-made storyboard instead of a Studio board (1a9668b6d, #4150).
- Long Form: Point the fixture README at the ticket, not a plans path (072750168).
- Long Form: Fault-injection validation of the R3 retry paths (17cf030b9).
- Long Form: Record the adversarial review outcome and the retry target per routing (ee3d6418f).
- Long Form: Gate the R3 route on the PRINFRA-694 fixture, record the hardening (77dd1da8d).
- CLI: Document segmented capture and record the Phase 2d gate (c4ccd9d6a).
- CLI: Document the parallel-stream router and its capture-mode split (bc2a8b5e0).
- Skills: One owner doc for everyday edits and a hyperframes-studio skill (2db126d4c, #4125).
- CLI: The streaming duration cap is off by default; document the flag (c038b087e).
- Engine,producer: Describe the opt-in duration cap where the gate's callers read it (172cac433).
Catalog
Internal
- Require before and after captures on studio and player PRs (a94466256, #4131).
- Windows: A run superseded by a newer push no longer reports a failed aggregator (e3bf76af6, #4149).
- Producer: Drop the unused worker count from the segmented router predicate (80d12f8c9).
- Producer: Record the Phase 2c gate result (79a4b02d7).
- Producer: Record the Phase 2a gate result and its real pass criteria (7000e3294).
- Engine: Extract concatVideoFiles from the chunked encoder (46d852cc9).
- Engine: Pin the unref'd sampler interval via a cast-free timer seam (7cf57fa42).
- Engine: Fix readonly array type in the pid-filter test (1862c3439).
- Engine: Pin the pid filter, dedup and tasklist memory guard in sampleProcessRss (645cbdce4).
- Studio: Remove the storyboard view and its Storyboard/Preview switch (a25da94b7, #4140).
- Producer: Add long-form render fixture generator and manual gate notes (ac946ef11).
- Producer: Reject non-boolean streamingEncodeDurationCapEnabled snapshots (bf2604410).