43648f7d60
Add initial_state SSE event for reconnect sync (Phase 3)
...
When a dashboard connects via SSE, it now receives the current terminal
state for all active sessions. This allows dashboards to immediately
display the full terminal content without waiting for new output.
2026-01-31 09:51:13 -05:00
88afb7249d
Replace ansiToHtml with terminal serialization (Phase 2)
...
The output handler now:
- Writes raw data to terminal emulator
- Stores raw data in DB (unchanged)
- Serializes terminal state as HTML
- Broadcasts serialized HTML via SSE
This replaces the ansiToHtml() + splitAnsiCarryover() approach with
proper terminal emulation. The terminal emulator handles all ANSI
sequences internally, including incomplete sequences across chunks.
2026-01-31 09:49:53 -05:00
6c7de2332b
Add terminal.test.ts unit tests
2026-01-31 09:47:54 -05:00
0366e459f5
Integrate terminal emulator in server.ts (Phase 1)
2026-01-31 09:45:38 -05:00
c9908c87c3
Add terminal.ts module for headless terminal emulation
...
Creates new module providing terminal session management using @xterm/headless:
- createTerminal(): spawn headless terminal emulator instances
- serializeAsHTML(): export terminal state as HTML
- disposeTerminal(): clean up resources
This replaces stateless ANSI processing with proper VT emulation that tracks
cursor position, screen buffer, and terminal attributes across output chunks.
2026-01-31 09:43:46 -05:00
5016cd9960
Add terminal emulation design doc
2026-01-31 09:40:31 -05:00
a14decf2bc
Fix HTML truncation to avoid cutting inside tags
2026-01-31 09:12:20 -05:00
3e5afbd5a8
Clean up ansiCarryovers on WebSocket close
2026-01-31 09:12:05 -05:00
42ba893ea5
Add tests for splitAnsiCarryover function
2026-01-31 09:11:49 -05:00
0a3bfa6092
Add debug logging for ANSI carryover events
2026-01-31 09:10:19 -05:00
c09654c6c7
Add JSDoc to splitAnsiCarryover function
2026-01-31 09:10:07 -05:00
a8eea4e694
Add SSE cleanup
2026-01-31 09:06:16 -05:00
721bff81d0
Cleanup dom
2026-01-31 09:06:08 -05:00
f2c3f6f067
Avoid stray control characters
2026-01-31 09:05:33 -05:00
a8a73aad4e
Add dynamic favicon state system
...
Embed SVG path data in TypeScript to enable runtime color switching based on app state (idle/processing/error) without maintaining multiple static SVG files.
2026-01-31 08:42:58 -05:00
0df63961e0
Update todo
2026-01-31 08:42:58 -05:00
aeebe863e9
Speed up docker builds
2026-01-31 08:33:40 -05:00
33cf28d643
Add reload to header click
2026-01-30 13:55:34 -05:00
5597502a8c
Keep terminal scrolled to bottom
2026-01-30 13:55:26 -05:00
9e8a275831
Display --yolo instead of --dangerously-skip-permissions
2026-01-30 13:15:45 -05:00
b67247e340
Replace pin button with floating scroll-to-bottom button
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 10:47:47 -05:00
386c1e74cc
Update TODO
2026-01-30 10:14:52 -05:00
423fa8375d
End all sessions on server startup
2026-01-30 09:12:40 -05:00
28920eca1e
Add todo
2026-01-30 08:33:29 -05:00
2dfe420555
Rename project from claude-remote to clarc
...
Updated all references across documentation, config files, and source code.
2026-01-30 08:32:34 -05:00
97cc975d55
Fix session list disappearing on page refresh
...
Frontend now fetches existing sessions from /api/sessions when SSE connects.
Previously only listened for session_start events, causing sessions to
disappear after page reload.
2026-01-30 08:26:14 -05:00
f9c521286b
Add --yolo alias for --dangerously-skip-permissions
2026-01-30 08:20:22 -05:00
5948dcaed1
Add viewport-based PTY resize from dashboard
2026-01-30 08:19:09 -05:00
19917ef614
Add an idea
2026-01-30 08:16:39 -05:00
21b8caeb67
Fix carriage return handling to emulate line overwrite
2026-01-30 08:06:36 -05:00
350c352989
Safely kill processes
2026-01-30 07:51:09 -05:00
364e3d909e
Restore terminal to cooked before suspending
2026-01-30 07:47:22 -05:00
766ae27fee
Resume the child process first
2026-01-30 07:46:41 -05:00
d5194ede9e
Send a redraw
2026-01-30 07:44:53 -05:00
fd9ec777a3
Try out suspension
2026-01-30 07:40:52 -05:00
9586925234
Copy public dir in build
2026-01-30 07:19:28 -05:00
f42052d6d8
Add visual separation before Remote help section
2026-01-30 05:19:01 -05:00
b6d670deac
Add backoff reconnecting
2026-01-28 18:41:26 -05:00
4ab2078afd
Handle when claude isnt installed
2026-01-28 17:51:55 -05:00
8c5c9f99f0
Append our help to the end of claude help
2026-01-28 17:49:43 -05:00
eb3bad289a
Add light build requiring bun installed
2026-01-28 17:34:02 -05:00
5abdf31480
Add client recipe and set dev secret for local development
2026-01-28 17:23:19 -05:00
aa50c550b7
Auto-seed device from CLAUDE_REMOTE_SECRET env var
2026-01-28 17:21:12 -05:00
55defdd834
Add Caddyfile.example with Tailscale restriction
2026-01-28 17:14:47 -05:00
b72a9a8705
Move existing db to data/dev, update gitignore
2026-01-28 17:09:10 -05:00
86951e5e94
Format code with biome
2026-01-28 17:08:59 -05:00
e1c45d6d9f
Add build-cli recipe for local binary compilation
2026-01-28 17:08:10 -05:00
2343ed0449
Add compose.yml for server deployment
2026-01-28 17:07:32 -05:00
533d61d828
Add Dockerfile with multi-stage build for CLI binary
2026-01-28 17:07:07 -05:00
9f27e3a3fa
Add data/dev and data/prod directories for db storage
2026-01-28 17:06:07 -05:00