Releases: dimdasci/bproxy
Release list
v0.9.3
Why upgrade
This release fixes a bug in the Chrome extension that made two documented bproxy links options fail:
--offset--href-contains
In v0.9.2, commands such as this could fail with SCRIPT_ERROR:
bproxy links -n <nick> -s <session> --limit 5 --offset 5The CLI and daemon accepted the options, but the extension rejected the forwarded request before it reached the page. v0.9.3 fixes that validation mismatch.
Fixed
bproxy links --offset <N>now works for pagination.bproxy links --href-contains <text>now works for href filtering.- The extension now validates
offsetas a non-negative integer. - Regression tests were added for the daemon→extension request boundary.
Upgrade
npm install -g @dimdasci/bproxy@0.9.3Then download bproxy-extension-v0.9.3.zip from this release, extract it, and load/reload the unpacked extension in chrome://extensions.
After reloading, the popup should show:
Extension 0.9.3 · Protocol 2
Quick check
bproxy links -n <nick> -s <session> --limit 5 --offset 5
bproxy links -n <nick> -s <session> --limit 5 --href-contains example.comBoth commands should return "ok": true.
Links
- npm: https://www.npmjs.com/package/@dimdasci/bproxy
- Full changelog: v0.9.2...v0.9.3
v0.9.2
Install
npm install -g @dimdasci/bproxyExtension: Download the attached zip, extract, then load unpacked in chrome://extensions (Developer mode).
npm: https://www.npmjs.com/package/@dimdasci/bproxy
Changes
Bug fix
- Popup now shows accurate connection status — Previously the popup showed "Not paired" after ~5 minutes even while the extension was actively connected. The popup now queries the background service worker for live WebSocket state, correctly displaying: Paired / Connecting / Disconnected / Not paired. (#31, #32)
Docs & packaging
- Fix privacy page navigation, footer spacing, and repo link (#29)
- Add Chrome Web Store listing assets (#30)
Full Changelog: v0.9.1...v0.9.2
v0.9.1
What's new
Extension popup
- Redesigned layout — product identity, subtitle, and inline icon for immediate context.
- Pairing status indicator (green/gray dot) with contextual button: "Pair extension" or "Re-pair with new code".
- Version and protocol metadata visible in the footer.
- Links to documentation, privacy policy, license, and GitHub.
- Manifest description updated for Chrome Web Store clarity.
Documentation site
- Hero illustration on the landing page.
- Site footer with version, license, and attribution.
- Privacy policy page added at
/privacy/.
Developer experience
- Extension test suite: 73 s → 2.3 s (fixed O(n²) selector probing in links cap test).
Full changelog: v0.9.0...v0.9.1
v0.9.0
bproxy 0.9.0 — Agent session ergonomics
Five features addressing friction points from real agentic sessions (~100 bproxy commands across 30–40 tasks). Closes #21.
New: tab activate
Foreground a tab explicitly before destructive actions. Eliminates the TAB_NOT_VISIBLE → screenshot → retry pattern.
bproxy tab activate -n agent -s <id>New: links --href-contains
Filter links at extraction time. No more piping through python to match href patterns.
bproxy links -s <id> --href-contains "/company/" --limit 5New: links --offset pagination
Paginate large link sets with offset. Response includes total count and capped flag so agents know how many pages remain.
bproxy links -s <id> --offset 50 --limit 50
# → { "links": [...], "total": 230, "capped": false }New: text --after and --limit-chars
Extract text starting from a known marker. CLI-local post-processing — no protocol change.
bproxy text -s <id> --after "About" --limit-chars 1000
# → { "text": "...", "markerFound": true, "markerOffset": 142 }Fix: response truncation
Large JSON responses (>64KB) no longer truncate when piped. Stdout writes use synchronous fd-level I/O to guarantee complete output regardless of consumer pipe state.
Breaking: protocol version 1 → 2
ActionResult["links"] gained required total: number field. PROTOCOL_VERSION is now a centralized constant in shared/src/version.ts. All protocol messages reference it via type — no more scattered protocol_version: 1 literals.
Internal
Context-grep Pi extension removed after A/B testing showed it reduces exploration breadth during planning, producing narrower implementations at the same cost. See docs/internal/journal/2026-06-22-context-grep-extension-ab-test.md for analysis.
v0.8.0 — Agent nickname session scoping
What's new
Agent nickname scoping — every CLI command now requires --nick / -n, a 6-character identifier that isolates sessions between concurrent agents. Sessions created by one nick are invisible and inaccessible to others.
Session isolation
- Sessions are stamped with their creator's nick at creation time
session list,debug.status,debug.last, anddebug.logreturn only data belonging to the requesting nick- Accessing another agent's session returns
SESSION_SCOPE_MISMATCH(retry: never) SESSION_NOT_FOUNDis now terminal (retry: never) — closed sessions don't come back
Safety guards
Four daemon-enforced mechanisms prevent runaway agents from hammering the browser:
- Minimum interval (900ms default) — requests arriving too fast are rejected with
RATE_LIMITED - Per-nick rate cap (60/min default) — sliding window, rejected with
RATE_LIMITED - Metronome detection — three consecutive equal-interval requests trigger
METRONOME_DETECTED(retry: never) - Error-path delay — jittered 500ms–2s pause before error responses, making loops self-throttling
Configuration
All pacing and safety parameters are now configurable via BPROXY_HOME/config.json. The daemon validates config at startup and fails closed if pacing ranges undercut the safety floor.
Privacy
Raw nicks never appear in logs or API responses. The daemon generates an ownerHash (8 hex chars from sha256 with a per-instance salt) for log correlation. Bootstrap responses (tab.open, session.create) include ownerHash so the agent knows its own identifier.
Extension
Minimal change — stores session field in trace entries for scoped debug.log filtering. Nick is stripped before WS dispatch and rejected if leaked.
Install
npm install -g @dimdasci/bproxyExtension: Download the attached zip, extract, then load unpacked in chrome://extensions (Developer mode).
Full design: Phase 8 spec
Decision: ADR-030
Changelog: v0.7.5...v0.8.0
v0.7.5
Documentation and packaging release
No functional changes to the CLI, daemon, or extension — the only source diff between v0.7.4 and v0.7.5 is the version string. Pull this release to pick up the new public documentation site and corrected npm package metadata.
What's new
Public documentation site (#19)
Architecture views, design principles, install/usage/upgrade guides, and per-component solution specs now live at https://dimdasci.github.io/bproxy/. Links in the README and in the published npm package point into specific sections of the site instead of at raw markdown files in the repository. The hosting decision (GitHub Pages with a project-site subpath URL) is captured in ADR-029.
npm package metadata
The package page on https://www.npmjs.com/package/@dimdasci/bproxy now surfaces:
- Homepage — the docs site
- Issues — GitHub issue tracker
- README — deep links into the Install and Usage guides instead of raw GitHub markdown
Repository housekeeping (#20)
- Root README rewritten as a brief pointer to the docs site, with a new hand-drawn hero illustration of the system: agents on the left, CLI terminal in the middle, daemon as a shield, browser tabs on the right, all framed inside a monitor.
- "Not released" status banner removed now that the package is on npm.
- Orphan diagram asset removed.
Install
npm install -g @dimdasci/bproxy
bproxy --version # bproxy v0.7.5 (protocol v1)Extension: download bproxy-extension-v0.7.5.zip from this release, extract it, then load unpacked in chrome://extensions (Developer mode). See the Upgrade guide for the recommended sequence when bumping from a previous version.
Pull requests in this release
- feat(docs): publish public docs to GitHub Pages — #19
- chore(release): 0.7.5 — README refresh and docs-site links — #20
Full changelog: v0.7.4...v0.7.5
v0.7.4
v0.7.4 — Agent skill rewrite + skills.sh compatibility
Skill overhauled
The bproxy agent skill is now compact, information-dense, and compatible with the skills.sh ecosystem:
- Install:
npx skills add dimdasci/bproxy - Size: 729 → 307 lines (−58%), same coverage
- New:
references/consent.md— cookie banner handling with CMP selector catalog (OneTrust, CookieBot, Didomi, etc.) and a decision tree for custom banners - New: Gotchas section — tab visibility, stale handles, scroll inference, cross-origin iframes
Structure change
skill/ → skills/bproxy/ — follows the standard skills/<name>/SKILL.md layout so npx skills add discovers it automatically.
Docs
Install guide updated: npx skills add as primary install method, pi as secondary.
Install / upgrade
npm install -g @dimdasci/bproxy@0.7.4Skill: npx skills add dimdasci/bproxy
Extension: Download the attached zip, load unpacked in chrome://extensions.
Full Changelog: v0.7.3...v0.7.4
v0.7.3
v0.7.3 — Fix: global install broken for bproxy service start
Bug fix
bproxy service start crashed with ERR_MODULE_NOT_FOUND after global install via npm. The release package was missing runtime dependency declarations for fastify, @fastify/websocket, pino, and zod — the service binary imported them externally but npm install -g had nothing to install.
CI improvement
Added a release smoke test (scripts/smoke-release.sh) that installs the assembled package in an isolated npm prefix and verifies both bproxy and bproxy-service binaries resolve all imports. This gate runs on every PR and before npm publish, preventing this class of bug from shipping again.
Install / upgrade
npm install -g @dimdasci/bproxy@0.7.3Extension: Download the attached zip, extract, then load unpacked in chrome://extensions (Developer mode).
Full Changelog: v0.7.2...v0.7.3
v0.7.2
Install
npm install -g @dimdasci/bproxyExtension: Download the attached zip, extract, then load unpacked in chrome://extensions (Developer mode).
npm: https://www.npmjs.com/package/@dimdasci/bproxy
Changes
Internal quality and infrastructure patch — no user-facing changes.
- Single-source version management (prevents version drift across packages)
- Tag↔version guard in release workflow
- GitHub Actions bumped to Node 24 runtime
- SonarQube findings resolved (all hotspots and issues at zero)
Full Changelog: v0.7.1...v0.7.2
v0.7.1
Install
npm install -g @dimdasci/bproxyExtension: Download the attached zip, extract, then load unpacked in chrome://extensions (Developer mode).
npm: https://www.npmjs.com/package/@dimdasci/bproxy
What's Changed
- Phase 0.7: Architecture Viewer by @dimdasci in #1
- feat: Phase 1 — Shared types & workspace scaffold by @dimdasci in #2
- Phase 2: Daemon — close out routing, auth, pacing, lifecycle by @dimdasci in #3
- Complete Phase 3 extension by @dimdasci in #4
- Phase 4: CLI + docs polish by @dimdasci in #5
- Reconcile Phase 4 documentation baseline by @dimdasci in #6
- feat: Phase 5 — Integration & Hardening by @dimdasci in #7
- chore: resolve SonarCloud tech debt (138 issues) by @dimdasci in #8
- feat: add click/hover actuator primitives by @dimdasci in #9
- feat(phase6): daemon-owned element target aliases by @dimdasci in #10
- docs: fix 5 cross-document inconsistencies and update roadmap by @dimdasci in #11
- fix: resolve SonarCloud security & code quality findings by @dimdasci in #12
- chore: project housekeeping by @dimdasci in #13
- feat: Phase 7 — Distribution & Installation by @dimdasci in #14
New Contributors
Full Changelog: https://github.com/dimdasci/bproxy/commits/v0.7.1