step 5 (complete): docs purge, fresh ARCHITECTURE + ROADMAP + CHANGELOG
Purged 29,966 lines of stale chat-switchboard documentation: - 41 docs/ files (ICD specs, design docs, archive, workflow docs) - 5 root MD files (CHANGESET, TURNOVER, ICD-DRIFT-AUDIT, etc.) New documentation: - docs/ARCHITECTURE.md — kernel components, design principles, data layer - ROADMAP.md — v0.1.0 through v0.5.0 MVP with decision log - CHANGELOG.md — fresh, starting from v0.1.0 fork - README.md — rewritten for switchboard-core Also in this commit: - config.go: stripped 7 dropped fields, DB default → switchboard_core - pages/loaders.go: stripped provider/model/notes/projects loaders - pages/pages.go: stripped persona store lookup - handlers/workflows.go: stripped persona tool grants - main.go: stripped team provider routes, avatar routes Production code: zero references to deleted packages, stores, or models. -29,966/+352 lines across 73 files.
This commit is contained in:
84
ROADMAP.md
Normal file
84
ROADMAP.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# Switchboard Core — Roadmap
|
||||
|
||||
## Current: v0.1.0 — The Kernel
|
||||
|
||||
Fork of chat-switchboard, gutted to a pure extension platform. All AI/chat
|
||||
features removed from the kernel. What remains is the minimum viable
|
||||
platform that extensions build on.
|
||||
|
||||
### Phase 0 (in progress)
|
||||
|
||||
| Step | Status | Description |
|
||||
|------|--------|-------------|
|
||||
| 1. Module rename | ✅ | `chat-switchboard` → `switchboard-core` |
|
||||
| 2. Delete packages | ✅ | 15 Go packages, 29 handler files removed |
|
||||
| 3. Gut stores/models | ✅ | 40 → 20 store interfaces, kernel-only models |
|
||||
| 4. Fresh migrations | ✅ | 9 files × 2 dialects, 27 tables |
|
||||
| 5. Fix compilation | 🔧 | ~95% done, ~5 compile errors remaining |
|
||||
| 6. Fix tests | ⬜ | Prune 13K test lines to kernel-only |
|
||||
| 7. Frontend gut | ⬜ | Shell + SDK only, vendor libs baked |
|
||||
| 8. New ICD | ⬜ | Kernel-only API spec |
|
||||
| 9. CI/CD + Dockerfile | ⬜ | Single image, new DB names |
|
||||
| 10. Smoke test + tag | ⬜ | Deploy, verify, tag v0.1.0 |
|
||||
|
||||
## v0.2.0 — SDK & Triggers
|
||||
|
||||
The contract that extensions build against. Three trigger primitives,
|
||||
SDK stabilization, and the first rebuilt extension (tasks).
|
||||
|
||||
- **Trigger system**: time (cron), webhook (inbound HTTP), event (bus subscription)
|
||||
- **Event bus subscriptions**: extensions register match expressions at install time
|
||||
- **SDK contract**: `sb.slots()`, `sb.actions`, `sb.api.ext()`, `sb.storage`
|
||||
- **Primitive UI components**: toast, confirm, prompt, dialog (stabilize existing)
|
||||
- **Theme tokens** exposed to extensions
|
||||
- **Task extension**: first proof-of-concept — full task system rebuilt as a
|
||||
Starlark extension using triggers + ext_data + notifications
|
||||
|
||||
## v0.3.0 — Editor Surface
|
||||
|
||||
The code/markdown editor rebuilt as an installable surface package.
|
||||
Zero platform special-casing. Proves the full extension stack E2E.
|
||||
|
||||
- Editor as `.pkg` archive
|
||||
- CM6 integration via surface viewport
|
||||
- File tree, tabs, preview pane — all extension-provided
|
||||
|
||||
## v0.4.0 — Chat Extension
|
||||
|
||||
The AI chat system rebuilt as an installable extension package.
|
||||
|
||||
- Provider registry as extension (BYOK chain, model catalog)
|
||||
- Completion streaming via Starlark `provider.complete`
|
||||
- Personas as extension data
|
||||
- Channel/message storage via ext_data tables
|
||||
- Tool system as extension hooks
|
||||
|
||||
## v0.5.0 — MVP
|
||||
|
||||
Extension and operations tracks converge. First externally usable release.
|
||||
|
||||
- Package registry (browse, install, update, uninstall)
|
||||
- Extension marketplace foundations
|
||||
- Health monitoring dashboard
|
||||
- Backup/restore tooling
|
||||
- Documentation site
|
||||
|
||||
## Post-MVP
|
||||
|
||||
- Rich media extensions: image generation, code sandbox, STT/TTS
|
||||
- Desktop app (Tauri or Electron)
|
||||
- Sidecar tier: container-based extensions
|
||||
- Federation: cross-instance package sharing
|
||||
- Plugin marketplace with signing and review
|
||||
|
||||
## Design Decisions Log
|
||||
|
||||
| Decision | Rationale |
|
||||
|----------|-----------|
|
||||
| Tasks → extension | Scheduler was the most entangled kernel component (~3,400 lines). Rebuilding as extension validates the trigger system and removes the worst compilation debt. Three trigger primitives (time, webhook, event) replace the monolithic scheduler. |
|
||||
| Sessions removed | Channel-based sessions coupled to deleted chat system. Workflow instances need new storage model — either ext_data tables or a dedicated kernel table. |
|
||||
| `chat_only` → `custom` | Stage mode `chat_only` implied chat as a kernel concept. Renamed to `custom` which delegates to a surface package, proving extension composability. |
|
||||
| Providers removed from kernel | Provider configs, model catalog, routing policies — all moved to extension track. Kernel provides credential storage (connections) and the Starlark `provider.complete` module as the interface. |
|
||||
| Kernel permissions simplified | From 16 chat-centric permissions to 6 platform permissions. Extensions define their own capability requirements in manifests. |
|
||||
| Preact+htm retained | 3KB runtime, no build step, works for extension authors without bundler config. KISS. |
|
||||
| Single Docker image | Drop the frontend/backend split. Go binary + assets + migrations in one image. Simpler deployment, fewer moving parts. |
|
||||
Reference in New Issue
Block a user