fix(bidi): make reusable application scope explicit - #298
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 |
…9' into codex/bidi-application-completeness-20260909
…-capabilities' into codex/bidi-application-completeness-20260909
|
PR-state repair on exact |
|
Writer lease ACTIVE — exact |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head source review on 46abb40bef592181dcba0ec254b76c7e526e337c: the inherited validated-command construction finding is repaired at the type boundary. SetViewport now carries ViewportBounds and DevicePixelRatio; SetTimezone carries PresentationTimeZone, so downstream transport code cannot construct zero/oversized viewport dimensions, NaN/non-positive DPR, or arbitrary timezone strings through these public variants. The planner retains the same two reusable intents and reduced-motion remains outside reusable application. This is not an approval or executable GREEN: exact CI 34313352903 is skipped under Draft admission, so full repository gates and pinned-browser evidence remain outstanding. Keep Draft.
|
Writer lease RELEASED — exact |
|
Writer lease ACTIVE — exact |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head documentation review on 82f2e20ed8aa47eb40c7098ce01fdcca1b2be870: the inherited shipped-vs-planned P2 is repaired without promoting live browser behavior. README now records the active-branch originweave-bidi capability/command-planning boundary while explicitly keeping live WebDriver BiDi transport planned and open-PR-only. The roadmap now separates that version-pinned planning foundation from remaining serialization, request/response correlation, page-observed post-conditions, and cleanup observation. This is a docs/source-consistency repair only, not protected-main shipment or browser GREEN. Keep Draft; current exact-head hosted repository/browser gates have not executed.
|
Writer lease RELEASED — exact |
|
Independent exact-head validation at 82f2e20 completed locally: rustfmt, 164 Python tests with 546 subtests, locked Rust workspace tests, strict Clippy, and rustdoc passed. This is local evidence only. The PR remains Draft and has no transferable hosted or browser-runtime GREEN. |
|
Writer lease ACTIVE — exact |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head authority-boundary review on 369add64ea285497e9fa3f706ba85ba205adff80: the reusable/versioned BiDi planning crate no longer exposes a caller-constructible SetReducedMotion command while lacking any Browser Session ownership or complete media-state snapshot/restore witness. ReducedMotion remains in the protocol-capability surface, but actual media mutation is deferred to a later Browser Session-owned adapter that can prove a disposable lifecycle or full restoration. Test-first 3bd7b2a911fddcd6771c46568fb5e44d3c3412f8 fixes this as an API-surface contract; minimal production 369add64... removes only the unowned command variant and its focused unit assertion. This is not approval or executable GREEN: exact CI 34315065049 is Draft-skipped, so repository gates and real browser application/cleanup evidence remain outstanding.
|
Writer lease RELEASED — exact head |
|
Review finding (exact head Reproduction: The Rust crate test passes, so the source-only contract was not included in that gate. Update the older assertions to require the intended absence of a reusable media-mutation command and retain the positive protocol-capability check. Then rerun the exact targeted Python contract suite and the full repository gate before making the Draft ready. This is a non-approval review finding; no Chromium runtime or protected-main claim follows. |
…tract-repair-20260909 test(bidi): align media authority contract
|
Exact-head follow-up for Visual inspection: GitHub-rendered exact-head README in Edge desktop shows the pre-alpha/active-branch planning boundary, headings, long identifiers, and |
2d97c12
into
feat/webdriver-bidi-presentation-capabilities
Product correction
The reusable BiDi planner previously accepted a complete presentation profile while emitting only reversible viewport, DPR, and timezone commands. That could be mistaken for complete profile application. This successor makes the restorable inputs explicit, keeps command payloads bound to validated presentation value objects, and distinguishes the implemented capability/planning boundary from still-unshipped live transport.
Current exact head is
369add64ea285497e9fa3f706ba85ba205adff80on Draft parent #2936855e2578ae94279cc9ab4a14527b016e8c049ee. Keep this PR Draft.Test-first lineage
The predecessor application-completeness repair had local evidence on
e523de76ff8e03caf1766692d8d53ca81b48c61b: 162 Python tests / 546 subtests plus locked Rust workspace tests, strict Clippy, rustfmt, and rustdoc passed there. Independent local validation later reported rustfmt, 164 Python tests / 546 subtests, locked Rust workspace tests, strict Clippy, and rustdoc green on82f2e20ed8aa47eb40c7098ce01fdcca1b2be870. Neither result transfers to the current head.Application completeness and validated payloads
5c3513fe056e3edc770dc1fd1bc34897fe66ab3drequires public command payloads to retain validatedViewportBounds,DevicePixelRatio, andPresentationTimeZonevalues rather than reopening validation with raw numbers/strings.46abb40bef592181dcba0ec254b76c7e526e337capplies that minimal type-boundary repair.PresentationProfilewhile silently omitting other surfaces.5149967283records the bounded validated-payload repair without approval.Shipped-vs-planned documentation
0d36e8838221b2b43c6871a5768913afda3b00eeadds the documentation contract.6e07a4d920629514d745425b40642b22ef556ff5and82f2e20ed8aa47eb40c7098ce01fdcca1b2be870align README and roadmap: the version-pinned capability/command-planning boundary exists only on this active branch, while live WebDriver BiDi serialization/transport, request-response correlation, page-observed post-conditions, and cleanup observation remain unshipped.5149980581records that bounded documentation repair.Reduced-motion command authority
Fresh source review found a remaining authority leak:
SetReducedMotionwas still a publicly constructible command variant even though this crate has no Browser Session ownership witness or complete pre-existing media-state snapshot/restore capability. The crate's own lifecycle contract says media mutation must not occur until one of those invariants exists.3bd7b2a911fddcd6771c46568fb5e44d3c3412f8requires ReducedMotion to remain a protocol capability while preventing this reusable planning boundary from minting an unowned media-mutation command. On predecessor source this is semantically RED; Draft admission prevents hosted execution, so no hosted RED is claimed.369add64ea285497e9fa3f706ba85ba205adff80removes only the publicSetReducedMotionvariant and its focused unit construction.PresentationSurface::ReducedMotionremains in the pinned protocol capability map.5150131844confirms the bounded authority repair without approval or executable-GREEN promotion.This does not claim that reduced-motion can never be applied. A later Browser Session-owned adapter may introduce it only after proving a disposable context/profile lifecycle or complete media-configuration snapshot/restore and page-observed cleanup.
Both inherited parent #293 P2 threads have successor handoffs and remain unresolved until #293 adopts the child deltas through normal stack integration and regenerates its own exact-head evidence.
Verification state
Exact-current CI
34315065049completed skipped under Draft admission. Therefore current-head Python repository contracts, rustfmt, locked workspace tests, strict Clippy, rustdoc, exact 100% owned-production coverage, and browser execution are not claimed GREEN for369add64....Earlier Ready-triggered or local predecessor results cannot authorize this head. Only evidence bound to the exact current tree applies.
Scope and remaining gates
No transport I/O, CDP, JavaScript evaluation, browser launch, workflow, ruleset, secret, #212/#148 owner behavior, merge, tag, or release changes. No caller-mintable media-mutation authority remains in this reusable planner.
Issue #292 still owns pinned-Chromium application, request/ACK correlation, page-observed post-conditions, navigation/crash behavior, explicit reset or owned-boundary destruction, post-cleanup observation, reduced-motion lifecycle authority, and Chromium-specific remainder surfaces. Do not mark Ready, merge, tag, publish, release, force-push, destructively rebase, edit
.github/**, or transfer predecessor GREEN.