Afternoon of 10-15: after the crash, Dress Up 0.0.42 to 0.0.45, two queue tags
2026-10-15, 15:33 to 17:00 MDT, Claude, with Matthew (and M's requests). Written before a context compaction, so the next session can pick up from here.
The 15:33 crash, recovered
- The laptop went down at 15:33 in the middle of
^ticket(112). The game's edits in~/kids-choice-games/dress-up/index.htmlsurvived intact. - The music archive did not:
vibes.mp3was left empty but listed as done. It was moved aside to~/du-shots/crash-2026-10-15/(deleting it was refused), re-rendered, and the day was published (dress-up-musice0d5474, all 28 tunes). - Only some servers were restarted at first, and 8131 (the perf series) was found down by Matthew. The rule since then (in
agent-instructions.md): serve everything the dashboard links, probe each link, and mark anything unservable "not served", with the reason. - 8342 is not served. The desktop app allows 5 preview servers per worktree, and 8000, 8131, 8133, 8311 and 8341 hold them. Still open: Matthew's choice to bring it back in a Terminal tab or drop its row.
Dress Up releases (all pushed, Pages run green, live page checked)
| Version | Commit | Ticket | What |
|---|---|---|---|
| 0.0.42 | 20dee4f | ^ticket(112) | ⬇️ the door behind you: every room can have a way out behind the viewer (castleBack), drawn as a sign at the bottom edge. It fixes castle N's one-way arch in the designer. |
| 0.0.43 | fcba6f4 | ^ticket(113) | M: up to 8 side doors in a hallway, 6 in the dining room plus a door in its far wall. A range slider's maximum now follows the room (roomDoorMax, an optional limit function on range controls). |
| 0.0.44 | 1d1889a | ^ticket(116) | Matthew and M: the doors stand closer and every sign can be read (16 px text at 1280×720, none overlapping). The whole window is used: at 1280×720 the picture went from 542×402 to 849×628. A draggable divider (remembered; double-click for the best fit) and a Save menu. |
| 0.0.45 | 295f402 | ^ticket(117) | Matthew: dragging the friend while the scene animates ground down and froze the music. Fixed; details below. |
^ticket(117): why the drag ground down
- Since 0.0.35 (seven LFOs; every scene moving with the music),
lfoBegintimed each scene animation frompic.getCurrentTime()minus the music's phase, read afresh at every draw. - The picture's SMIL clock moves once a frame, but the music's clock moves continuously. So the begins wobbled past their 0.05 s rounding, the scene's text changed on every draw, and
mountScenerebuilt the whole scene on every move. Each slow frame widened the wobble. - 0.0.24's drag pause (
pauseAnimations) made it worse: it stopped the picture's clock outright while the music's ran on. - Bisected with real drags in old releases: the witch's woods were smooth up to 0.0.34 and slow from 0.0.35. The witch's hut was slow from 0.0.38.
- The fix:
picGapNow()keeps the gap between the two clocks. It is re-measured only when the gap moves by more thanPIC_GAP_SLACK(0.25 s: the music starting, stopping or seeking), and never while the picture is paused. Letting go of a drag moves the picture's clock on by the time held (setCurrentTime). - Measured with warm 60-move drags, music playing. 0.0.44 rebuilt the scene once per move; 0.0.45 rebuilds nothing.
- our imagination: 20.6 s → 3.4 s
- the witch's woods: 5.0 s → 2.3 s
- the living room: 6.7 s → 1.6 s
- the witch's hut: 7.8 s → 1.8 s
- inside the tree house: 3.8 s → 1.1 s
- every other place: 60 fps
- Not changed: the witch's woods and hut are heavy even when idle (460 and 330 SMIL animations). They run at 10–15 fps in the software-only test browser, and did already in 0.0.32. A possible next step, not ticketed.
- The tools are now in
~/du-shots/tools/:drag.mjs(env WARM, AFTER, COSTUME, NOPAUSE, PARTS, DIFF),idle.mjs,trace.mjsandprof.mjs.
Dashboard
- Closed:
^ticket(92),^ticket(112),^ticket(113),^ticket(114),^ticket(115),^ticket(116)and^ticket(117). - New tags, each grouped at the end of the queue (
^ticket(114),^ticket(115)):- 🌙 long run: work to do while Matthew is away from the keyboard:
^ticket(99),^ticket(106)and^ticket(104). - 🪷 blocked on Matthew: waiting for his answer:
^ticket(102).
- 🌙 long run: work to do while Matthew is away from the keyboard:
- The queue: 91, 90, 18, 60, 50, 29, then 🌙 99, 106, 104, then 🪷 102.
Next
- Tonight's 🌙 long runs, one at a time, once Matthew says he is stepping away:
^ticket(99): modular, composable routines in Dress Up;^ticket(106): today's pictures day is still 0.0.36's, so rerun it on 0.0.45, and do the rest of the ticket;^ticket(104): every tune as an MP3.
- Muted headless Chromium is still running on 9333 (its pid is in
~/du-shots/chrome.pid). - Servers: