Commit graph

22 commits

Author SHA1 Message Date
8992b0cc7b
Add phase 2 design document 2026-01-28 12:38:58 -05:00
c1c2a9e802
Add a todo 2026-01-28 12:34:08 -05:00
0417d167a0
Add gitignore for node_modules and SQLite files 2026-01-28 12:28:40 -05:00
5ff684824a
Fix dashboard ID handling and output rendering performance 2026-01-28 12:26:17 -05:00
48a01641c4
Add mobile dashboard with SSE streaming
Replaced placeholder index.html with a fully functional mobile-first dashboard that connects to the server via SSE and provides real-time session monitoring and prompt approval.

Features:
- Mobile-first design with large touch targets (44px min) and readable fonts
- SSE connection to /events with automatic reconnection on disconnect
- Live display of active sessions with collapsible output views
- Pending prompts section with approve/reject buttons
- Real-time updates for session start/end, streaming output, and prompts
- Dark mode by default with light mode support via prefers-color-scheme
- Plain text terminal output (monospace, scrolls to bottom)
- Connection status indicator in header

Implementation is a single HTML file (~300 lines) with inline CSS and vanilla JS, no frameworks or dependencies.
2026-01-28 12:23:46 -05:00
fe3887393d
Add code review workflow to CLAUDE.md 2026-01-28 12:19:07 -05:00
508a1c9837
Fix CLI resource cleanup and auth flow 2026-01-28 11:50:51 -05:00
54bc458b7d
Add PTY CLI wrapper
Wraps claude CLI in PTY and bridges to WebSocket server. Handles:
- Argument parsing (--server, --secret)
- PTY spawn with terminal size detection
- Bidirectional I/O: local stdin/stdout + WebSocket
- Terminal resize events (SIGWINCH)
- Graceful cleanup on exit
- Basic WebSocket reconnection
- Auth and session messages to server
2026-01-28 11:46:47 -05:00
65b8acf5f8
Fix SSE cleanup and add prompt creation endpoint
- Fix SSE cancel handler to properly capture controller in closure
- Remove error JSON messages before WebSocket close (close reason is sufficient)
- Add POST /api/sessions/:sessionId/prompts endpoint for prompt creation
- Add SSE client cleanup on broadcast errors
- Add createPrompt and getSession imports
- Add prompt message type to ClientMessage for CLI prompt reporting
- Add prompt message handler in WebSocket to create and broadcast prompts
2026-01-28 11:41:50 -05:00
b4ac7beead
Add HTTP/WebSocket/SSE server 2026-01-28 11:37:59 -05:00
76a81666a2
Fix prepared statements to prepare once at init 2026-01-28 11:18:44 -05:00
596b0fd013
Add SQLite database layer with tests 2026-01-28 11:15:36 -05:00
59f21cd062
Add HMAC authentication with comprehensive tests
Implements device authentication using HMAC-SHA256 signatures with constant-time comparison for security. Includes timestamp-based auth headers with configurable freshness checking (default 5min) and clock skew tolerance.
2026-01-28 11:14:54 -05:00
e61bcb544d
Add message and entity types 2026-01-28 11:09:44 -05:00
82f3d18117
Add references section for inspiration sources 2026-01-28 11:06:09 -05:00
1db763aa89
Add placeholder test 2026-01-28 11:03:32 -05:00
02be345946
Fix biome config formatting (self-heal) 2026-01-28 11:03:31 -05:00
726190eaa6
Restructure project files into src and public directories
Moved index.ts to src/server.ts and created stub files for types, db, auth,
and cli modules. Added minimal placeholder for dashboard. Removed generated
README.md in favor of CLAUDE.md and docs/plan.md.
2026-01-28 11:00:19 -05:00
350fcf3713
Add implementation plan to docs
Copied from planning phase - full specification for PTY wrapper,
WebSocket protocol, SQLite schema, and deployment setup.
2026-01-28 10:59:48 -05:00
9c6b5f6e59
Update CLAUDE.md with project-specific instructions
Added project description, contribution policy for bun-pty, and standard
workflow notes. Kept Bun API references for development guidance.
2026-01-28 10:59:39 -05:00
62a264c62a
Add npm scripts and justfile for development workflow
Scripts cover linting, type checking, testing, and dev server.
Justfile provides docker commands and unified check command.
2026-01-28 10:59:07 -05:00
0bc0c2fded
Configure biome to use 2 space indentation
Switching from tabs to spaces for consistency with most TypeScript projects.
2026-01-28 10:58:51 -05:00