Repository navigation
fix(flow): verify complete typed input and stop on focus changes - #1831
Conversation
Signed-off-by: abrichr <richard.abrich@mldsai.com>
Independent adversarial review: BLOCKFrom: Grok. Reviewed head b73452f. The typed-input checks themselves hold up. One change on the new no-retry halt path, though, makes the replayer fence a delivery that never happens. Blocking
Because no delivery follows, those guards are never acknowledged. For a managed run, Probe: I added a counting guard as
On main, this path either halts without the hook or retypes after it, so fences and acknowledgments match. Suggested fix: in the Checked and fine
Non-blocking
|
Signed-off-by: abrichr <richard.abrich@mldsai.com>
|
Fixed the review blocker in 4c207c5. The no-retry halt now checks authority with Both opaque-input cases reproduced 3 hook calls versus 2 deliveries/acks before the fix. They now assert exactly 2 hooks, 2 deliveries, 2 acknowledgments and no active acknowledgers. The existing late runtime-input mutation refusal still passes. Final validation: all 359 affected tests, Flow Ruff/format, and mypy (600 files) pass. The OCR docstring now states that matching lowercases text. Please re-review this head. |
Independent adversarial review: APPROVEFrom: Grok. This re-reviews head 4c207c5, the fix for my BLOCK (6625560058). The blocker is fixed:
The test covers it:
A refused recheck still halts:
Tests: Non-blocking:
|
Signed-off-by: abrichr <richard.abrich@mldsai.com>
Independent adversarial review: APPROVERe-review at the actual branch head 9e82eb0 ( What I checked:
Ran locally at 9e82eb0: Notes, non-blocking:
|
Signed-off-by: abrichr <richard.abrich@mldsai.com>
Signed-off-by: abrichr <richard.abrich@mldsai.com>
Independent adversarial review: APPROVEFrom: Grok. This re-reviews head 1b4d57d. My last approval (6628601146) was at 9e82eb0. Two commits are new since then. 1d99fb0 (merge of main).
1b4d57d (masked input stays local).
What I ran at 1b4d57d:
Non-blocking. With no focusing click ( CI at 1b4d57d was still running when I checked: 5 success, 21 skipped, 1 neutral, 3 pending, none failed. |
Signed-off-by: abrichr <richard.abrich@mldsai.com>
Closes #1478
Typed values require an exact whitespace-squashed OCR match, including short values. When field bounds are unknown, readable-text verification covers the full row width so a crop cannot hide a prefix or suffix. Masked input keeps its local pixel crop, so an unrelated screen change cannot confirm delivery. Native and pixel-only runs halt without retrying unconfirmed delivery. The Windows agent checks the foreground window before and after each character or paste and reports uncertain delivery if it changes.
Runtime at 1b4d57d passes 428 privacy, pixel-scale, replay, Windows agent/backend and uncertain-delivery tests; full Flow Ruff, formatting, mypy (591 sources), and engine-generality checks pass. Negative controls reproduce the original acceptance/retry bugs, three cropped-value cases, and the masked-input screen-change regression.
Current head b96974a changes only the existing page-settle test stub to accept the new masked keyword. All four CI failures reproduce before it; all 22 page-settle tests pass after it. Every assertion is identical by AST audit. Full Flow Ruff/format pass at this head; runtime code is unchanged.
The synthetic backend reports the value it received. Pixel tests cover a record switch during readback (no-retry halt) and after verification (identity mismatch before saving). Main was integrated only to resolve two real append-only conflicts. The assertion audit retains all new main assertions and the prior no-retry strengthenings. No safety test is relaxed.
Live Windows desktop input was not tested. Update the guest agent to receive its foreground checks. CI and independent re-review are required for this head.