Skip to content

LakshmanTurlapati/FSB

vmcp-v0.8.0 scope: mcp Breaking

This release includes 3 breaking changes for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Summary

AI summary

Broad release touches Post-action change_report, Multi-Agent Tab Concurrency, back MCP tool, and run_task` return-on-completion.

Full changelog

Milestone: Multi-Agent Tab Concurrency -- pairs with FSB extension v0.9.60.

Note: the npm package was published manually on 2026-05-07. The mcp-v0.8.0 tag and this release are catching up so the GitHub release matches the npm registry.

Install / Update

npx -y [email protected]

Or install globally:

npm i -g [email protected]

Install into MCP clients:

npx fsb-mcp-server install --all

What's new

Multi-Agent Tab Concurrency

  • New per-session/task agent_id minted by FSB via crypto.randomUUID(). MCP callers cannot supply IDs; the server captures via agent:register on first tool dispatch.
  • Tab-ownership enforcement on every MCP tool dispatch with typed errors: TAB_NOT_OWNED, TAB_INCOGNITO_NOT_SUPPORTED, TAB_OUT_OF_SCOPE, AGENT_CAP_REACHED, NO_OWNED_TAB, AMBIGUOUS_TAB.
  • Per-bindTab ownership_token (fresh UUID per binding) prevents tab-ID-reuse exploitation.
  • Forced-new-tab pooling, lock release on disconnect (10s grace), no idle timeout.
  • SW-eviction recovery via chrome.storage.session write-through + hydrate-time reconciliation.
  • End-to-end coverage in tests/multi-agent-regression.test.js (6 cases, 6/6 green).

back MCP tool (BACK-01..05)

  • Ownership-gated single-step browser-history back on the agent's owned tab.
  • Returns { status, resultingUrl, historyDepth } where status is one of ok | no_history | cross_origin | bf_cache | fragment_only.
  • pageshow-based 2s settle verification; cross-origin BF-cache resilience reuses the v0.9.11 path.
  • Background-tab compatible.

run_task return-on-completion (Phase 239)

  • Returns when automation actually completes (via fsbAutomationLifecycleBus), not at an arbitrary timer ceiling.
  • 600s safety net (was 300s) at both mcp/src/tools/autopilot.ts and extension/ws/mcp-bridge-client.js.
  • 30s heartbeat ticks via notifications/progress, carrying alive, step, elapsed_ms, current_url, ai_cycles, last_action under params._meta. MCP host clients (Claude Code, Cursor, Codex, OpenClaw) no longer hit per-tool timeouts on long automations.
  • Task lifecycle persisted in chrome.storage.session keyed by task_id. On SW eviction, server emits partial_outcome with disposition: 'sw_evicted' if the bridge cannot recover.

Tool description updates (MCP-07)

  • Every manual tool description now documents that agent_id is FSB-issued, tab_id is agent-scoped, the cap is configurable, ownership is enforced, and the typed error codes the tool can return are enumerated.
  • run_task, start_visual_session, end_visual_session, back, stop_task, get_task_status carry the full multi-agent contract block.

Post-action change_report (Phase 245)

  • Every action tool returns a compact change_report describing what the action mutated, so the agent doesn't need to follow up with read_page / get_dom_snapshot.
  • Read-only/info/wait tools EXCLUDED from the change_report field.
  • 2400-byte cap (~600 tokens) with top-N truncation.

Agent-scoped tab resolution + open_tab background-default (Phase 246)

  • read-only.ts, vault.ts, manual.ts, visual-session.ts, autopilot.ts, and agents.ts all thread agentId and optional tab_id through the bridge payload.
  • Optional tab_id added to all 6 read-only tool MCP schemas, start_visual_session, and 35 action-tool input schemas. Auto-resolves when omitted; enforces ownership when provided.
  • Schema bridge transforms (schema-bridge.ts) explicitly forward tab_id for press_key, drag_drop, click_at, drag, fill_sheet.
  • open_tab defaults to background. Foreground requires explicit active: true.
  • mcp/ai/tool-definitions.cjs is byte-identical to extension/ai/tool-definitions.js (~74,845 bytes), validated by a permanent canary test (tests/tool-definitions-parity.test.js).

Dependencies

  • @modelcontextprotocol/sdk ^1.29.0
  • ws ^8.19.0
  • zod ^3.24.0

Compatibility

  • Pairs with FSB Chrome extension v0.9.60 (released separately).
  • Tested against MCP host clients: Claude Code, Cursor, Codex, Windsurf, OpenClaw.

Full per-feature changelog: mcp/CHANGELOG.md. Milestone audit: .planning/milestones/v0.9.60-MILESTONE-AUDIT.md.

Breaking Changes

  • `back` tool now requires tab ownership; returns typed errors `TAB_NOT_OWNED`, `TAB_INCOGNITO_NOT_SUPPORTED`, `TAB_OUT_OF_SCOPE`.\n
  • `run_task` waits for actual automation completion (600 s safety net) instead of a fixed timer, emitting heartbeat metadata.
  • All action‑tool schemas now accept an optional `tab_id`; omission auto‑resolves to the agent’s owned tab but enforces ownership when supplied.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track LakshmanTurlapati/FSB

Get notified when new releases ship.

Sign up free

About LakshmanTurlapati/FSB

All releases →

Beta — feedback welcome: [email protected]