diff --git a/ROADMAP.md b/ROADMAP.md index ad7e4e5..a46a1dd 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -31,28 +31,39 @@ platform that extensions build on. | 9. CI/CD + Dockerfile | ✅ | Single unified image, FE/BE split removed, DB names updated, k8s var alignment fixes (resource quantities, image name, rollout deployment name) | | 10. Smoke test | ✅ | K8s deploy live at switchboard.gobha.ai/test, nginx BASE_PATH fixed, login→admin flow verified, branding updated | -## v0.2.0 — SDK & Triggers +## v0.2.x — SDK & Triggers The contract that extensions build against. Three trigger primitives, SDK stabilization, and the first rebuilt extension (tasks). +### v0.2.0 — RBAC + Settings Cascade (complete) + | Step | Status | Description | |------|--------|-------------| | Admin → RBAC group | ✅ | `surface.admin.access` permission + Admins system group replaces `role == "admin"` checks. Admin bypass removed from permission middleware. | | Settings cascade | ✅ | `user_overridable` flag, three-tier resolution (global → team → user), team settings API | +| ~~Settings override model~~ | ✅ | Shipped with settings cascade above | + +### v0.2.1 — Default Surface + ICD + +| Step | Status | Description | +|------|--------|-------------| +| Default surface routing | 🔲 | `/` redirects to configurable default surface. No surfaces → admin. First install becomes default. Changeable in admin settings. | | ICD (API contract) | 🔲 | OpenAPI spec from registered routes, kernel-only endpoint docs | + +### v0.2.2 — Event Bus + Triggers + +| Step | Status | Description | +|------|--------|-------------| +| Event bus subscriptions | 🔲 | Extensions register match expressions at install time | | Trigger system | 🔲 | Time (cron), webhook (inbound HTTP), event (bus subscription) | + +### v0.2.3 — SDK + Task Extension + +| Step | Status | Description | +|------|--------|-------------| | SDK stabilization | 🔲 | `sb.slots()`, `sb.actions`, `sb.api.ext()`, `sb.storage`, theme tokens, primitive UI | - -### Remaining v0.2.0 features - -- **Event bus subscriptions**: extensions register match expressions at install time -- **Task extension**: first proof-of-concept — full task system rebuilt as a - Starlark extension using triggers + ext_data + notifications -- ~~**Settings override model**~~: ✅ shipped with settings cascade above -- **Default surface routing**: `/` redirects to configurable default surface. - No surfaces installed → admin surface is default. First surface installed - becomes default. Changeable in admin settings. +| Task extension | 🔲 | First proof-of-concept — full task system rebuilt as Starlark extension using triggers + ext_data + notifications | ## v0.3.0 — Editor Surface