Monorepo for Aesthetic.Computer aesthetic.computer

chat: handle colors reach every author, not just the ones online master

The renderer only asked the handle-colors API for authors already loaded at boot or currently in the presence strip, so laklok's history (which lands over the socket after boot) painted every handle in the plain theme color. It also re-asked for uncolored online handles every frame, and the lib's live "handle:colors" branch referenced a cache that only exists in the renderer, so a color change threw instead of recoloring. Now one ask per handle (in-flight deduped, "none" cached as null), asked when the room's history lands and for each new message, with the author's cached lines dropped so they recolor when an answer arrives. The lib passes the parsed live update through to the renderer's cache. tests/browser/laklok-handle-colors.test.mjs drives the real chat-clock room in Chrome: every author's cached answer matches the API, the ask counter sits still while idle, and per-character colors are read off a screenshot of the painted handle (seeded through a ?test=1-only hook, since no author in the room has colors set today).


+378 -26
4 changed files