- std-gallery: CLOSE is an inbound lightbox-dismiss (closeAction + listened
handler), never emitted — removed from `emits`.
- std-image-upload-multi: DELETE is consumer/UI-driven (listened handler, no
media-gallery affordance fires it) — removed from `emits`; the delete circuit
stays available via `listens`.
- std-thread-chat-bubbles: the bottom composer fired EDIT_REPLY/SUBMIT_REPLY
from `browsing`, where neither transitions (they live in `replying`) — the
send was dead. Replaced with a form-section `submitEvent: REPLY` that persists
directly from `browsing` (the canonical inline-composer path). Verified via
processEvent: browsing+REPLY{content} executes and persists.
- std-service-content-pipeline (recipe): youtube.search emitted
ServiceContentPipelineYoutubeCompleted but `searching` only handled
SearchComplete — the search step deadlocked and SearchComplete was unfired.
Pointed the search success at SearchComplete (activates searching->results).
- std-gallery-filtered (recipe): inherits the std-gallery CLOSE fix after rebake.
Full registry: 382 .lolo at 0 errors / 0 warnings. Compiled-path verify
(compile + tsc client/server + eslint client/server) PASS.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>