mesh/merge-gate pass: builds mesh-delivery → novox; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery delivered
keep wrote the whole delivery on every call, and Reconcile passes every walk the controller keeps through settleAndKeep every 30 seconds, so the deliveries bucket was rewritten about once per walk per pass with nothing changed: a key's revision no longer meant the delivery moved, and a watcher of the bucket would receive a stream of non-changes. keep now remembers each delivery as it last wrote it, encoded, and skips the write when the delivery encodes exactly the same and is not waiting to be written again. Anything a delivery holds that changes - its state, steps, walk record, owed effects and their tries - changes its encoding, so every change is still written; a failed write stays dirty and Flush writes it again. Events, notes, views and forge statuses are owed and done as before. A retry of an owed effect still writes its new try count: it is a change. The test fails before (five passes over unmoved walks wrote five times) and passes after; a walk that moves is still written and said.