Skip to content

feat(network): unsubscribe committed navigation events - #263

Draft
seonghobae wants to merge 9 commits into
feat/webdriver-bidi-navigation-subscribefrom
feat/webdriver-bidi-navigation-unsubscribe
Draft

feat(network): unsubscribe committed navigation events#263
seonghobae wants to merge 9 commits into
feat/webdriver-bidi-navigation-subscribefrom
feat/webdriver-bidi-navigation-unsubscribe

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #28, stacked directly on live PR #262 branch feat/webdriver-bidi-navigation-subscribe exact head 9df2fc23abf42133beaebab4f5466fbdc942d336.

Buyer-visible boundary

This Draft adds an explicit typed WebDriver BiDi session.unsubscribe path for the exact opaque subscription receipt produced by the typed browsingContext.navigationCommitted subscription boundary. It does not expose arbitrary event names, generic method dispatch, generic result JSON, or an ambient caller-supplied subscription identifier.

The command consumes only a previously validated typed subscription receipt, registers command correlation before the first possible remote side effect, serializes standards-valid opaque subscription text as valid JSON, writes one bounded masked WebSocket text frame, correlates the exact response, and retains no generic remote result body or new authority. Malformed envelopes and unknown response IDs fail closed without consuming unrelated outstanding correlation; a matched remote protocol error consumes only its exact command and remains a typed failure.

Primary specification: WebDriver BiDi Editor's Draft session.unsubscribe, using session.UnsubscribeByIDRequest and session.UnsubscribeResult.

Test-first and repair lineage

Exact test-only head b20d35180eef45d70e2370abc7b74cd5aef06d81 added a real loopback TCP → RFC 6455 opening exchange → typed session.subscribe → parsed opaque subscription receipt containing quote/backslash/newline/control/Unicode text → intended masked session.unsubscribe → local-end success response → exact correlation regression before the production unsubscribe types existed.

After production implementation, exact head 88abc1b7af330d617196cbce120d83771d78713b exposed a real exact-coverage defect in CI run 33372945112: the regular-library instantiations for privacy-safe Debug, command-ID range rejection, duplicate-correlation rejection, frame-write failure mapping, malformed envelope handling, unknown-response correlation failure, and matched remote protocol error were not exercised even though lib-test copies were. The exact coverage artifact identified those concrete production obligations; no exclusion or threshold change was used.

The canonical branch was repaired with realistic public integration regressions at af5acf29fec987d098e9185b4a0e98277f83a678; later stack convergence propagated ancestor authority repairs without transferring predecessor evidence.

Exact-current evidence

Current exact head is 24fc763f0c4ae4e0dd2c62b9dca4b5bc0d23a94b against live exact base 9df2fc23abf42133beaebab4f5466fbdc942d336. Fresh ancestry has the base as the exact merge base, with this branch ahead by its nine unsubscribe commits and not behind. GitHub reports the PR open, Draft, and mergeable.

Exact native CI run 33441035257 completed success on this unchanged head:

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

Fresh formal reviews and inline review threads are empty; no independent approval is claimed or inferred. No Manifest V3 or central required-workflow success is inferred where the exact-head inventory does not return it. Organization-required workflow absence remains absent evidence and is tracked at the governance owner boundary by issue #215.

Predecessor checks, earlier coverage artifacts, failed or skipped/cancelled runs, comments, author activity, statuses, and model output are not transferred as passing evidence.

Stack / authority boundary

Keep Draft while #262 and its ancestors remain Draft. Protected-main AGENTS.md and live GitHub governance remain authoritative. This scheduled branch does not merge, self-approve, use admin bypass, force-push, destructively rebase, alter workflows/rulesets/secrets, weaken checks, tag, release, or publish.

@coderabbitai

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

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