Configure nginx to proxy API and WebSocket requests to backend.
This allows the frontend to work on VMs without hardcoded localhost URLs.
Changes:
- nginx.conf: Added proxy rules for /api/, /ws, and /health
- client.ts: Use relative URLs in production mode
- websocket.ts: Dynamically construct WebSocket URL based on current host
This fixes ERR_BLOCKED_BY_CLIENT and connection issues on VMs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The EventFeed component was filtering events twice:
1. First in useEvents hook (backend query with event_types filter)
2. Then again in EventFeed component (client-side filter)
This caused filter issues where switching between filters would show
incorrect events (e.g., switching from SESSIONS to ALL would only show
session events).
Fixed by removing the duplicate client-side filter, as useEvents already
provides correctly filtered events from the backend.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Features:
- User prompt hook now captures and displays actual prompt text
- Added tab switching between Event Feed and Agents Graph
- Created AgentsGraph component with placeholder
- Added CSS styling for agents graph view
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove unused Event import from client.ts
- Fix fractionalSecondDigits incompatibility in EventCard.tsx
- Manually format milliseconds for timestamp display