You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The state-repair divergence hint tells agents: "fix app state with --no-record actions, then replay --from N". That flag is silently dropped — the press / click / longpress / fill CLI readers never forward noRecord into the daemon request. The grammar accepts --no-record, the reader ignores it, and the action records anyway.
During an armed (--save-script) repair this means an agent's state-fix mutations are recorded into the healed script as spurious flow steps — e.g. a press "Back" used only to reset app state becomes a step in the heal, so replaying the healed script performs an unintended action. This is the documented repair flow not working.
Evidence
src/commands/interaction/interactions.ts:
press reader (~line 45): spreads commonInputFromFlags / selectorSnapshotInputFromFlags / repeatedInputFromFlags / settleInputFromFlags, plus target and verify — no noRecord. Same for click, longpress, fill.
Forward noRecord (and the new record) in the mutating readers, mirroring what #1303 did for get/find/snapshot. Audit every reader for the same omission rather than fixing case-by-case — the root shape is "each reader hand-forwards flags, so any reader can silently drop one."
Regression: a --no-recordpress performed inside an armed repair segment must NOT appear in the healed script; and the healed script must not contain state-fix mutations.
Summary
The
state-repairdivergence hint tells agents: "fix app state with--no-recordactions, thenreplay --from N". That flag is silently dropped — thepress/click/longpress/fillCLI readers never forwardnoRecordinto the daemon request. The grammar accepts--no-record, the reader ignores it, and the action records anyway.During an armed (
--save-script) repair this means an agent's state-fix mutations are recorded into the healed script as spurious flow steps — e.g. apress "Back"used only to reset app state becomes a step in the heal, so replaying the healed script performs an unintended action. This is the documented repair flow not working.Evidence
src/commands/interaction/interactions.ts:pressreader (~line 45): spreadscommonInputFromFlags/selectorSnapshotInputFromFlags/repeatedInputFromFlags/settleInputFromFlags, plustargetandverify— nonoRecord. Same forclick,longpress,fill.getreader (~line 100): fix(replay): default-exclude observation-only reads from repair heals, add --record opt-in (#1271 stage 2) #1303 just fixed this one by explicitly addingnoRecord: flags.noRecordon top of its existing...commonInputFromFlags(flags)spread — which proves the common spread does not carrynoRecord. Its comment states the flags were "silently dropped by this reader".Only
open(src/commands/management/app.ts) forwardednoRecordbefore #1303.Relationship to #1271
--no-recordtheir diagnostic reads — that guidance was inert for the same reason, until fix(replay): default-exclude observation-only reads from repair heals, add --record opt-in (#1271 stage 2) #1303 fixed the read readers (get,find,snapshot).state-repairflow.Fix
Forward
noRecord(and the newrecord) in the mutating readers, mirroring what #1303 did forget/find/snapshot. Audit every reader for the same omission rather than fixing case-by-case — the root shape is "each reader hand-forwards flags, so any reader can silently drop one."Regression: a
--no-recordpressperformed inside an armed repair segment must NOT appear in the healed script; and the healed script must not contain state-fix mutations.