Skip to content

fix(foyer): round-13 hosted-truth captions, vendored judge runs, sealed assets - #14

Merged
HomenShum merged 2 commits into
mainfrom
foyer/round-13-hosted-truth
Sep 13, 2026
Merged

HomenShum merged 2 commits into
mainfrom
foyer/round-13-hosted-truth

Conversation

@HomenShum

Copy link
Copy Markdown
Owner

Summary

  • Fixes round-12 review findings: FYwall's beat 00/01 captions overclaimed "every product" / "every single one" is checked, when 12 of 22 cards are registry-only (never probed) — captions now name the ten hosted products, and beat 01 asserts a registry-only chip is really on the frame.
  • README embedded the stale round-11 FYwall render (400x250) under "published" next to round-12 judge numbers; FYwall is re-captured from production (ec2a44e) and re-rendered at 720x450, and assets/feature-foyer-FYwall.gif / feature-foyer-FYagent.gif now byte-match what node-foyer vendors and what the judge scored.
  • "judged twice, worse run kept" is now checkable: both judge runs per capture are vendored under public/wt/<id>/judge-run{1,2}.json with a render.json naming each file's sha256 and which one is kept; check.mjs gained a rule enforcing it.
  • Minor frame/caption fixes: "checked live a moment ago" -> "on the last sweep"; beat 03's highlighted card now matches its caption/assert (kept on NodeSlide instead of an early NodeRoom hover that leaked unexplained apparatus jargon and blocked the comprehension judge); beat 06 scrolls the node-foyer apparatus fully into frame; FYagent's README rewrite-count sentence now says "rounds 11 and 12".

Test plan

  • node check.mjs exits 0 (60/60 files parse, 36/36 tour steps resolve, 3 render.json records verified)
  • FYwall re-captured against production (DEMO_URL=https://node-foyer.vercel.app/ FOYER_ONLY=FYwall node walkthrough.foyer.mjs), every frame PNG read and its caption checked true of the frame
  • FYwall rendered, GIF'd, and judged twice — cycle 1 blocked on comprehension (apparatus jargon leaked a beat early), cycle 2 fixed and both runs came back fix-then-publish / 0 P0 / comprehension incomplete (not blocked)
  • FYphone/FYagent not re-captured; their existing judge pairs (matched to the final MP4 by videoBytes) vendored and defects/comprehension recomputed from the kept (worse) record

Co-Authored-By: Claude Fable 5.1 [email protected]

HomenShum and others added 2 commits September 12, 2026 23:08
…ed assets

Round-12 review findings fixed:
- FYwall beats 00/01 overclaimed "every product" / "every single one" is
  checked; 12 of 22 cards are registry-only (never probed). Captions now
  name the ten hosted products explicitly; beat 01 also asserts a
  registry-only chip is really on screen.
- README embedded the stale round-11 FYwall render (400x250, NodeVoice
  "front door and back door") under "published" next to round-12 judge
  numbers. Re-captured and re-rendered at 720x450 from production
  (ec2a44e); the studio's assets/feature-foyer-FYwall.gif and
  feature-foyer-FYagent.gif now byte-match what node-foyer vendors and
  what the judge actually scored.
- "judged twice, worse run kept" was unsupported — only one judge record
  was ever vendored. Both runs are now committed under public/wt/<id>/
  as judge-run1.json/judge-run2.json plus a render.json naming each
  file's sha256 and which one is kept (worst by verdict, then P0 count,
  then blocked comprehension); check.mjs gained a rule that verifies the
  committed GIF and both judge runs hash-match render.json.
- Minor caption/frame fixes: "checked live a moment ago" -> "on the last
  sweep"; beat 03's highlighted card now matches its caption/assert
  (NodeSlide, not a leftover NodeRoom hover that leaked unexplained
  sha256/HTTP-status apparatus text into the frame ahead of its
  explanation and blocked the comprehension judge); beat 06 now scrolls
  the node-foyer apparatus fully into frame before the shot; FYagent's
  README rewrite-count sentence now says "rounds 11 and 12" to match the
  commit history.

FYwall went through two capture/render/judge cycles: cycle 1 introduced a
real accuracy fix (hovering NodeRoom for the highlight-match fix) but
leaked unexplained apparatus jargon a beat early and the comprehension
judge blocked both runs; cycle 2 kept the accuracy fix by targeting
NodeSlide's already-hovered badge instead, and both runs came back
fix-then-publish / 0 P0 / comprehension incomplete (not blocked).

FYphone and FYagent were not re-captured; their already-graded judge
pairs (run1c/run2c and run1/run2, matched to the final MP4 by videoBytes)
are now vendored the same way, with defects/comprehension recomputed
from the kept (worse) record.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
The first FYwall re-render used fps=15 (this file's own README doc
convention example), producing a 5.4MB GIF that alone blew past the
4MB posters+GIFs budget for all three captures combined. Round-12's
FYwall GIF was fps=5 at the same 720x450; re-encoding at fps=4/640px
(matching the round-08 council's aspect-preserving downscale, just at
a size this capture's frame content actually compresses to) lands the
three captures' total media at 3.82MB, under budget with room to spare.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
@HomenShum
HomenShum merged commit 9261446 into main Sep 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant