Skip to content

feat(core): restack bounded BiDi pointer click - #256

Draft
seonghobae wants to merge 11 commits into
feat/webdriver-bidi-teardown-transport-bindingfrom
repair/webdriver-bidi-pointer-click-restack
Draft

feat(core): restack bounded BiDi pointer click#256
seonghobae wants to merge 11 commits into
feat/webdriver-bidi-teardown-transport-bindingfrom
repair/webdriver-bidi-pointer-click-restack

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #28. This Draft owns bounded WebDriver BiDi input.performActions primary-button click serialization and remains stacked on feat/webdriver-bidi-teardown-transport-binding.

Buyer-visible boundary

The command remains inert transport data: session/context/origin/document-epoch authority, policy/approval, TypedInput capability, authenticated transport, response correlation and observed post-condition remain separate boundaries. No transport I/O, node minting, retry/fallback, ambient authority inheritance or policy decision is introduced here.

Executed RED and causal repair

Exact predecessor 172a18a03343757dbb6334654edff128e09cd945 ran CI 33662670447. Rust contracts 100356737441 passed; Production coverage 100356737137 failed the exact 100% gate on the impossible success-response-without-command-id branch in webdriver_bidi_command_correlation.rs. Artifact 9882273428 (sha256:e1599cbe5c9009936785433d1ac97d4c09201a152e3e04b1a9f8100da0e08467) records that RED.

Causal repair d24b8dc627b088811cc8b04938ff770203a79d16 structurally represents validated routing as CommandSuccess { command_id }, CommandError { command_id: Option<u64> }, or Event and removes the impossible success-without-id branch rather than excluding it from coverage. Exact CI 33770584008 and Manifest V3 Compatibility 33770584067 subsequently completed success on that predecessor generation.

Current-parent integration and fresh verification

Current exact head is ced4a851ca66c08d895a098725c7f0ad3ecf0c38, an ordinary two-parent merge preserving predecessor 9f2e6f29be46371762e3031a97c1cac04720694f and current #255 3e7057443d7c9532ff526acb5eefe8cd4778c767. The pointer-click implementation, core exports and four command tests are byte-identical to the predecessor. The child correlation delta remains only its documented PointerClick kind. Current parent source and regression fixtures are inherited without duplicating their fixes.

The predecessor's native release-contract discovery collected zero tests and failed the expected-one assertion. After integration it executes one passing contract. Fresh local checks pass: four pointer-click command tests, 13 connection-bound message/response/teardown tests, all 142 Python contracts, compileall, complete Rust 1.97.1 format/check/workspace tests/strict all-target all-feature Clippy/rustdoc, and numerical 100% coverage of 1088 functions, 11077 lines, 14146 regions and 1210 branches. The pinned branch-instrumentation warning remains visible.

Current CI 33965138401 and Manifest V3 Compatibility 33965138418 are queued. Local verification is not hosted security acceptance, counted approval or protected-main delivery. The prior response/closure-substitution repair now exists in this integrated source; browser-process exit, profile removal and actual click post-condition still require their independent runtime evidence.

The previous 10-ahead/61-behind drift comparison applied to 9f2e6f29... against current #255 before adoption. That predecessor's CI 33944891677 and Manifest V3 Compatibility 33944891650 successes remain historical and are not the new head's hosted proof.

Keep Draft. Direct child #257 must follow the repaired #256 generation with its own freshly verified ordinary parent adoption. Do not force-push, destructively rebase, duplicate ancestor repairs, weaken coverage, or treat protocol serialization as browser-action/post-condition evidence.

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

@coderabbitai

coderabbitai Bot commented Aug 30, 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.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head repair review: predecessor 172a18a... produced a real repository RED, not a queue artifact. Rust contracts were GREEN while exact production coverage failed on the sole impossible success + missing command id branch. This head removes that representable-invalid state by retaining validated routing structurally (CommandSuccess { command_id }, nullable-id CommandError, Event) and exposes the routing only crate-privately for correlation. Public envelope behavior and browser/policy authority are unchanged. Fresh CI/MV3 on this exact head is still required; no predecessor result is transferred.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parent #255 has advanced by normal fast-forward from 626026c5037ee23e5b435bd864e7ad4280da5643 to exact 88e68f37d655ae62dae6a38a50c12b30e2801160 after hosted exact coverage exposed the common-envelope success/missing-id representation defect. This #256 head is therefore stale-parent evidence even though it already contains a compatible structural routing repair plus its unique pointer-click delta. Do not transfer #256 checks or reconstruct descendants yet. Keep Draft; after #255 88e68f37... reaches terminal exact-head verification, non-destructively restack #256 onto that verified parent and preserve only its unique PointerClick command slice and still-valid evidence, without reintroducing duplicate parent repair.

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

Copy link
Copy Markdown
Contributor Author

Parent/base reconstruction completed for exact head f4f5bb71b54f3df3887d79b52f361e5c8e2d30e7.

I merged the current #255 head (d60e98679f09cc067d46fae1170b464d53c0951f) without rewriting history. The bounded pointer-click slice remains inert: it serializes a fixed primary-button input.performActions sequence only from already admitted identifiers and does not bypass the still-required current session/context/origin/document, policy, approval, or transport binding. I added the missing buyer-visible changelog entry.

Exact-tree local evidence: documentation contracts 22 passed / 177 subtests; rustfmt clean; strict all-target/all-feature Clippy clean; full workspace tests passed; rustdoc with warnings denied passed; pinned-nightly LLVM production functions, lines, regions, and branches are 100% covered. Hosted exact-head checks remain authoritative.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current-head lineage review: live PR metadata is base=d60e98679f09cc067d46fae1170b464d53c0951f, head=f4f5bb71b54f3df3887d79b52f361e5c8e2d30e7, with 8 ahead / 0 behind and five unique semantic paths. The earlier d24b8dc... CI/MV3 GREEN is predecessor evidence after this non-destructive parent refresh and must not be promoted to current-head GREEN. Current CI 33898817836 and MV3 33898817825 remain non-terminal. #247 has also moved again to the no such client window test-only generation, so parent-first reconstruction remains required after that canonical ancestor reaches exact GREEN.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head parent refresh: bd1f5ac60a76d2edb35e63095d406e53bc43931f now adopts #255 f8edec38cf8ab7fde22b8d1de9305728c1a2f25b without conflict. Rustfmt, all-feature/all-target check, strict Clippy, rustdoc, 141 Python contracts, and CI-equivalent pinned-nightly 100% production coverage all passed. Hosted checks remain authoritative; the PR stays Draft.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Non-force restacked on PR #255 exact head a13de5f9321e72c1867974eb7a43230f031e58df; PR #256 is now exact head 9f2e6f29be46371762e3031a97c1cac04720694f. Verification: rustfmt, all-feature/all-target check, strict Clippy, rustdoc, 141 Python contracts, and CI-equivalent pinned-nightly production function/line/region/branch coverage at 100%. Fresh hosted exact-head checks and ordered parent integration remain required.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the five-file parent-relative change at 9f2e6f2 against a13de5f. No additional defect found in this bounded pointer-click serialization change. It reuses the existing JSON string encoder and protocol-text validation, enforces the js-uint command-id and context byte bounds, and emits one fixed mouse move/down/up sequence. The element origin/sharedId and performActions envelope agree with the current W3C Working Draft (3 September 2026), §§7.9.2.1 and 7.9.3.1: https://www.w3.org/TR/2026/WD-webdriver-bidi-20260903/#command-input-performActions .

Rust 1.97.1 formatting, all four focused pointer-click tests, strict core Clippy with all targets/features, and warning-free core rustdoc passed locally. This inert serializer grants no policy authority, performs no browser input and proves no click post-condition. Keep Draft: parent #255's connection-evidence finding remains unresolved, and current hosted checks, complete coverage, ordered parent integration and policy gates remain independent requirements. This COMMENT is not an eligible non-author approval.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current-parent repair finding on exact 9f2e6f29be46371762e3031a97c1cac04720694f: live #255/base branch has advanced to 3e7057443d7c9532ff526acb5eefe8cd4778c767. Fresh comparison is 10 child commits ahead / 61 parent commits behind, with merge base a13de5f9321e72c1867974eb7a43230f031e58df. The valid child delta remains five paths. Two paths overlap with the parent generation: CHANGELOG.md and crates/originweave-network/src/webdriver_bidi_command_correlation.rs. The latter must retain #255's connection-generation provenance machinery and add only the child-owned PointerClick command kind; the pointer-click CHANGELOG record must also survive. This is a repair/restack finding, not authorization to close or discard the child. Current 9f2e... CI/MV3 success is predecessor-tree evidence and cannot transfer to the future current-parent adoption. Keep Draft; ordinary non-force adoption of exact #255 is required before #257 follows this branch.

Retain the complete pointer-click serialization delta and inherit the verified connection-bound response and closure repair. Observe native release-contract discovery RED before integration and full local GREEN afterward; preserve hosted and operational acceptance boundaries.

Commit-Message-Assisted-by: Codex (via Codex)
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