@btraut/browser-bridge 0.12.1 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -1
- package/README.md +9 -9
- package/dist/api.js +953 -409
- package/dist/api.js.map +4 -4
- package/dist/index.js +600 -400
- package/dist/index.js.map +4 -4
- package/extension/dist/background.js +272 -26
- package/extension/dist/background.js.map +3 -3
- package/extension/dist/content.js +42 -4
- package/extension/dist/content.js.map +3 -3
- package/extension/dist/options-ui.js +80 -0
- package/extension/dist/options-ui.js.map +2 -2
- package/extension/manifest.json +14 -4
- package/package.json +1 -1
- package/skills/browser-bridge/SKILL.md +3 -4
- package/skills/browser-bridge/skill.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,7 +6,33 @@ The format is based on "Keep a Changelog", and this project adheres to Semantic
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## [0.13.0] - 2026-02-18
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- `drive.navigate` now supports omitted `session_id` through both CLI and MCP; Core auto-creates the session and returns canonical `result.session_id` in the success payload.
|
|
14
|
+
- CLI and MCP now share parity guardrails for `drive.navigate` contracts via shared explicit/missing-session fixture variants and contract checks.
|
|
15
|
+
- Diagnostics caller runtime context is now normalized across CLI and MCP, with both clients attaching equivalent endpoint/process metadata for `diagnostics.doctor`.
|
|
16
|
+
- Deprecation lifecycle policy is now explicit and machine-checked: shared tool metadata includes `deprecated_since`/`removal_target`/replacement fields and `packages/shared/src/tooling.test.ts` enforces notice window + migration metadata requirements.
|
|
17
|
+
- Navigation naming is now canonicalized end-to-end on `drive.go_back`/`drive.go_forward`: Core routes and extension actions removed legacy alias actions, while CLI/MCP keep temporary deprecated alias shims that forward to canonical routes and emit explicit warnings.
|
|
18
|
+
- Public contract version signaling is now explicit across HTTP and websocket surfaces: Core enforces/echoes `x-browser-bridge-contract-version`, CLI/MCP send the version header by default, extension `drive.hello` now includes websocket `protocol_version`, and core rejects handshake mismatches deterministically.
|
|
19
|
+
- Public error taxonomy is now canonicalized: legacy/internal codes are normalized to a smaller non-overlapping public set, with typed migration details (`legacy_code`, `reason`, and structured context fields) attached to mapped responses.
|
|
20
|
+
- Retry semantics now use centralized structured hints: shared `retry` metadata (`retryable`, `reason`, `retry_after_ms`, `max_attempts`) and shared retry policy logic replace boolean-only retry decisions in core drive flows, while preserving compatibility via `retryable`.
|
|
21
|
+
- API route style is now explicitly RPC-over-HTTP POST: canonical health diagnostics route is `/health/check` (with legacy `/health_check` alias), and readiness supports canonical `POST /health` while retaining `GET /health` compatibility.
|
|
22
|
+
- Dialog operations are now canonicalized to `drive.handle_dialog`; `dialog.accept`/`dialog.dismiss` are deprecated aliases that map to canonical payloads and emit explicit warnings.
|
|
23
|
+
- Extension-core handshake now negotiates capabilities explicitly: `drive.hello` includes capability map metadata, and core gates non-negotiated or unsupported actions with deterministic errors.
|
|
24
|
+
- Extension defaults are now tighter and explicit: host/content-script scope is limited to `http://*/*` + `https://*/*`, unused `tabGroups` permission is removed, and `debugger.*` inspect actions are gated behind an options toggle (`debuggerCapabilityEnabled`, default off) with deterministic `ATTACH_DENIED` guidance.
|
|
25
|
+
- Refactor guardrails now explicitly separate semantic contracts from internal wiring details: inventory/tool-coverage docs define must-preserve behavior vs allowed internal evolution, and CLI/MCP contract tests now enforce semantic/schema parity without freezing exact internal route strings.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- MCP adapter integration coverage now disambiguates fixtures that share core routes (for example, dialog aliases), preventing false failures from path-only fixture collisions.
|
|
30
|
+
- Filled test/doc gaps for deprecated aliases: added missing `dialog.dismiss` core route coverage, added MCP coverage for `drive.forward` warnings and `dialog.dismiss` input transform, and clarified deprecation/error-code docs.
|
|
31
|
+
- Extension now re-applies the `Browser Bridge` tab-group title for reused dedicated agent tabs, so stale groups no longer stay untitled.
|
|
32
|
+
- Extension now reapplies the toolbar robot icon as the dedicated agent tab favicon after agent-driven navigations.
|
|
33
|
+
- Core drive preflight now fails fast with an explicit `EXTENSION_DISCONNECTED` error when the extension is offline, instead of attempting a drive call first.
|
|
34
|
+
- Core `drive.navigate` now preflights loopback targets (`localhost`/`127.0.0.1`/`::1`) and returns `NAVIGATION_FAILED` quickly when the local app is unreachable.
|
|
35
|
+
- Runtime path resolution now honors `BROWSER_BRIDGE_CWD` and safer cwd fallbacks, preventing broken launch contexts from writing logs/metadata under `/.context`.
|
|
10
36
|
|
|
11
37
|
## [0.12.1] - 2026-02-17
|
|
12
38
|
|
package/README.md
CHANGED
|
@@ -57,9 +57,8 @@ If Chrome shows a Browser Bridge permissions prompt, approve it, then tell the a
|
|
|
57
57
|
<summary>CLI sanity check (debugging)</summary>
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
browser-bridge
|
|
61
|
-
#
|
|
62
|
-
browser-bridge drive navigate --session-id <id> --url https://example.com
|
|
60
|
+
browser-bridge drive navigate --url https://example.com --json
|
|
61
|
+
# Copy result.session_id from the response for subsequent session-scoped calls.
|
|
63
62
|
browser-bridge inspect dom-snapshot --session-id <id> --max-nodes 2000
|
|
64
63
|
browser-bridge session close --session-id <id>
|
|
65
64
|
```
|
|
@@ -107,7 +106,7 @@ See `docs/cdp-input-model.md` for details and smoke verification.
|
|
|
107
106
|
|
|
108
107
|
## 🔒 Site Permissions (Drive Actions)
|
|
109
108
|
|
|
110
|
-
Browser Bridge is intentionally safe: **drive actions** (`drive.navigate`, click, type, etc.) require **per-site approval**. `inspect.*` is
|
|
109
|
+
Browser Bridge is intentionally safe: **drive actions** (`drive.navigate`, click, type, etc.) require **per-site approval**. `inspect.*` is additionally guarded behind an explicit debugger-capability toggle in extension options.
|
|
111
110
|
|
|
112
111
|
<details>
|
|
113
112
|
<summary>How approvals work (click to expand)</summary>
|
|
@@ -125,6 +124,7 @@ Manage approvals (and bypass mode):
|
|
|
125
124
|
- Switch **Permission mode** to **Bypass (dangerous)** to skip the allowlist and prompts entirely.
|
|
126
125
|
- In bypass mode, the agent can take actions on any website without asking.
|
|
127
126
|
- Restricted URLs (for example `chrome://` and `file://`) are still blocked.
|
|
127
|
+
- `inspect.*` requires enabling **Debugger-based inspect** in extension options. If disabled, inspect calls fail with `ATTACH_DENIED` and a clear next step.
|
|
128
128
|
|
|
129
129
|
</details>
|
|
130
130
|
|
|
@@ -147,8 +147,8 @@ The CLI mirrors the MCP tool surface.
|
|
|
147
147
|
- `drive.navigate`
|
|
148
148
|
- `drive.go_back`
|
|
149
149
|
- `drive.go_forward`
|
|
150
|
-
- `drive.back`
|
|
151
|
-
- `drive.forward`
|
|
150
|
+
- `drive.back` (deprecated alias for `drive.go_back`)
|
|
151
|
+
- `drive.forward` (deprecated alias for `drive.go_forward`)
|
|
152
152
|
- `drive.click`
|
|
153
153
|
- `drive.hover`
|
|
154
154
|
- `drive.select`
|
|
@@ -166,8 +166,8 @@ The CLI mirrors the MCP tool surface.
|
|
|
166
166
|
|
|
167
167
|
**dialog**
|
|
168
168
|
|
|
169
|
-
- `dialog.accept`
|
|
170
|
-
- `dialog.dismiss`
|
|
169
|
+
- `dialog.accept` (deprecated alias for `drive.handle_dialog` with `action=accept`)
|
|
170
|
+
- `dialog.dismiss` (deprecated alias for `drive.handle_dialog` with `action=dismiss`)
|
|
171
171
|
|
|
172
172
|
**inspect**
|
|
173
173
|
|
|
@@ -315,7 +315,7 @@ tail -n 80 .context/logs/browser-bridge/mcp-adapter.jsonl
|
|
|
315
315
|
|
|
316
316
|
## 🩺 Diagnostics
|
|
317
317
|
|
|
318
|
-
- CLI: `browser-bridge diagnostics doctor --session-id <id
|
|
318
|
+
- CLI: `browser-bridge diagnostics doctor [--session-id <id>]`
|
|
319
319
|
- Reports extension and debugger status alongside session state.
|
|
320
320
|
- Includes runtime context for caller, Core, and extension endpoints so mismatch causes are visible in one run.
|
|
321
321
|
- Popup shows a simple `Connected` indicator (`green` when connected, `red` otherwise).
|