Context
Browser automation often fails quietly when a page changes underneath it. The element the agent found a second ago has been re-rendered, replaced or covered, and a click lands on something else that happens to have the same label. Production JARVIS drives the owner’s Chrome semantically, by role and accessible name, but it has no awareness of iframes or shadow DOM. The Advanced Systems operator lane added a DOM scene reader that records relationships across frames and shadow roots. It also added a target check, dom-target-check/1, that compares the current observation with the one the target was resolved from.
Two rules from that work shape the result: “CSS viewport rectangles are observation data, never native screen leases” and “CURRENT/STALE is an observation comparison, never click authority.”
The run
The proof ran on the operator branch at head 75135f029, in a real isolated Chromium with a fixture scenario:
- 500 read-only target reads were verified in 2.81 s.
- A restart was performed, and continuity was verified afterwards.
- The fixture then replaced the target with a same-label element. Read 501 returned
status: STALE,reason: target_missing_or_replaced,authority: NONE, with the previous and observed scene digests recorded. - The fixture store was removed after the proof.
The evidence
The proof record binds the exact source files by SHA-256 and states its scope in its own fields: full_jarvis_live: false, mixed_application_mission: false, release_qualified: false, training_eligible: false. Seven planned variations of a failing scenario (paraphrase, changed state, a competing target and others) are listed as pending and were not executed. No footage exists yet.
The limits
This is branch work. It is not reachable from production until canonical integration, so this site marks it INTEGRATED, not LIVE-PROVEN. The pages were fixtures, the reads were read-only, and the proof does not show JARVIS typing into or submitting anything. It shows one specific refusal working: a look-alike element was not treated as the original.