Critical fix: The frontend was waiting for a 'ready' message that the
backend never sent, causing commands to timeout.
Root Cause:
Frontend connectTerminal() waits for 'ready' message from backend
before resolving, but backend never sent this message. Result: Frontend
timed out after 5 seconds waiting for ready state, and commands were
never sent.
Fix:
Send 'ready' message immediately when WebSocket connection is established.
This signals to frontend that PTY is initialized and ready to receive input.
Flow Now:
1. Frontend creates terminal UI
2. Frontend initializes xterm.js
3. Frontend connects WebSocket
4. Backend receives connection, sends 'ready' message
5. Frontend receives 'ready', sets ready=true, resolves promise
6. Frontend sends claude --dangerously-skip-permissions command
7. Command executes successfully
Resolves: "still getting empty terminal"
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Full IDE with terminal integration using xterm.js
- Session management with local and web sessions
- HTML preview functionality
- Multi-terminal support with session picker
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>