Repository navigation
Self-repair qualified end to end on macOS AX; same_fields reads OCR-glued words - #1715
Merged
Merged
Conversation
…fields, a throwaway approver roster, --steady-caret
…; typed refusals; TYPE focus label Review fixes for #1714: the element must still be the one match with the same fingerprint, and the hit-test at the point must be that element or a part of it that can't be pressed, before each press (both edges of a double click). Refusals before the first press raise StructuralResolutionRefused. The TYPE focusing click labels a physical receipt dom, as CLICK does.
… names its commit and mode; scrubbed app env
…ady caret VERIFIED; blinking caret and pixels stop before any save
… in the live AX tree with nothing pressable between Re-review blocker on #1714: bounds alone admitted a nested button's label or an overlay. QuartzMacAXClient.is_part_of walks AXParent with CFEqual from the hit to the target and refuses any node offering an action other than scrolling or a context menu; a client without it refuses every structural click.
This was referenced Nov 3, 2026
Member
Author
Independent adversarial reviewThe reviewer was an independent subagent, given the diff and the product's safety rules, read-only. There were three rounds. Round 1 (9ea78be): REQUEST CHANGES.
Round 2 (0c3e3f1 and a355989): REQUEST CHANGES. The code fixes were sound:
The remaining blocker: one doc sentence said the blinking-caret run was refused at the save, while the clean-tree evidence stopped in the probe. Round 3 (641f3b9): APPROVE. The README and the doc match Open non-blockers:
|
abrichr
added a commit
that referenced
this pull request
Nov 3, 2026
abrichr
added a commit
that referenced
this pull request
Nov 3, 2026
abrichr
added a commit
that referenced
this pull request
Nov 3, 2026
…1706) * Backend parity: capability by surface, with evidence for every cell Rewrites docs/BACKEND_PARITY.md as a capability x surface matrix (web, Windows, macOS, Linux, RDP, Citrix), each cell QUALIFIED, TESTED, CODE ONLY or MISSING with its evidence path, and links the twelve backend-parity issues. Corrects claims the evidence doesn't support: Citrix in-session has no run inside a Citrix session, the Linux GTK3 job doesn't run in the monorepo, the macOS trials drove the backend directly, repair and rollback run on web apps only, and the RDP numbers name their apps and scripted harness. * Backend parity: apply the adversarial review Split rollback (refused off the web) from undo (code only off the web); add the surface-neutral guarded save; one rule for scripted recordings; Windows compile and record were run on a real VM, with the full 4 of 10 run tally; shadow mode gets the same verdict on every surface; web approvals drop to tested (scripted person, local Cloud stand-in); live repair vs offline teach; more refusals; the Aardwolf RDP batch was a Windows 11 VM; flow's linux-atspi-x11 job, not capture's AT-SPI read, is the one that never runs. * Backend parity: non-web self-repair exists (#1709, #1715, #1717) Self-repair and repair by default run outside a browser with repair.session, qualified end to end on macOS AX and not yet on Windows UI Automation or RDP. Teaching the fix (--hold-on-halt) and rollback stay web-only. * Backend parity: describe qualified surfaces with evidence
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1714; retarget to
mainafter it merges.Result. Backend-neutral self-repair (#1709) now runs end to end on native macOS. The test is a native Cocoa test app with a SQLite database, driven through
MacOSBackend. The AX tree, screen capture, input and database are live; the repair agent and the approver are scripted.element_and_record_check (button 'Later').VERIFIED, with exactly one new row for the patient.Under
demo, and with no verifier, the click is refused and nothing is written.That passing run holds the app's caret steady (
--steady-caret). With a blinking caret, the save click is refused at the frame lease and nothing is written: #1713.Changes
repair/self_repair.py,_pre_save_checks: on a backend with no form to read, OCR may glue a field's words together (REPAIREDRUNFOLLOWUPINTHREEWEEKS). A value of two or more words and at least six letters now also counts when it appears on one line with its words joined (_glued_on_a_line). Single words, and any value too short, keep the word rule. This is a screen pre-check; the record check verifies the saved value.benchmark/repair_every_backend/qualify_macos.py:--steady-caret.Tests:
_glued_on_a_lineunit test; the self-repair, auto-repair and element-identity suites: 80 passed.This changes a repair check, so it needs its own adversarial review.