Commit Graph

8 Commits

Author SHA1 Message Date
f0d8c84a64 fix: Auto-reconnect on refresh by deferring torch state to torch-update
The registered handler was setting hasTorch early, causing torch-update
to see no transition and skip connectToMCP().
2026-02-14 23:36:44 -06:00
2a80b7751b feat: Add torch client identity, early connection and auto-request
- Named clients persisted in localStorage, editable from dropdown
- Auto-request: clients can auto-receive torch when no holder exists
- Early torch init in App.vue (fires before WebMCP, awaited later)
- Deferred torch connection in toolRegistry for race condition safety
- TorchButton rewritten as dropdown with name editor, toggle, client list
- Server broadcasts client names, supports update-name message
- MCP tool handlers display client names
2026-02-14 23:30:56 -06:00
1a51b34228 feat: Add torch MCP tools for multi-browser control
- Add torchHandlers.ts with 5 tools:
  - list_torch_clients: list connected browsers with metadata
  - get_torch_status: show current torch holder
  - transfer_torch: transfer control to another browser
  - request_torch: request MCP control
  - release_torch: release MCP control
- Add 'transfer' message type to server torch-handler
- Add torch category to all pages
- Export helper functions from torch.ts
2026-02-14 17:52:16 -06:00
3817645919 fix: Only register MCP tools when connected via torch
- Tools only register when connected to MCP (has torch)
- Store current page for tool activation when torch is obtained
- Add onTorchConnected to activate page tools after MCP connection
- Add onTorchDisconnected to clear tools when losing torch
- Page changes only update tools if connected, otherwise store for later
2026-02-14 17:32:58 -06:00
0f73bd60bf refactor: Unify sync server and combine torch with connection UI
- Consolidate git and torch WebSocket servers on port 4105
- Create separate handlers for git and torch in handlers/ directory
- Combine TorchButton with connection status into single pill button
- Remove StatusBar (now redundant with TorchButton)
- Remove auto-assign torch on register/disconnect
- Remove auto-connect to MCP on page load
- Connection only happens when user explicitly requests torch
2026-02-14 17:13:32 -06:00
c98f3e2b99 refactor: Use dedicated WebSocket server for torch sync
- Add torch WebSocket server on port 4106
- Remove HTTP polling, use WebSocket for instant sync
- Torch state changes broadcast immediately to all clients
- Auto-reconnect on disconnect
- Add port 4106 to kill-ports script
2026-02-14 16:40:40 -06:00
fe99c9ff61 feat: Implement torch system via HTTP for multi-browser control
- Add /api/torch endpoints for torch state management
- Torch system uses HTTP polling instead of WebSocket
- Only browser with torch connects to MCP
- Other browsers disconnect and poll for torch state
- Auto-assign torch to first registered client
- Auto-reassign torch when holder disconnects

This approach requires no changes to WebMCP library.
2026-02-14 16:32:52 -06:00
647fb03516 feat: Add torch system for multi-browser MCP control
- Add TorchButton component to header (replaces dropdowns)
- Add torch store for managing torch state
- Add torch service for requesting/releasing torch
- Add torch event handlers in WebMCP service
- Remove ComponentsDropdown and ToolsDropdown from header

The torch system allows controlling which browser receives
MCP tool calls when multiple browsers are connected.
Requires WebMCP library update to fully function.
2026-02-14 16:25:43 -06:00