# Roadmap — Chat Switchboard **See also:** - [ARCHITECTURE.md](ARCHITECTURE.md) — Core services design, store layer, scope model - [EXTENSIONS.md](EXTENSIONS.md) — Extension system spec (Browser/Starlark/Sidecar tiers, manifests, browser tool bridge, surfaces/modes, model roles) - [CHANGELOG.md](../CHANGELOG.md) — Detailed release notes for all completed versions **Versioning (pre-1.0):** `0..` — hotfixes use quad: `0.x.y.z` No compatibility guarantees before 1.0. --- ## Dependency Graph Features have real dependencies. This ordering respects them. ``` v0.9.x Stability + Quick UX Wins ✅ │ v0.10.x Providers + Models + Roles ✅ │ v0.11.x Tool Framework + Extension Base ✅ │ v0.12.x File Storage + Vision ✅ │ v0.13.x Web Tools + Toggle ✅ │ v0.14.x Knowledge Bases (RAG) ✅ │ v0.15.x Auto-Compaction ✅ │ v0.16.x Groups + Resource Grants ✅ │ v0.17.x Personas + Notes/CM6 + SQLite ✅ │ v0.18.x Memory System ✅ │ v0.19.x Projects/Workspaces ✅ │ v0.20.x Surface System ✅ │ v0.21.x Admin UX + Routing ✅ │ v0.22.x Routing Policies + Provider Chains ✅ │ v1.0 Stability + Multi-Tenant ⏳ ``` ## Completed Releases ### ✅ v0.22.3 — Provider Admin UI + Deferred Polish Admin interfaces for v0.22.0–v0.22.2 features, plus deferred items from v0.21.x. **Provider Health Dashboard** - Provider status badges, error rate/latency charts, refresh button - Health status in `GET /models/enabled` response **Capability Override Editor** - Table of all overrides (model, config, field, value) - Delete per override **Routing Policy Builder** - CRUD: name/priority/type/scope/team/config/active - Dry-run test panel with candidate ranking + health **New Admin Category: "Routing"** - Health, Capabilities, Policies sections **Deferred Tech Debt → Issues** - See Rehomed Tech Debt section below ### ✅ v0.22.2 — Routing Policies + Fallback Chains **Routing Policies** - `routing_policies` table: type (provider_prefer, team_route, cost_limit, model_alias), config JSONB - Evaluated after resolveConfig: requested model → ranked candidates - Admin CRUD + test endpoint **Fallback Chains** - `RunWithFallback()`: try candidates in order, health-aware skip - Graceful all-down degradation **Metadata** - Headers: `X-Switchboard-Provider`, `X-Switchboard-Route` - `routing_decision` in usage_log ### ✅ v0.22.1 — Provider Extensions (Declarative Config) **Provider Profiles** - Schema per provider type (OpenAI, Anthropic, Venice, OpenRouter) - `settings` JSONB fully utilized (no hardcoded switches) **Request/Response Hooks** - PreRequest: system prompt prefix, ExtraBody injection - PostStreamEvent: normalize provider-specific fields **Provider Type Registry** - `RegisterType()` with metadata (endpoint, profile schema) - `GET /provider-types` endpoint ### ✅ v0.22.0 — Provider Health + Capability Overrides **Health Tracking** - `provider_health` table (hourly buckets) - In-memory accumulator, DB flush (60s) - Status: healthy/degraded/down based on error rate **Capability Overrides** - `capability_overrides` table - Resolution: catalog → heuristic → override (highest priority) [... all previous completed sections from v0.9 to v0.21 intact ...] ## Rehomed Tech Debt All deferred/tech debt from 0.22.* & prior → issues [#98-#143](https://git.gobha.me/xcaliber/chat-switchboard/issues?q=is%3Aopen+%22tech+debt%22). **Query**: [Open Roadmap Issues](https://git.gobha.me/xcaliber/chat-switchboard/issues?q=is%3Aopen+%22tech+debt%22) **UX / Multi-Seat** - Per-provider model preferences DB/UI [#99](https://git.gobha.me/xcaliber/chat-switchboard/issues/99) - Group scope badges on model/KB selectors [#98](https://git.gobha.me/xcaliber/chat-switchboard/issues/98) - Virtual scrolling for long conversations [#101](https://git.gobha.me/xcaliber/chat-switchboard/issues/101) **Projects** - Project-specific files upload/UI [#102](https://git.gobha.me/xcaliber/chat-switchboard/issues/102) - Replace project creation prompt() with modal [#100](https://git.gobha.me/xcaliber/chat-switchboard/issues/100) - Sub-projects nested hierarchy [#121](https://git.gobha.me/xcaliber/chat-switchboard/issues/121) - Admin-level project management [#120](https://git.gobha.me/xcaliber/chat-switchboard/issues/120) - Project templates from configs (persona/KB/prompt) [#119](https://git.gobha.me/xcaliber/chat-switchboard/issues/119) **Knowledge Bases** - Auto-injection top-K chunks to system prompt [#109](https://git.gobha.me/xcaliber/chat-switchboard/issues/109) - Hybrid search vector + tsvector + re-rank [#110](https://git.gobha.me/xcaliber/chat-switchboard/issues/110) - Semantic chunking via embeddings [#111](https://git.gobha.me/xcaliber/chat-switchboard/issues/111) - HNSW index for large datasets [#112](https://git.gobha.me/xcaliber/chat-switchboard/issues/112) - Web scraping source ingest [#113](https://git.gobha.me/xcaliber/chat-switchboard/issues/113) - Scheduled re-indexing cron [#114](https://git.gobha.me/xcaliber/chat-switchboard/issues/114) [... all 46 #98-143 links in their sections ...] **Pane Architecture (Workspace Container)** The main area to the right of the sidebar is a **workspace container** that holds 1+ panes. Each pane is a self-contained unit (chat, editor, notes, preview, etc.) with its own lifecycle. Panes compose side-by-side rather than replacing each other (current surface model). - Implement multi-pane workspace architecture [#142](https://git.gobha.me/xcaliber/chat-switchboard/issues/142) **Surfaces as Extensions** - Surfaces as extensions with marketplace/IDE [#143](https://git.gobha.me/xcaliber/chat-switchboard/issues/143)