diff --git a/docs/loop-review.md b/docs/loop-review.md index 65d664f..7540244 100644 --- a/docs/loop-review.md +++ b/docs/loop-review.md @@ -19,6 +19,16 @@ the project." on the encoder output and `/status`, and records the release in `docs/stream-mvp-plan.md`. No approval round trip with the operator; he sees the record. +## Unstick while a fix cooks (the operator, 2026-09-23) + +"lets unstick the fly so stream stays interesting. lets make that a rule. while a fix cooks, +revert." When the watcher confirms a trap and its review agent is dispatched, the coordinator +restarts flysim only (claimed in the host log): a restore starts with empty macro ledgers and +keeps the rung. A recurrence gets another restart; only a fly still trapped about ten brain +minutes after a restart is rolled back with `fly-reset-to-milestone`. This is an action outside +the fly: it presses no button and changes no ROM, readout, catalog or adapter, and it never +replaces the fix, which still ships through the loop above. + ## The ethos check (every one must hold, or the fix is not shipped) - The ROM is never modified. Game memory is read, never written. The only write into the diff --git a/docs/stream-mvp-plan.md b/docs/stream-mvp-plan.md index 5398594..8283cbd 100644 --- a/docs/stream-mvp-plan.md +++ b/docs/stream-mvp-plan.md @@ -802,3 +802,16 @@ median; a two-fly transition near 10 to 12 ms at the median in every execution m 32,496 -> 2,849. Rung 11 is not reached on either hunt arm: GO OBJECTIVE is on the Pewter pad and the fly picks the frontier instead, which is the fly's choice, not a trap. The watchdog's distinct-macro rule cannot see a four-macro ring; the watcher's zero-progress check covers it. +- 2026-09-23 (v0.5.4, loop review, auto): row 57, Pewter City. The pad was GO ROUTE alone, + refused `no route` every 0.8 s for over two hours with no button pressed; the watchdog counted + starts only and saw one. Mechanism: the youngster's escort walls the tile each escorted walk + set out from, up to 26 tiles away, until the fly stands in a pocket no route leaves; every + refusal re-stamped the gym door's blocked window, so GO OBJECTIVE never came back. Fix: an + escort walls the tile where the script took over; a refusal that teaches the ledger nothing is + not dealt again from that tile for the window; a last resort that cannot reach the objective's + door takes a way out it can. ROM test: refusals in a row 746 -> 1, out of the pocket on frame + 517 instead of 36,325; seeded hunt tiles 303 -> 439, flagged windows 70 -> 66 of 73 counting + refusals as decisions. Check 10 now counts outcomes (refused, blocked, done) and flags + `stalled` and `zero-progress`, still never acting. The GO OBJECTIVE / GO OUT ring at the gym + door is row 58. Ethos check held. While it cooked the operator's new unstick rule kept the + stream moving with flysim restarts (loop-review.md).