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/ROADMAP.md
Jeffrey Smith 7b6e54d5b7 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.
2026-03-26 05:10:40 -04:00

4.0 KiB
Raw Blame History

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-switchboardswitchboard-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_onlycustom 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.