Skip to content

feat(core): observe typed-text postconditions without ambient script authority - #269

Draft
seonghobae wants to merge 10 commits into
feat/webdriver-bidi-node-type-text-responsefrom
feat/webdriver-bidi-type-text-postcondition-command
Draft

feat(core): observe typed-text postconditions without ambient script authority#269
seonghobae wants to merge 10 commits into
feat/webdriver-bidi-node-type-text-responsefrom
feat/webdriver-bidi-type-text-postcondition-command

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Current fixed-observation parent adoption — 2026-09-07

Published head 3df2a631bacd7109b3982fdd7ac599d0bd92a589 adopts current #268 ff27220cb5eb4d11ca1dc5614a4181e1a397a3f1 through ordinary content-aware merge f883fd6f. Both histories remain intact. The fixed observation implementation and entire eight-test child file are byte-identical to 78543942; the entire network crate matches the parent. No source copy, generic scripting surface or new authority is introduced.

Actual RED 658fb676 reused the canonical real-socket regression and failed because a click for registry session A was dispatched to foreign transport session B. After adoption, that regression and nine pointer/text response tests pass, together with all eight fixed-observation tests. The source remains a request-construction primitive: it neither performs I/O nor proves the field changed.

Full Rust1.97.1 formatting, locked all-target/all-feature workspace check, complete workspace tests including five compile-fail doc tests, strict Clippy and warning-denied rustdoc pass. All147 Python contracts,compileall,healthy CodeGraph and diff checks pass. Production functions1338/1338,lines14025/14025,regions17843/17843 andbranches1460/1460 are100% covered. Artifact coverage-parent-adoption.json SHA256 1e203e6c0801bedbbcdbeb1be500b533a3d68e0ac842de221f7f470c5e742c66; the pinned nightly unstable branch warning remains explicit. Independent read-only review found no actionable findings, not formal approval.

Exact-head hosted checks and actual visual inspection are tracked separately in the publication receipt. Keep Draft. Prior CI/MV3 success below applies only to its historical head. Descendant #270 needs its own content-aware adoption and fresh verification; response acceptance, observed values, authorized action completion, protected-main delivery and release evidence remain separate. No force, workflow, ruleset, secret, approval, protected merge, tag or release change.


Preserved predecessor evidence

Partial implementation of #28, still recorded against the historical #268 parent snapshot 8d4027e40b790d28d866051ba741db12927ec22c. Current exact #269 head is 7854394266d3f292e779193c01413a34f6798d7c; keep Draft.

Buyer-visible boundary

This Draft adds a fixed, sandboxed WebDriver BiDi script.callFunction command for observing the exact admitted text field after node-bound non-secret text input. It is deliberately not a generic JavaScript facility: the method, function declaration (node => node.value), sandbox, argument shape, and resultOwnership are product-owned constants. Callers can provide only the command id plus already admitted browser/node authority.

Construction revalidates the exact registered browser session, external browsing context, canonical origin, current document epoch, registry-issued node provenance, and exact admitted WebDriver BiDi sharedId before serialization. Cross-registry handles, stale document authority, changed origins, wrong external contexts, unadmitted node identifiers, and out-of-range command ids fail closed. The custom Debug representation omits browsing-context and node identifiers and the serialized wire payload.

The command performs no I/O and is only an observation primitive. It does not authorize the preceding text-input action, prove transport success, accept model/page supplied script source, grant browser/policy/destination/secret authority, or establish buyer-visible post-condition success. A later transport/response boundary must independently correlate the remote result and compare the observed value with the intended non-secret text.

Test-first lineage

Exact RED head a928037a89314bf9002762964b436f47fb3470ae added a realistic admitted-node regression referencing the missing typed command and fixed constants before production support existed. The canonical branch then added the fixed command, authority/error contracts, public exports, hostile authority regressions, deterministic escaping, and privacy-safe diagnostics. Formatting and exact-coverage findings were repaired on this same branch rather than transferring predecessor evidence.

Exact-current evidence

Exact current head 7854394266d3f292e779193c01413a34f6798d7c is open, Draft and mergeable. Repository-native CI 33936879003 is terminal success on this unchanged head:

  • Production coverage 101226426137 completed exact owned-production measurement, diagnostics upload and enforcement successfully.
  • Rust contracts 101226426297 completed repository contracts, canonical formatting, workspace check, full tests, strict Clippy and API documentation successfully.

Manifest V3 Compatibility 33936879026, job 101226426179, is also terminal success on this exact head. The job enforced hardened-runner egress, downloaded the exact Chrome for Testing pair, executed the real MV3 compatibility fixture and uploaded bounded evidence.

The documentation contract added at this same head also passed locally before publication: focused 1/1, complete Python suite 140/140, full Rust workspace tests/Clippy/rustdoc/formatting and git diff --check passed. No formal independent approval is inferred from these checks.

Current parent-convergence boundary

These exact-head GREEN results validate only the existing 785439... tree. The PR's recorded #268 base snapshot remains 8d4027e40b790d28d866051ba741db12927ec22c, while live #268 has advanced to e567af9e678fd4791776df795e89ed666975e6c2. A fresh compare shows that live parent is 329 commits ahead of the recorded snapshot and the intervening parent delta touches command correlation, sealed received-message handling, type-text transport/response, registry/session provenance and related tests/docs.

Accordingly this branch is not parent-converged. Do not perform an ancestry-only merge that preserves the stale child tree, and do not promote the current GREEN as evidence for a future restacked head. A source writer must later perform an ordinary content-aware non-force adoption of the released current #268 lineage, preserve this PR's fixed observation-command semantics, rerun realistic regressions, and regenerate exact-head CI/coverage/MV3 evidence.

Stack / authority boundary

Keep Draft while #268 and its ancestors remain Draft. Existing descendant #270 owns transport of this fixed observation command and cannot inherit this head's checks after any future parent convergence. No predecessor, skipped, queued, cancelled, stale, synthetic, model-only, author-only, or status-only evidence is promoted to another head.

Protected-main AGENTS.md and live GitHub governance remain authoritative. This scheduled writer does not merge, self-approve, force-push, destructively rebase, alter workflows/rulesets/secrets, weaken checks, tag, release, or publish.

@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Record the active-stack authority boundary for the fixed text-value observation and keep its browser-I/O and outcome-verification limits executable in the documentation contract.\n\nCommit-Message-Assisted-by: Claude (via Claude Code)

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Documentation-completeness repair on exact head 7854394266d3f292e779193c01413a34f6798d7c:

  • RED: the new documentation contract failed on all five required durable-boundary phrases before the changelog and traceability dossier were updated.
  • GREEN: focused contract passes (1/1); complete Python suite passes (140/140).
  • Rust verification inherited no stale claim: the full workspace tests, strict Clippy, rustdoc, and formatting were rerun locally and passed before push.
  • git diff --check passes.

Hosted CI and MV3 checks for this exact head are queued. Predecessor-head runs remain historical only; the PR stays Draft behind #268.

seonghobae added a commit that referenced this pull request Sep 5, 2026
Bind the live gap baseline to PR #269's fixed observation primitive and repair stale exact-head inventory assertions for the already-recorded #37 and #288 updates.\n\nCommit-Message-Assisted-by: Claude (via Claude Code)

Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae added a commit that referenced this pull request Sep 5, 2026
Bring PR #270 onto PR #269 exact head 7854394 without rewriting either branch.\n\nCommit-Message-Assisted-by: Claude (via Claude Code)

Signed-off-by: Seongho Bae <me@seonghobae.me>

Copy link
Copy Markdown
Contributor Author

OriginWeave hourly writer acquires one bounded #269 PR-state/evidence-only slice at verified exact head 7854394266d3f292e779193c01413a34f6798d7c, recorded parent snapshot #268 8d4027e40b790d28d866051ba741db12927ec22c, Draft. Fresh public comments show no source/docs/PR-state lease on #269.

Exact-current hosted evidence is already terminal GREEN: CI 33936879003 has Production coverage 101226426137 and Rust contracts 101226426297 successful; MV3 33936879026 job 101226426179 successfully ran the hardened real pinned-Chrome fixture. However the live #268 head is now e567af9e678fd4791776df795e89ed666975e6c2; compare evidence shows the recorded parent snapshot is 329 commits behind that live parent and the intervening delta touches the same type-text/correlation/received-message boundaries. Scope is therefore only correcting the stale hosted-evidence claim and explicitly recording non-convergence. No ancestry-only merge, source mutation, workflow/ruleset/secret change, Draft/Ready transition, protected merge, tag or release. A future source writer must perform a content-aware non-force parent adoption and regenerate all exact-head evidence. Explicit release follows body update/readback.

Copy link
Copy Markdown
Contributor Author

#269 PR-state/evidence writer RELEASED. Exact head remains 7854394266d3f292e779193c01413a34f6798d7c, Draft. PR body now records exact-head CI 33936879003 and MV3 33936879026 terminal GREEN while explicitly marking the branch non-converged: recorded #268 snapshot 8d4027e40b790d28d866051ba741db12927ec22c is behind live released #268 e567af9e678fd4791776df795e89ed666975e6c2; fresh compare reports 329 intervening commits touching overlapping type-text/correlation/received-message boundaries. Readback confirmed unchanged head/base. No source merge or ancestry-only shortcut was attempted; future parent adoption must be content-aware and regenerate exact-head evidence. No workflow/ruleset/secret, approval, protected merge, tag or release mutation; no #269 writer remains.

seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Writer lease RELEASED — root task 01a06c0f-b427-7830-b654-9addcdfe7aff. Published/read back269head3df2a631bacd7109b3982fdd7ac599d0bd92a589 on268ff27220cb5eb4d11ca1dc5614a4181e1a397a3f1, Draft. Actual canonical socket RED658fb676 failed0/1 before ordinary mergef883fd6f;18focused tests,147Python contracts,compileall,fullRust1.97.1 formatting/check/tests incl5compilefail/strictClippy/rustdoc,CodeGraph/diff pass. Fixed observation implementation and8testfile byte-identical78543942; entire networkcrate matchesparent. Independent read-only review nofindings,notapproval.

Coverage1338/14025/17843/1460all100percent; artifact coverage-parent-adoption.json SHA2561e203e6c0801bedbbcdbeb1be500b533a3d68e0ac842de221f7f470c5e742c66; unstablebranchwarning retained. CI34073733364 Rust101595772085/coverage101595772133 andMV334073733355 job101595772211QUEUED,notpassing. Actual isolatedEdge screenshots /tmp/pr269-dossier-3df2a631.png and /tmp/pr269-published-3df2a631.png inspected: readable exacthead/base,Draft,current/historical separation andevidence,no visibleclipping/overlap at1440px. Documentationpresentation only,notproduct-runtimeacceptance. PriorfullPRbody preserved/readback.

Worktree/private/tmp/originweave-pr269-review.ejWpbF anduntrackedcoverage artifact retained; noactiveverification/browserprocess orwriter remains. Nextsafequeue238datedevidenceupdate then270parentadoption,statusreceipts,protectedfoundation. No force,workflow,ruleset,secret,approval,merge,tag orrelease mutation.

Copy link
Copy Markdown
Contributor Author

Fresh exact-head receipt for 3df2a631bacd7109b3982fdd7ac599d0bd92a589 after source-writer release. Current W3C WebDriver BiDi Editor's Draft still defines script.callFunction with required functionDeclaration, awaitPromise, and target, optional arguments as script.LocalValue, and resultOwnership; script.SharedReference remains { sharedId, ?handle }, including sandbox-realm node deserialization. The fixed OriginWeave command shape reviewed on this head remains aligned with that protocol surface; no standards-driven source correction is identified in this bounded review.

Hosted acceptance is still incomplete, not failed product code: CI 34073733364 jobs Rust 101595772085 and coverage 101595772133, plus MV3 34073733355 job 101595772211, are all materialized on standard ubuntu-24.04 but remain pre-checkout queued with steps=[] and runner_id=0. I handed this unchanged-head admission evidence to canonical .github#712 as comment 5563968516; no leaf retrigger, selector churn, gate change, or predecessor evidence transfer. Keep #269 Draft and preserve this exact head while the sole current-head evidence acquires runners.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant