v0.9.91 MCP Clients as Providers with Session Replay and Google Sheets - #108
Draft
LakshmanTurlapati wants to merge 600 commits into
Draft
v0.9.91 MCP Clients as Providers with Session Replay and Google Sheets#108LakshmanTurlapati wants to merge 600 commits into
LakshmanTurlapati wants to merge 600 commits into
Conversation
added 30 commits
July 18, 2026 09:08
added 12 commits
July 22, 2026 13:05
- Precomputes 213 animated + 4 static frames at 16/32 from assets/icon128.png - Mirrors ViewportGlow periods, palettes, phase map and retime behaviour - Watching is a static frame only; no loop is ever started for it - Persists intent to chrome.storage.session for SW-eviction recovery
- Load utils/action-icon.js beside the overlay state builder - Tee sendSessionStatus into applyOverlayState (single choke point) - Arm/disarm the static watching frame from the existing trigger counts - Bootstrap on worker wake with a live-session probe; 30s repair alarm - Refresh the paired background.js count pins to 324/320
…to the icon - Delete _updateBadge/_clearBadge; ws open/close/disconnect drive setConnected - Drop the contentScriptReady badge clear and its connection-only guard - Drop the contentScriptError red badge pair - Drop the options pending-count badge clear and its dead bookkeeping
Removing every badge-clear path left this red '!' with no way to be cleared. The console.error diagnostics at all three call sites remain.
Frame rendering moved off the worker-startup path: only the four resting frames are built at wake, and each animated state renders its own frames the first time it is shown. A wake that never animates now does 8 renders instead of 434. Every failure path was silent, so a broken icon was indistinguishable from a wiring bug. The environment check, the base-frame render, the per-state render and the first setIcon rejection now each report once.
The glyph was drawn at 0.72 of the canvas to reserve an outer margin for the orbit bead, so every emitted frame was a 0.72x copy of the static manifest icon, black tile included. Draw it full bleed instead and let the bead ride over the artwork's empty black border, which is where the design put it anyway. The ring spans 0.36..0.46 of the square and the wordmark reaches 0.28, so they never meet. Each output size now comes from its own asset. icon16.png is not a downscale of icon128.png -- its mark was redrawn about a fifth chunkier to stay legible -- so scaling the 128 down to 16 was under-rendering it. 16 is now a 1:1 blit and 32 an exact 4:1 reduction, where before both landed on fractional pixel boundaries.
Ship capture_screenshot as a serialized UAT tool with managed MCP files and in-memory autopilot attachments. Harden voice input, delegation streaming, lattice replay journals, and session export, and keep tool counts and tests aligned.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This draft delivers the v0.9.91 MCP Clients as Providers milestone. FSB can discover installed Claude Code, OpenCode, and Codex clients, show them as keyless providers, and delegate side-panel tasks through the existing MCP bridge.
It also includes the refinements previously tracked in #105: MCP session replay, explicit terminal task outcomes, signed-in Google Sheets capabilities, stronger terminal-summary and spreadsheet redaction, and aligned Extension 0.9.91 and fsb-mcp-server 0.11.0 release metadata.
The latest replay follow-up makes the feature behave like an actual replay: one logical recording spans all tabs used by a task, and replay opens and maps fresh target tabs automatically after one exact-manifest approval. The user is no longer asked to open each recorded page manually or approve high-impact steps one by one.
Major changes
Persist MCP client identity from installer intent, local inventory, and live initialize handshakes. Present one canonical Providers view without changing existing BYOK provider behavior.
Add an authenticated reverse request channel, an adapter contract, supervised process lifecycle management, and provider implementations for Claude Code, OpenCode, and Codex.
Add durable delegation consent, streamed tool activity, task cancellation, tab ownership recovery, daemon diagnostics, and native-host wake support across Chrome service-worker restarts.
Add adapter compatibility data and drift checks. Keep task mode only and preserve existing MCP wire contracts.
Record MCP sessions in local history with replayable steps and confirmed completion, partial, or failure outcomes. Sanitize signed URLs and recognized standalone credential shapes before terminal summaries enter history or Task Memory.
Add bounded signed-in Google Sheets read and write capabilities with session isolation, multiple-tab safety, redaction, and fail-closed recovery.
Remove completed Phase 26 through Phase 56 workspaces while retaining milestone archives and repository history. Point catalog completeness and write-activation evidence at canonical archived or stable repository references, and preserve required test ordering.
Refresh generated crawler metadata for the v0.9.91 release.
Session recording and replay behavior
primary,tab-2, and so on), with task-run and tab-count metadata retained in history.is_finalonly as visual-overlay state. Recording closes oncomplete_task,partial_task, orfail_task; the 60-second idle timeout remains a fail-safe when no terminal outcome arrives.open_tab,switch_tab, andclose_tabconsume that mapping without duplicate tabs; service-worker recovery validates and reclaims every surviving track.get_session_replayfor a verified, structurally redacted, receipt-free preview andreplay_sessionfor the consent-gated replay request.get_session_detailnow exposes only a shallow replay summary instead of deeply nested raw receipt data.vswhereinstead of hardcoding a Visual Studio 2022 path, keeping native-host CI compatible with current Windows runner images.npm ci, and stop the Windows registry helper from appending a NUL byte after its JSON response.Security and compatibility
Existing MCP message values and tool schemas remain additive and byte-stable.
Replay approval is bound to the exact signed manifest hash. Only trusted extension UI senders can approve, cancel, or start it, and replay always uses fresh owned tabs rather than an arbitrary active tab.
Agent processes use validated argument arrays, scrubbed environments, bounded process-tree termination, explicit consent, loopback host checks, extension-origin checks, and rotating shared secrets.
Unsafe permission-bypass flags remain forbidden by CI.
Extension 0.9.91 requires Chrome 116 or newer. MCP server 0.11.0 must be upgraded with the extension for terminal task-outcome and replay-tool support.
Validation
npm testnpm run buildnpm --prefix mcp run buildextract-i18nchecksgit diff --checkReview notes
This PR intentionally includes the changes from #105. PR 105 was already closed before this draft was created; this draft does not modify it.
Existing fragmented history rows are not rewritten retroactively. The logical cross-tab grouping applies to newly recorded MCP tasks.
This remains a draft because final live milestone UAT, including Codex adapter and real-browser replay scenarios, is still pending.