fix(bidi): require ownership before screen-area mutation - #311
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
ACTIVE writer lease on #311 at exact |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
@coderabbitai review |
|
|
@coderabbitai review |
|
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
RELEASE writer lease for #311 at exact |
|
Continuing the existing #311 writer lease on unchanged exact |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head follow-up on the ownership-witness repair. The executable predecessor RED was causal: strict Clippy rejected the two explicit screen-area planners because the adapter deliberately provided no production witness-mint path. This head removes only those unreachable helpers, keeps Set/Reset typed around the opaque ownership witness, leaves reusable presentation planning limited to viewport/DPR + timezone, keeps complete Screen admission fail closed, and records that the planner/transport consumer must arrive with the Browser Session mint transition. I found no reason to weaken dead_code, reintroduce raw-context authority, or claim browser/runtime acceptance. This COMMENT is not an approval; exact-head CI and eligible independent review remain gates.
af59acb
into
feat/bidi-screen-settings-presentation
|
RELEASE writer lease for #311 at final source head |
Buyer/security gap
#310 correctly keeps WebDriver BiDi screen-area geometry out of the reusable presentation-profile plan, but its context-only Set/Reset surface could replace or clear a screen-settings override without proving that OriginWeave owns the predecessor state. The runtime-qualified 3 September 2026 WebDriver BiDi contract stores a screen-area override per browsing context;
screenArea: nullremoves the entry rather than restoring an earlier owner value. Context identity is addressability, not mutation authority.This child remains stacked on #310 exact
eac7db0a21842baa447c24a0050acba1db42a5e8. It does not change the runtime-qualified BiDi revision, browser transport, #148/#212/#299 ownership, workflows, rulesets, secrets, sandbox posture, or browser trial denominators.RED → causal repair
The first ownership-witness implementation reached exact
f1380ab8e091964ccbdd576d933cf19d696c3791. Hosted CI34419810636executed repository code: Python repository contracts, formatting, and locked workspace tests passed; Production coverage102692565938passed exact enforcement; Rust contracts102692565837then failed strict Clippy becauseplan_explicit_screen_area_overrideandplan_explicit_screen_area_cleanupwere dead production code. The witness intentionally had no legal external mint path, so retaining callable planner helpers contradicted the fail-closed lifecycle design. This was a real source RED, not a queue or coverage failure.Test/regression commit
e5295a0b72c0f2bb5693305a3ffa145a7fa88b30requires the typed screen-area value/witness/Set/Reset vocabulary to remain while no public explicit screen-area planner exists before a Browser Session witness-mint path does. Its own CI generation was cancelled by the ordinary successor push and is not counted as executed RED. Production fix2fc2f64a102a5bf6f87b9d20e709efcab2905c1dremoves only the unreachable helpers, retainsWebDriverBidiScreenArea, opaqueWebDriverBidiScreenAreaOwnership, and witness-bearingSetScreenArea/ResetScreenArea, and adds noallow/expect(dead_code)or raw-context escape hatch. ADR/doctoring/traceability atbc3865df57ffdd6300184bbe4a8571bf6deab10d,35b95d929c35182913749f8348f56bd2c8ae17f4, and final43377c2de00865d0e92126c455ca6390297c9cf7record that the planner/transport consumer must arrive with the reviewed Browser Session mint transition.The reusable profile-derived plan remains viewport/DPR plus timezone; complete
PresentationSurface::Screenremains fail closed because available-screen geometry is not modelled by the current profile and color depth is not controlled by the standard operation.Exact-head GREEN
Current exact head
43377c2de00865d0e92126c455ca6390297c9cf7is repository GREEN in CI34423927553. Rust contracts102705027719passed Python repository contracts, canonical formatting, locked workspace tests, strict Clippy, and rustdoc/API documentation. Production coverage102705027958passed measurement, diagnostics publication, and exact function/line/region/branch enforcement.The same run also produced useful queue evidence: both jobs were created at
2026-09-10T01:03:52Zwith no runner, then were ordinarily assigned GitHub-hosted runners at01:12:02Zwithout any leaf push, cancellation, rerun, workflow mutation, or synthetic status. The 8m10s pre-runner delay was handed to canonical.github#712; it is infrastructure/control-plane evidence, not a source failure.CodeRabbit automatic review is disabled for the non-default stacked base, its manual retry was rate-limited, and Codex review reported account usage exhaustion. Those are not approvals. Exact-head COMMENT review
5161622064records the repair without self-approval.Acceptance and integration
This repository GREEN does not constitute browser GREEN. No WebDriver BiDi transport, command acknowledgement, page-observed state, #299 pinned-Chromium startup repair, or cleanup/destruction proof is supplied here. Browser acceptance still requires apply → page-observed post-condition → native interaction/outcome → owned reset/destruction → post-cleanup observation.
The child is now eligible for ordinary merge into its immediate #310 feature-branch parent so the parent fully inherits the valid delta. After that merge, #310 must regenerate its own exact-head repository evidence; predecessor and child checks do not transfer to the new parent head. No force push, destructive rebase, self-approval, protection bypass, workflow/ruleset/secret mutation, runtime repin, sandbox weakening, trial reduction, tag, or release is part of this repair.