commit d1d5f5a81c20df2ee34e9e5c1f052f3939b4c84c
parent 6adeee9256ad8ca3b0c0539904b76e8005349e90
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Fri, 2 Oct 2026 00:26:50 -0400
plans: the handoff -- the frame-grid fix, main merged in, the gates at the merge, the ferret cut's first use of feed + beat + dip
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
1 file changed, 22 insertions(+), 0 deletions(-)
diff --git a/plans/deck-posts.md b/plans/deck-posts.md
@@ -650,3 +650,25 @@ Gates at 2093ef9b:
- Workspace tsc (`pnpm -r --no-bail --workspace-concurrency=1 exec tsc --noEmit`) clean (73 s).
- `test:scripts`: 417 tests, 415 pass, 2 skipped, 0 failed (62 s).
- e2e and the capped umtool `next build` (M1) are run at the merge, not here.
+
+### Handoff: the frame grid, main merged in, the gates
+
+- dec03bd8: every chrome page states `pageDuration` (its whole frames floored to 4 decimals).
+ HyperFrames renders ceil(duration × fps) frames and the build expects round: a cut of 434
+ frames (schedule total 14.467 s) rendered 435 deck frames and the build refused it. A duration
+ already on the grid (14.4, 7.9, 356.7) is written as before; the teaser page hash pin holds.
+- c78c9038: `main` (173dd42b, release 17 D0/U1 included) merged in. One conflict, an import
+ list in `umtool/lib/report/onscreen.mjs` (the feed preview's dir beside `ensureWriteDir`).
+ The branch adds no directory write that bypasses `ensureOutDir`/`ensureWriteDir`.
+- Gates at c78c9038: workspace tsc clean; `test:scripts` 443 tests, 441 pass, 2 skipped,
+ 0 failed; capped umtool `next build` with the corpus linked exit 0, link removed; umtool e2e
+ `onscreen-posts onscreen clip-bench build projects report-fetch-via-editor` 99 passed
+ (7.3 min); byte-identical `--only c07 --skip-fetch` without `render.chrome` md5
+ `6a92235fa12ca181bb81993129c9ee9d`.
+- First use: the ferret-rescue cut with `posts.layout: "feed"`, teaser `beat: 1.05` (no
+ `seconds`), `dip: {fade: 0.6, black: 0.6}` and c20's end at muteFrom + 0.6, so the picture
+ runs on muted through the fade. Built in full with `--skip-fetch --pad-after 2.6` (every
+ window reused from the cache): 357.967 s, audio = video, 18 chapters, verify-build ok (deck
+ and feed 10739/10739 frames, teaser 237/237), QR 17/17 deck and 7/7 posts; the fade starts
+ the frame after the mute mark and the frame is black (Y 16) from c20's last frame through
+ the black.