refactor: extract app.html components and add WebSocket support
Break down monolithic 716-line app.html template into modular components
for better maintainability and performance. Add comprehensive WebSocket
infrastructure for real-time Callosum event streaming.
**New Files:**
- convey/static/websocket.js: Callosum WebSocket bridge with auto-reconnect,
connection metrics (uptime, last message), and window.appEvents API
- convey/static/app.css: All app system styles (368 lines)
- convey/static/app.js: Facet/menu interaction logic (292 lines)
- convey/templates/menu_bar.html: Left sidebar navigation component
- convey/templates/status_pane.html: Status dropdown with live WebSocket metrics
**Modified:**
- convey/templates/app.html: Reduced from 716 to 67 lines (91% reduction)
by extracting CSS, JS, and components into separate cacheable files
**Benefits:**
- Browser-cacheable CSS/JS assets
- Real-time WebSocket status (🟢 connected / 🔴 disconnected)
- Status pane shows connection uptime and last message time
- Self-contained reusable components
- Cleaner separation of concerns
- Apps can now use window.appEvents.listen() for real-time updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>