Files
LlamaCasty/HANDOFF.md
T
gramps b39439abdc docs: the vertical take is clean — 29.8 distinct webcam images/s
Creator's Release take `ty-20261109-1142-036-0005.mp4` (1080×1920 @ 30, 300 s) measured by cropping the
webcam tile and diffing frames: 29.8 distinct images/s overall, median 30 s window 30.0/s, worst 24/s,
one 4-frame repeat run in 9026 frames. The app's own lines agree (`webcam 28.4–30.0/s` against camera
`arrivals 29.9–30.1/s`).

- The 25.6/s failure recorded on the 2026-10-05 16:9 take does **not** reproduce in the vertical tier,
  so the vertical take no longer blocks the cadence units.
- Recorded the measurement trap in `frame-pipeline.md`: a threshold of 1.0 on a downscaled tile
  reports long "0.0/s" stretches during low motion — duplicates sit below 0.02, a still face at
  0.3–0.7. Read the histogram before believing a count.
- Vertical-tier camera check reported 1–6 pass; both creator-hands items in TASKS.md are closed.

(The mic being off for the first 2:42 does not affect video cadence.)
2026-11-09 11:53:58 -08:00

3.0 KiB
Raw Blame History

HANDOFF — 2026-11-09 (TASK 33 policy; vertical checks passed)

State

  • main. TASK 21 (video layer + soundtrack), TASK 64 (green/blue screen) and TASK 32·4 (fragmented MP4) are complete; TASK 49 is retired (YouTube owns chat moderation — we just don't paint tombstones).
  • Starting art replaced twice today (f7e1b76, a6f15a4, fix 70e2c48): the corrected onboarding screen is Assets/starting-background.jpg; both earlier images are in Assets/archive/. Bundled art is hash-keyed into the layout DB on first seed, so StampDefaultBackgroundAsset compares the stored asset's hash with the resource and re-stamps on a mismatch — replacing a bundled background needs no version bump.
  • Left panel alert stack shipped: Steam licence indicator pinned at row 1, event rows LIFO, click → About or Logs with the event's lines painted. Detail: docs/ai/ui-surface.md.
  • Site: demo video (silent loop) is the hero; Starting screen is in the scenes section.
  • TASK 33: policy + planner done (bc62bd8, 555ff5c); remaining — VM subscribe, encoder restart, toast, capture-cost shed. Creator hands cleared 2026-11-09: vertical camera check 1–6 pass, vertical cadence 29.8 distinct/s (no defect).
  • Tests: 575 green; FAST=1 ./scripts/verify.sh ≈ 62s. Background suite 45 green.

Next action

  • App queue starts at 33 (bandwidth step-down), then 34/35/37/40/50/55, Move transitions, 9·5.

  • Site: 15-second demo clip → compress, poster, hero with reduced-motion fallback. Creator is shooting it.

  • Site repo commits are local (llgit.llamachile.tube); deploy is ./deploy.sh, not a push.

  • Do not push the app absent a checkpoint request.

  • Steam is a wait, not a task: identity verification pending, tax review in Valve's queue (up to 30 business days). No app IDs, no store page, Release entitlement fails closed.

Landmines

  • The preview pane draws frame-source layers from a whitelist of DataTriggers. A layer type with no trigger is invisible in the preview while its decode looks healthy. Add the trigger with the layer type; pin it with MediaPreviewDisplayTests.
  • A bundled-art "version" heal cannot work: the constant and the embedded resource are compiled at different moments, so a bump can race the image it is meant to ship. Compare bytes (LayoutStore.AssetMatches). Also: AllBackgrounds() returns only the LIVE scene's rows.
  • Pack URIs for bundled assets must be assembly-qualified (/LlamaCasty;component/Assets/…): the unqualified form resolves against the entry assembly, which is the test host under dotnet test.
  • Media sessions are keyed by path + look (MainViewModel.MediaSessionKey); never acquire by raw path.
  • The audio pipe allows ONE server per name; DEBUG suffixes it (id, else pid), Release does not.
  • Integration tests constructing MainWindow must set a temporary LayoutPathOverride and clear it in finally.
  • Bundled FFmpeg stays outside the single-file exe (ExcludeFromSingleFile="true").