This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/docs/ROADMAP.md

153 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.<major>.<minor>` — 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.0v0.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)