fix(web): read the felis-cast v1 envelope #10

Merged
natsukium merged 1 commit from feat/read-felis-cast-v1 into main 2026-10-14 16:22:28 +09:00
Owner

felis-fcast is now felis-cast and its envelope is stable at felis-cast v1 (units sharing one timestamp, cycle_end per compose cycle, skippable cast.* / x-* frames). The reader accepted only felis-fcast 3.

  • parseFcast accepts felis-cast 1, drops extension frames, refuses other bare kinds.
  • Demo recordings rewritten to v1 (btm/tte cannot be re-recorded); the glyph generator writes v1; a live pull-paced recording joins the fixtures.
  • Checked in a browser: every gallery recording renders, extension frames are skipped, a v3 file is refused via felis-terminal:error.

Follow-up: the frame drain can still yield inside a unit; painting only between units is not yet enforced.

felis-fcast is now felis-cast and its envelope is stable at `felis-cast` v1 (units sharing one timestamp, `cycle_end` per compose cycle, skippable `cast.*` / `x-*` frames). The reader accepted only `felis-fcast` 3. - `parseFcast` accepts felis-cast 1, drops extension frames, refuses other bare kinds. - Demo recordings rewritten to v1 (btm/tte cannot be re-recorded); the glyph generator writes v1; a live pull-paced recording joins the fixtures. - Checked in a browser: every gallery recording renders, extension frames are skipped, a v3 file is refused via `felis-terminal:error`. Follow-up: the frame drain can still yield inside a unit; painting only between units is not yet enforced.
fix(web): read the felis-cast v1 envelope
All checks were successful
ci / fmt / clippy / test / deny / types / bundle (pull_request) Successful in 1m31s
ci / fmt / clippy / test / deny / types / bundle (push) Successful in 1m29s
940f111276
felis-fcast became felis-cast and stabilized its envelope at
"felis-cast" version 1: frames group into units (bursts, compose
cycles closed by cycle_end, singles) that share one timestamp, and
cast.* / x-* frames are extensions a reader skips. The reader refused
anything but "felis-fcast" 3, so every demo recording would have gone
blank against files the new recorder writes.

parseFcast now accepts only felis-cast 1, drops extension frames, and
refuses any other bare kind instead of handing it to the view. The demo
recordings are rewritten into v1 rather than re-recorded, for the same
reason as before: btm and tte cannot be reproduced. Each v3 cycle was a
run of frames under 2 ms apart with 10 ms or more between cycles, so
the rewrite closes a cycle at the first larger gap. The glyph generator
writes v1 itself, and felis-cast-demo.fcast, a live pull-paced
recording with clusters, an OSC 8 link and scrolling, joins the fixtures
the replay test walks.

The fcastSource still paces frame by frame and the frame drain can
yield inside a unit; painting only between units is left for a
follow-up.

Assisted-by: Claude Code
natsukium deleted branch feat/read-felis-cast-v1 2026-10-14 16:22:28 +09:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
natsukium/felis-web-component!10
No description provided.