6 months ago
d8bd4b3The web shell only seeded one workspace from localStorage, so browser sessions could not see the Electron workspace registry or start per-workspace servers. This adds a server-backed desktop web service for persisted state, transcripts, workspace roots, and workspace lifecycle, then teaches the browser adapter to use it while keeping the single-workspace fallback path intact. Constraint: Browser mode must still work against a plain single --dir server when the desktop web service is unavailable Rejected: Rebuild browser mode around client-only localStorage state | would still diverge from Electron workspace and transcript behavior Confidence: medium Scope-risk: moderate Reversibility: clean Directive: Keep browser desktop state and Electron desktop state compatible through the shared state.json and transcripts contract Tested: bun run typecheck; bun test apps/desktop/test/web-adapter.test.ts test/webDesktopRoutes.test.ts Not-tested: bun test still fails in the pre-existing desktop token-compliance lane for raw colors and inline styles outside this diff
Parente2b7051