What each of our working notes records, at a glance
When a session with Claude pauses (a shutdown, a crash, the end of a long stretch), it writes a dated note: what was done, where things are, and what is next. Here are all 15 of them, newest first, each with a picture drawn for it. The notes themselves are in matthewhammer/hazel-work-notes, beside the work dashboard's history. They are written in shorthand, for the two of us; the write-ups for other readers are the Hazel reports and the Dress Up reports.
After a reboot cleared a hung desktop app (^ticket(602)), the script boxes' wrap learned nested ifs and a let's in (0.0.425, 0.0.426). The speed checks after each release, red since 0.0.405, were read check by check: six failures, three of them real game bugs (the giraffe's jump, the tiles cut off at 4000 px, the ninja gem's glimmer), fixed and released as 0.0.427 (^ticket(605)). M and N got the story words on one page, a picture for each (^ticket(606)), and the notes of 10-22 and 10-23 in this gallery, which showed as empty pages, were mended.
Messed Up Dress Up's Scripting panel got a max-size view with an outline of every box, syntax colours, settings and line breaking, and each Hazel box now shows Hazel's own tiles (^ticket(578)), themed with the page, with goto definition across boxes (^ticket(586)). Every outline item was clicked in four modes, 145 of 145 right. ^report(32)'s draft times the panel three ways and now says what the CI checks: Hazel and Fumola held to the game's JS in over 50,000 comparisons on every push.
After crash 46, every timing and test run went to GitHub, so the laptop would stay up for the runs Matthew had set for later. ^ticket(559)'s fast path for values cut a third of the passes on loops; ^ticket(553)'s map for the Dress Up rules made a World move about 1 ms at every size, within 1.3x to 3.5x of Fumola's HashMap; ^ticket(552)'s CI test was shown to guard 547 by a control that failed as it should. A claim that Hazel had no string ordering (^ticket(540)) was wrong, and was corrected the next morning.
Next, then
Matthew: whether ^ticket(559) becomes a PR, and where
Back up after crash 44, the session switched to Dress Up tickets on Matthew's call and shipped nine releases, 0.0.376 to 0.0.384. The cave room and cave things (^ticket(471)), the horse with collision boxes for its hooves and rider (^ticket(492)), the sun and the moon by the clock (^ticket(490), part 1), boxed side panels (^ticket(488)) and the breadcrumbs in one column (^ticket(491)) all went live. Hazel was parked for the sprint.
Next, then
read 0.0.376's and 0.0.384's speed runs; fix what they find
Crash 42 hit about 20 s into an un-niced dune build; only 2,027 empty build outputs were lost. #2635 had its first green Full tests since 10-01, closing ^ticket(416) and ^ticket(405); the type hash went to three lanes (^ticket(418)); the dashboard's history became one file per page in git (^ticket(417)). Dress Up went from 0.0.336 to 0.0.343, lying along the tent's bags and bending elbows and knees in three dimensions, and ^du_report(14), Posing the Body, waits to be read.
Next, then
^ticket(420): read 0.0.336's and 0.0.343's speed runs
Matthew asked whether keeping every dashboard snapshot uses too much space (^ticket(391)). GitHub packs the 1,793 snapshots' 341 MB into 23 MB, about eight months from its 1 GB guideline; but the laptop holds each snapshot as a file, growing faster each day as the page grows, toward 58 GB by mid-January. The recommended fix is the Dress Up archives' (^du_report(4)): one file per page, every version in git's history.
Next, then
write each snapshot over one path; build the gallery from git log
After the 20:53 freeze, no browser ran on the laptop: every browser run went to GitHub's computers. The dashboard moved to /hazel/dashboard (^ticket(181)), these notes got this gallery (^ticket(182)), and the pictures gained 2026/10/17 with the friend climbing (^ticket(183)). The trial merge of #2469 into #2635 lost its 11 new CI failures (^ticket(156)); the on-screen controller showed no cost (^ticket(160)); ^ticket(18) was coded, not yet measured.
The laptop froze at 16:33 and 16:47, both during headless-Chromium runs; a new crash log lists 33 crashes since 08-18 and found the kernel sees no battery. Headless Chrome now runs pinned to 4 of 20 threads, with no crash in about an hour since. Dress Up 0.0.87 to 0.0.90 shipped still pictures on slow computers, opening doors, first collisions and N's pits; the day's 349 pictures were archived.
Dress Up 0.0.68 to 0.0.73 shipped with Matthew and his controller: two jumps, the controller as a video game's actions, jumping in deep water, walking toward and away from us, and teach-me-your-controller with a SNES layout (^ticket(146)). The witch's places now run at 60 frames a second (^ticket(148)); Chrome's woods went from 13 to 56-59.5. ^ticket(145) is designed, not written; ^ticket(147) and ^ticket(149) were minted.
Next, then
^ticket(145): floating ladders, designed not written
The laptop crashed at 08:01 while idle; nothing was lost, the five dashboard servers came back, and close_ticket.py was finally committed. While Matthew was away, Dress Up 0.0.62 to 0.0.67 shipped hugging legs, climbing a place's nearest ladder, the friend seen from behind, a one-off jump, and a game controller with a Controls tab (^ticket(136) to ^ticket(138)). The controller has only met a fake one (^ticket(139)).
The laptop crashed at 15:33 during ^ticket(112); the game's edits survived, and an empty vibes.mp3 was made again and the music day republished. Dress Up 0.0.42 to 0.0.45 shipped a door behind the viewer, more side doors, readable signs, and a fix for drags that ground down while scenes animated (^ticket(117)): the scene had been rebuilt on every move. The queue gained long-run and blocked-on-Matthew tags.
The autosave's print was quadratic on the top-level let chain (^ticket(84)); fixed, a change's save went from about 600 ms to 80, profiled. #2597's heap grows per edit because its undo stack, capped only when a setting is on, keeps whole page models (^ticket(58)); Andrew's compaction from #2635 was ported. Views in the worker (^ticket(18)) cut main-thread work but slowed small slides; the other fixes were pushed 10-15 on Matthew's word.
Claude's answers, for Matthew to accept, change or drop, to the changes-requested review of #2583 (deep links). The review's main point holds: two URL encodings, parsing tangled with applying, and nothing testable without a browser. The plan: one request type parsed apart from applying, startup as an action in Main.re, and panel names in one switch in Sidebar.re; the branch is unchanged so far.
Next, then
a request type with parse, to_params and tests
startup as an action; CopyDeepLink at the Page level
On #2597, a Full Body tab's live heap grew about 85 MB per shirt-width slider edit, with no plateau. Experiments ruled out the whole-program memos, the undo history capped at 2, the projector view cache and ShareCodec's tables; heap snapshots crashed the tab, so V8's sampling profiler showed whole versions of the editor's state staying alive. An audit of every weak and strong table flagged four id-keyed tables.
#2597's CI, red since 10-11, is green again (^ticket(4)): Statics.mk and MakeTerm's memos were bounded so node's heap holds, and big programs' recovering-parser checks moved to the weekly run. ^ticket(7)'s EvalInfo update was pushed to #2635, and ^report(13), Telling the Request What Changed, was published. The dashboard now publishes by cron within a minute of a change.