docs: explain what the agent misses inside an off-site iframe

Merged
KR
5d ago
+53-16

An iframe from another site, such as a hosted card field, shows in the agent's semantic tree as an empty iframe node. The docs never told test authors what that means for them:

  • A tree-only judgment (agent.assert, waitFor, extract) about the frame's content works without that content (#1270).
  • An agent.act whose only change is inside the frame never records a replay. The cache sees no change, writes no-change, and the step calls the model on every run, strict cache included (#1271).

Both come from the same deliberate boundary: isOnSiteFrame in packages/web/src/observation.ts:189-193, with the replay result coming from the no-change check in packages/e2e/src/agent/step-cache.ts:610. The boundary itself was documented only in the security reference's site check.

What changed:

  • docs/browser.mdx, "Reach into an iframe": one paragraph. It states the boundary and says the agent reaches that content only through screenshots. It points to frameLocator for steps, vision for judgments, and the cache consequence.
  • docs/cache.mdx: the no-change row covers the frame case and says the step runs live on every run. The no-entry row gets that exception. The old "a step that took no action records nothing" sentence moves out of the no-change row: such a step stages as skipped (step-cache.ts:601) and reports no write at all.
  • docs/reference/agent.mdx, "Vision": one sentence linking to the iframe section.
  • skills/e2e/ (plus the synced plugin copy): the same facts in agent.md, writing-tests.md, and debugging.md (ASSERTION_INCONCLUSIVE), and a patch changeset since the skill ships in e2e.

No runtime change.

Fixes #1270
Fixes #1271
Linear: ENG-1054

Verified

Ran it locally: yes

  • Docs site, mint dev on the branch: the three edited sections render, and both links resolve.
Reach into an iframestep.cache.write tableVision
browsercachevision
  • I checked every claim against the source. I didn't rerun the reporter's model-backed repro; the issues include its report output.

Made by Claude Opus 5.5 (claude-opus-5-5) in Claude Code, running in T3 Code.