2.5 KiB
2.5 KiB
HANDOFF — 2026-11-06 (Starting art + site scenes)
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): the corrected onboarding screen isAssets/starting-background.jpg; both earlier images are inAssets/archive/. Bundled art is hash-keyed into the layout DB on first seed, so replacement rides onHealDefaultArtVersion(now 4) — bump it whenever a bundled background changes. - 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: the Starting screen is now in the scenes section (
scenes-shot), deployed 2026-11-06 12:05. - 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. AllBackgrounds()returns only the LIVE scene's rows — never use it to mean "every background" (that bug made art-version 2 heal nothing). WalkScenesinstead.- 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 underdotnet test. - Media sessions are keyed by path + look (
MainViewModel.MediaSessionKey); never acquire by raw path. - The audio pipe is one instance per machine. DEBUG appends its id (
InstanceProfile.AudioPipeName). - Integration tests constructing
MainWindowmust set a temporaryLayoutPathOverrideand clear it infinally. - Bundled FFmpeg stays outside the single-file exe (
ExcludeFromSingleFile="true").