🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

browser-pilot-cli

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

browser-pilot-cli - npm Package Compare versions

Comparing version
0.3.0-rc.1
to
0.3.0-rc.2
+43
docs/releases/v0.3.0-rc.2.md
# Browser Pilot 0.3.0-rc.2
This release candidate fixes a real-Chrome edge case found while accepting the
multi-Profile routing introduced in `0.3.0-rc.1`.
Some regular Chrome Profile tabs create a `window.open` target whose
`TargetInfo.openerId` differs from the page target used for the isolated-world
dispatch. Chrome still returns the exact per-command URL marker, Profile
context, and random window name. RC.1 correctly refused to register that target
but could leave the unregistered blank marker visible until the caller cleaned
up the reported `unknown_outcome`.
RC.2 keeps fail-closed ownership verification without relying on opener IDs
alone. A fallback-created target must be a new page with the exact random URL
marker and selected Profile context, then prove ownership through either the
expected opener ID or exact readback of the per-command random `window.name`.
Profile membership by itself is never accepted.
All marker candidates are now tracked before validation, target discovery waits
through a bounded five-second Chrome metadata window, and failure cleanup waits
for asynchronous target destruction to become observable. A target that fails
both ownership proofs is closed and never registered or adopted.
The regression suite covers both paths: a Chrome-normalized opener with a valid
window-name proof succeeds, while a mismatched opener and mismatched window name
fails closed and leaves no marker target.
Automated release gates completed before tagging:
- TypeScript type checking passed.
- 266 Node unit, protocol, process, and adapter tests passed.
- 109 isolated Playwright core, compatibility, and network tests passed.
- The black-box stdio conformance suite passed all 13 checks.
- npm distribution verification passed for global, local project, and
product-bundled executable modes.
- The npm dry-run package contains both Profile RC notes and the Profile routing
plan.
The RC.1 real-Chrome run used one authorization and verified three live Profile
contexts, cross-Profile user-tab inventory, existing-tab control in two
Profiles, and managed creation in the direct-create Profile before exposing this
fallback defect. RC.2 is accepted against the same Chrome setup after installing
the published package.
+3
-1

@@ -618,3 +618,5 @@ # Browser Pilot Platform Specification

fallback-created targets enter janitor ownership before they become
addressable.
addressable. Fallback ownership requires the exact new URL marker plus either
the expected opener ID or exact readback of a per-command random window name;
Profile membership alone is never sufficient.
- **BR-33:** Switching to an existing target may update the owning Workspace's

@@ -621,0 +623,0 @@ selected ProfileContext, but never prevents inventory or control of targets

@@ -141,7 +141,9 @@ # Profile Context Routing Plan

page target in the selected context, create an isolated world, and call
`window.open("about:blank", "_blank", <fixed popup window features>)` with a
debugger user gesture.
4. Identify exactly one new target by the pre-dispatch target set, opener ID,
Profile context, page type, and blank URL. Ambiguous or mismatched targets are
closed and the operation fails.
`window.open(<unique blank marker>, <unique window name>, <fixed popup window
features>)` with a debugger user gesture.
4. Identify exactly one new page target by the pre-dispatch target set, unique
URL marker, and Profile context. Prove ownership through either the expected
opener ID or exact readback of the per-command random `window.name`; Chrome
may normalize the reported opener across regular Profile tabs. Ambiguous or
unverified targets are closed and the operation fails.
5. Explicitly adopt the verified target into the janitor before registering it

@@ -181,3 +183,3 @@ publicly, so Broker crash cleanup still closes it.

compatibility tests.
- [ ] P6: run real Chrome acceptance and publish `v0.3.0-rc.1`.
- [ ] P6: run real Chrome acceptance and publish `v0.3.0-rc.2`.

@@ -184,0 +186,0 @@ ## Acceptance

{
"name": "browser-pilot-cli",
"version": "0.3.0-rc.1",
"version": "0.3.0-rc.2",
"description": "CLI tool to control your browser via Chrome DevTools Protocol",

@@ -46,2 +46,3 @@ "repository": "https://github.com/relixiaobo/browser-pilot",

"docs/releases/v0.3.0-rc.1.md",
"docs/releases/v0.3.0-rc.2.md",
"README.md",

@@ -48,0 +49,0 @@ "LICENSE"

@@ -185,3 +185,3 @@ # browser-pilot

```bash
npm install --save-exact browser-pilot-cli@0.3.0-rc.1
npm install --save-exact browser-pilot-cli@0.3.0-rc.2
npx --no-install browser-pilot tabs

@@ -188,0 +188,0 @@ ```

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display