nats and distribution declare the old stream form and require no finding-events, so their writers stay on it.
Builds: design 47 G A-274 (answers G-22)
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
An integration test starts the night as the node does: its credential is read from where the manifest places it (the process
night's MESH_BROKER_FILE, the module's own-secrets broker), it says each item started and ended on the seat node-backup, gives
way to a restore that runs (items put off as keys of the state put-off, started again on the restored) and, past put-off-bound,
the bus's expiry writes backup-waits into the findings. It found that WaitRestored held a fetch of a minute after its context
ended, so an expiry ended the wait up to a minute late: it now consumes the restored events and ends on the context.
Builds: design 47 G §563, §561, §554, A-150, A-155
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
The record backed-up reads is the key `<module>.<item>` of the module's own state put-off (key-ttl), bounded by the setting
put-off-bound (minutes, default 60); the bus removing it is heard as the expiry, which writes the finding backup-waits through
the held writer over the module's findings and ends the wait, so the night never holds its lock without a bound. The file
put-off.json and its writes are gone. The manifest requires put-off, findings and finding-events and hears findings-asked.
Builds: design 47 G §561, §563, §557, §302, A-155, A-77
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h