153 lines
5.9 KiB
Markdown
153 lines
5.9 KiB
Markdown
# 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.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) |