Skip to content

feat(network): transport typed text-value postcondition observations - #270

Draft
seonghobae wants to merge 9 commits into
feat/webdriver-bidi-type-text-postcondition-commandfrom
feat/webdriver-bidi-type-text-postcondition-transport
Draft

feat(network): transport typed text-value postcondition observations#270
seonghobae wants to merge 9 commits into
feat/webdriver-bidi-type-text-postcondition-commandfrom
feat/webdriver-bidi-type-text-postcondition-transport

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #28, stacked directly on PR #269 branch feat/webdriver-bidi-type-text-postcondition-command exact head 7854394266d3f292e779193c01413a34f6798d7c.

Buyer-visible boundary

This Draft transports the fixed product-owned WebDriver BiDi script.callFunction text-value observation command across the reviewed direct WebDriver BiDi/RFC 6455 boundary. The public send API consumes an exact WebDriverBiDi + SemanticObservation protocol-use proof, reconstructs the command from live admitted-node authority immediately before dispatch, registers the command id before the first possible remote side effect, and emits one bounded masked WebSocket text frame.

Wrong protocol family or capability, stale/wrong browser-context authority, duplicate correlation, and invalid frame deadlines fail closed. A frame-write failure after registration deliberately leaves the command id outstanding because partial or complete remote execution is ambiguous; it is never silently reused. The transport does not retry, reconnect, select an alternate destination, accept caller-supplied script source/sandbox, grant browser/policy/destination/secret authority, or infer text-entry success.

Test-first lineage

Exact RED head 3ba1d61e48a2542c835f41d79ebc7913673ef38c added a realistic loopback TCP → RFC 6455 integration regression requiring send_webdriver_bidi_text_value_observation before that production boundary existed. CI run 33459143984, Rust contracts job 99705411429, failed at workspace compilation on that RED head. No failed predecessor evidence is promoted to the implementation head.

The canonical branch then added the typed send error, immediate-use authority reconstruction, semantic-observation capability enforcement, command correlation, bounded frame write, public export, and hostile/failure regressions for wrong capability, wrong protocol family, wrong external context, duplicate correlation, and invalid frame deadline.

Exact-current evidence

Current exact head is 191a14535219ea8033777fa4c970efb281b62418 against independently resolved live base 7854394266d3f292e779193c01413a34f6798d7c. The child adopted the parent with a non-force merge. Local verification on this exact head passes 140 Python contracts, formatting, workspace checks, full Rust tests, strict Clippy, rustdoc, and exact 100% production function/line/region/branch coverage. Fresh hosted exact-head checks are required before any passing or merge claim.

Predecessor native CI run 33459335836 completed success on historical head 480d411011120b40d88beec3942aee049541b71d:

  • Rust contracts job 99706040291: exact checkout, repository contracts, canonical formatting, workspace check, full tests, strict Clippy, and API documentation/rustdoc success;
  • Production coverage job 99706040397: exact owned-production function/line/region/branch measurement and enforcement success.

Fresh formal reviews and inline review threads are empty; no independent approval is claimed or inferred. No predecessor, skipped, queued, cancelled, stale, synthetic, model-only, author-only, or status-only evidence is promoted to current-head passing evidence.

Stack / authority boundary

Keep Draft while #269 and its ancestors remain Draft. The next #28 slice must independently admit the correlated script.callFunction result and compare the observed value with the intended non-secret text before buyer-visible text entry can be recorded successful; dispatch and protocol acknowledgement alone are not success.

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.

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

Copy link
Copy Markdown
Contributor Author

RCA and exact-head repair: predecessor e5b44e8470df5befa0bb26eb9f893e7106347f3d failed Rust contracts only on rustfmt and failed exact coverage at webdriver_bidi_command_correlation.rs:244 (1433/1434 branches; 13353/13354 lines; 17129/17130 regions). The uncovered fallback was unreachable because the envelope parser already rejects a success response without a protocol-range id. Current head 64722daac0cbcbaf01375736b5f418838aa88c70 reuses that parser-proven success-id invariant without inventing an invalid wire case, applies canonical formatting, and adds changelog/doctoring evidence for command-family isolation. Local evidence: 139 Python contracts pass; full workspace tests, strict Clippy, rustdoc, and rustfmt pass; exact LLVM coverage reports 100% functions/lines/regions/branches. Remote exact-head checks are newly materializing; local results are not a merge claim.

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>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Parent synchronization on exact head 191a14535219ea8033777fa4c970efb281b62418 adopts #269 exact 7854394266d3f292e779193c01413a34f6798d7c with a non-force merge. Parent-relative transport code is unchanged. Local exact-head evidence: 140/140 Python contracts; formatting, workspace checks, full Rust tests, strict Clippy, and rustdoc pass; production functions, lines, regions, and branches are each 100% covered. Fresh hosted checks are required and predecessor runs remain historical.

seonghobae added a commit that referenced this pull request Sep 5, 2026
Bind the live gap baseline to PR #270's current parent-synchronized head and preserve its transport-only maturity boundary.\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 #271 onto PR #270 exact head 191a145 without rewriting either branch.\n\nCommit-Message-Assisted-by: Claude (via Claude Code)

Signed-off-by: Seongho Bae <me@seonghobae.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant