- Remove spike command from extension registration
- Add run-spike.sh wrapper script
- Add npm script 'spike' to run the PoC
- Spike can be run via: npm run spike or ./run-spike.sh
- Add spike.ts with tmux session management and WebSocket streaming
- Register /spike command in extension
- Add HTML test client with xterm.js
- Uses FIFO for pipe-pane streaming
- Single reader broadcasts to all WebSocket clients
Use client.terminate() instead of client.close() to avoid waiting for
unresponsive clients to acknowledge the WebSocket close handshake.
Add a 2-second safety timeout that closes the HTTP listener, destroys
lingering sockets, and resolves the promise so session_shutdown does not
block pi from exiting.
When the agent is streaming, the send button becomes a red stop button
that sends a { type: "stop" } WebSocket message. The server handles this
by calling ctx.abort() to cancel the current agent operation.
Use the 'qrcode' npm package instead of shelling out to the 'qrencode'
binary. Load via createRequire for ESM/CJS interop. Use margin: 2 to
avoid the utf8 renderer's invalid array length bug with odd margins.
/remote-control now opens a select menu with Turn on/off,
Configure URL, and Status instead of relying on subcommands.
Adds ability to stop the server. Shows current URL in the
Configure URL menu item and in the input dialog title.