Back to the resultsSource: night-2026-10-11/proof-w1-harness.md

W1 lane D proof: rig and harness, 2026-10-11

Branch w1-harness in worktree ~/trc-lighting/wt-harness, cut from two-screen 4dbe8af. Commit 0248d89, five files, nothing pushed. Dry runs used: 7084 (head) and 7085 (broken copy). Both stopped. No call to /api/dmx/nodes or /api/dmx/output.

Files

File What
tools/mac-dryrun.sh <port> [worktree] builds when the dll is missing or older than any .cs/.csproj, starts the dry run, waits for /api/status, refuses unless dryRun=true and dmx.running=false, prints the pid. stop <port> kills that pid only after checking its args. status <port>. Refuses 7070. Pid and log in <worktree>/tools/tmp/ (gitignored).
tools/regress-v2.sh <port\|host:port>; full run refused unless the server is a dry run. --read-only (GETs only) and --read-only --live-anthem (one ANTHEM recall, one undo) for 7070.
tools/tutorial-capture.mjs steps.json to GIF (<10 s, two-pass ffmpeg palette, sped up to fit rather than cut) plus stills at 1536x864, 1920x1080, 390x844, 844x390. Headless bundled Chromium, --mute-audio.
wwwroot/help/index.html Skeleton on v2/tokens.css, left rail with the 11 chapters of PLAN section 6, each chapter with empty gif, stills, keys, proof slots.
wwwroot/help/steps/ch04-tap-a-mood.json The sample steps file.

Regress checks (14)

status, pick, aim, stack, mood-solo, hit, blackout, undo, timeline, userscene, page /desk.html, page /screen2.html, page phone, page /help/.

Green on head (7084)

harness-proof/regress-green-head-7084.log: GREEN, 14 passed, exit 0.

Red on a broken copy (7085)

Throwaway detached worktree from 4dbe8af, one deliberate break in Program.cs (/api/hit/release no longer sends the restore lines), diff in harness-proof/deliberate-break.diff. Never committed; the worktree was removed. harness-proof/regress-red-broken-7085.log: FAIL hit (held dims [1,1], restored=no), FAIL undo (the undo put back a stage that still carried the stuck hit), RED: 2 failed: hit undo, exit 1.

Sample GIF: tap a mood

harness-proof/tap-a-mood/ch04-tap-a-mood.gif: 5.75 s, 960 px wide, 12 fps, 1.0 MB. Stills ch04-tap-a-mood@1536x864.png, @1920x1080, @390x844, @844x390, plus ch04-tap-a-mood-anthem-live.png. After the run /api/rig/state live = [703]. At 390x844 the desk has no mood strip, so the two tile steps were logged as warnings; chapter files for the phone should point at the phone page.

/help/ served by the desk

/help/ 200, /help 301 to /help/, /help/index.html 200, /help/steps/ch04-tap-a-mood.json 200. UseDefaultFiles + UseStaticFiles already serve subfolders: no Program.cs change needed. Headless shots harness-proof/help-skeleton@1536x864.png and @390x844.png: no horizontal page scroll, no console errors, fonts Barlow 400-700 and Barlow Condensed 700 loaded, no link under 44 px.

Findings for other lanes