- Add SPA shell with hash-based router, sidebar navigation, and WebSocket RPC client
- Add dashboard page with system health cards, channel status, and auto-refresh
- Add chat page with session selector, streaming tool events, and markdown rendering
- Add sessions page with list, history viewer, and delete functionality
- Add settings page with hook pattern editor, tool list, and config viewer
- Add backend handlers: sessions.delete, sessions.switch, system.channels, system.usage
- Wire channelRegistry into gateway server for channel status reporting
- Extend static file server with .mjs, .png, .ico, .woff2 content types
Phase 2 of the Flynn roadmap. Adds a WebSocket gateway server that
starts alongside the Telegram bot, providing real-time API access to
the agent, sessions, and tools.
Protocol: JSON-RPC-like (request/response/event) over WebSocket.
8 methods: agent.send, agent.cancel, sessions.list, sessions.history,
sessions.create, tools.list, tools.invoke, system.health.
Auth: Bearer token + Tailscale identity header support.
Session bridge: per-connection agent instances with shared model router.
New files: src/gateway/ (protocol, router, server, auth, session-bridge,
handlers for agent/sessions/tools/system).
57 new tests (181 total), typecheck clean.
Design for adding LlamaCppClient to support local LLM inference
via llama-server with CUDA. Target model: Qwen 2.5 14B Q4_K_M.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Streaming responses (chunk-based)
- Rich markdown rendering with syntax highlighting
- Model switching via /model command
- Scrollable message history
- Enhanced status bar with token usage
- Inline error handling with auto-retry
- Feature parity between minimal and fullscreen modes
Covers:
- SessionManager for multi-frontend support
- Minimal readline TUI
- Fullscreen Ink-based TUI
- Mode switching and session transfer
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8 tasks covering:
- New dependencies (sqlite, ollama, openai)
- OpenAI client for fallback
- Ollama client for local LLM
- Model router with fallback chain
- SQLite session persistence
- Hook engine for sensitive operations
- Telegram confirmation UI
- Full integration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Separate sessions per frontend with explicit transfer
- Automatic backend routing based on task type
- Text responses by default (voice is future)
- Immediate notification delivery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Initial design for a self-hosted personal AI agent with:
- Telegram + TUI frontends
- Multi-model routing with fallback chain
- Claude Code/OpenCode CLI integration
- Hook-based security for sensitive operations
- Tailscale-only network exposure
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>