Skip to content

--no-record is silently dropped by the press/fill/click readers — the documented state-repair flow doesn't work via CLI #1304

Description

@thymikee

Summary

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 verifyno noRecord. Same for click, longpress, fill.
  • get reader (~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 adding noRecord: flags.noRecord on top of its existing ...commonInputFromFlags(flags) spread — which proves the common spread does not carry noRecord. Its comment states the flags were "silently dropped by this reader".

Only open (src/commands/management/app.ts) forwarded noRecord before #1303.

Relationship to #1271

Fix

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-record press performed inside an armed repair segment must NOT appear in the healed script; and the healed script must not contain state-fix mutations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions