Feat v0.9.4 package adoption roles (#78)
All checks were successful
CI/CD / detect-changes (push) Successful in 3s
CI/CD / test-frontend (push) Has been skipped
CI/CD / test-runners (push) Has been skipped
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-go-pg (push) Successful in 2m55s
CI/CD / test-sqlite (push) Successful in 3m7s
CI/CD / build-and-deploy (push) Successful in 1m19s
All checks were successful
CI/CD / detect-changes (push) Successful in 3s
CI/CD / test-frontend (push) Has been skipped
CI/CD / test-runners (push) Has been skipped
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-go-pg (push) Successful in 2m55s
CI/CD / test-sqlite (push) Successful in 3m7s
CI/CD / build-and-deploy (push) Successful in 1m19s
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #78.
This commit is contained in:
99
ROADMAP.md
99
ROADMAP.md
@@ -105,11 +105,14 @@ Manifest `requires_roles` field (advisory). Starlark `teams` module
|
||||
with `get_member_roles()` and `has_role()`. Team-admin UI with role
|
||||
badge chips and assignment dropdown. 10 new tests.
|
||||
|
||||
**v0.9.4 — Package Adoption + Roles**
|
||||
**v0.9.4 — Package Adoption + Roles** *(completed)*
|
||||
|
||||
`scope: adoptable` manifest field. When a team adopts an adoptable
|
||||
package, the package's `requires_roles` auto-populate into the team's
|
||||
role slots. Replaces `AdoptTeamWorkflow` clone mechanism.
|
||||
`adoptable` manifest field + `team_role_catalog` table. When a team
|
||||
adopts an adoptable package, the package's `requires_roles` auto-populate
|
||||
into the team's role catalog. Adopted packages reference the original via
|
||||
`adopted_from` column (shared assets, no disk duplication).
|
||||
`AdoptTeamWorkflow` deprecated in favor of package-level adoption.
|
||||
4 new endpoints, migration 017, 11 new tests.
|
||||
|
||||
**v0.9.5 — Typed Forms → SDK Primitive**
|
||||
|
||||
@@ -182,31 +185,59 @@ a clean visual foundation. Design doc: `docs/DESIGN-notes-v011x.md`.
|
||||
|
||||
---
|
||||
|
||||
### v0.12.x — Reference Extensions (Remaining)
|
||||
### v0.12.x — Chat Reference Extension
|
||||
|
||||
The kernel is complete. This series proves the platform by shipping
|
||||
first-party extensions that exercise every primitive. These are
|
||||
**extensions, not kernel code** — they ship as `.pkg` files and can be
|
||||
uninstalled.
|
||||
Chat becomes the second reference extension — human-to-human messaging
|
||||
built entirely on Armature's extension architecture. Where notes proved
|
||||
surfaces, panels, and storage, chat proves **realtime**, **cross-package
|
||||
composition**, and **extensible data models**. Chat is human-to-human
|
||||
first; AI participants arrive via `llm-bridge` (v0.13.x) extending chat
|
||||
through folder attributes and slot contributions.
|
||||
Design doc: `docs/DESIGN-chat-v012x.md`.
|
||||
|
||||
| Version | Title |
|
||||
|---------|-------|
|
||||
| v0.12.0 | `vector-store` Library |
|
||||
| v0.12.1 | `llm-bridge` Library |
|
||||
| v0.12.2 | `file-share` Extension |
|
||||
| v0.12.3 | `code-workspace` Extension |
|
||||
| v0.12.4 | `image-gen` + `image-edit` Extensions |
|
||||
| v0.12.5 | Chat System |
|
||||
| v0.12.0 | UI/UX Foundation |
|
||||
| v0.12.1 | Conversation Folders + Attributes |
|
||||
| v0.12.2 | Reactions + Threads + Pins |
|
||||
| v0.12.3 | Rich Compose + Attachments |
|
||||
| v0.12.4 | @Mentions + Notifications |
|
||||
| v0.12.5 | Link Previews + Message Formatting |
|
||||
| v0.12.6 | Conversation Themes + Personality |
|
||||
| v0.12.7 | Composability: Slots + Actions |
|
||||
| v0.12.8 | Panels + Quality Gate |
|
||||
|
||||
---
|
||||
|
||||
### v0.13.x — Sidecar Tier + Polish
|
||||
### v0.13.x — Reference Libraries + Extensions
|
||||
|
||||
Core libraries and remaining extensions. `llm-bridge` is the key
|
||||
delivery — extends both notes and chat through composability primitives,
|
||||
and introduces the **tool meta-tool** pattern: `sw.actions.list()` becomes
|
||||
the LLM tool registry, so installing an extension = granting AI a new
|
||||
capability. Zero configuration.
|
||||
|
||||
| Version | Title |
|
||||
|---------|-------|
|
||||
| v0.13.0 | Sidecar Tier |
|
||||
| v0.13.1 | Native Dialog Audit |
|
||||
| v0.13.2 | Stability + Migration Tooling |
|
||||
| v0.13.0 | `vector-store` Library |
|
||||
| v0.13.1 | `llm-bridge` Core Library |
|
||||
| v0.13.2 | `llm-bridge` → Chat: Multi-Persona Context + Tool Meta-Tool |
|
||||
| v0.13.3 | `llm-bridge` → Notes: AI Toolbar Actions |
|
||||
| v0.13.4 | `file-share` Extension |
|
||||
| v0.13.5 | `code-workspace` Extension |
|
||||
| v0.13.6 | `image-gen` + `image-edit` Extensions |
|
||||
| v0.13.7 | Tool Meta-Tool Hardening + Scoping |
|
||||
| v0.13.8 | Integration Quality Gate |
|
||||
|
||||
---
|
||||
|
||||
### v0.14.x — Sidecar Tier + Polish
|
||||
|
||||
| Version | Title |
|
||||
|---------|-------|
|
||||
| v0.14.0 | Sidecar Tier |
|
||||
| v0.14.1 | Native Dialog Audit |
|
||||
| v0.14.2 | Stability + Migration Tooling |
|
||||
|
||||
---
|
||||
|
||||
@@ -219,15 +250,20 @@ Gate criteria:
|
||||
- All kernel Starlark modules documented with examples
|
||||
- All `api_routes` covered by OpenAPI spec
|
||||
- Upgrade path tested from v0.8.0 → v1.0.0
|
||||
- At least 3 reference extensions shipped (vector-store, llm-bridge, chat)
|
||||
- At least 1 cross-extension composability demo (image-gen → chat:image-actions)
|
||||
- Notes reference extension shipped with all v0.11.x features
|
||||
- Notes UI/UX reviewed against v0.11.0 design principles — no placeholder UI
|
||||
- Chat reference extension shipped with all v0.12.x features
|
||||
- `llm-bridge` extends both notes and chat through composability
|
||||
- Tool meta-tool demonstrated: AI uses 3+ extension actions in a
|
||||
single conversation turn
|
||||
- Multi-persona context archetypes demonstrated
|
||||
- Admin safety rails validated
|
||||
- At least 2 panels consumed cross-package
|
||||
- At least 2 slot contributions per host surface demonstrated
|
||||
- Note and conversation sharing functional end-to-end
|
||||
- Headless E2E green on PG + SQLite
|
||||
- `armature-ca.sh` + mTLS deployment guide
|
||||
- Single-binary + Docker + K8s deployment paths documented
|
||||
- Notes reference extension shipped with all v0.11.x features
|
||||
- Notes UI/UX reviewed against v0.11.0 design principles — no placeholder UI
|
||||
- At least 1 panel shipped and consumed cross-package (notes.reference → chat)
|
||||
- Panel lifecycle test coverage in SDK test runner
|
||||
|
||||
---
|
||||
|
||||
@@ -278,9 +314,16 @@ These are candidates, not commitments. Each requires a design doc.
|
||||
| `workspace` for real filesystem | Flat blob store can't serve git/compilers/ffmpeg. Managed disk paths. |
|
||||
| Capability negotiation at install | Fail loud with actionable message, not silently at runtime. |
|
||||
| Vector column with three-tier fallback | Works everywhere, works fast with pgvector. |
|
||||
| Sidecar deferred to v0.13.x | HTTP module covers external APIs. Sidecars connect inward (no k8s RBAC needed). |
|
||||
| Sidecar deferred to v0.14.x | HTTP module covers external APIs. Sidecars connect inward (no k8s RBAC needed). |
|
||||
| Workflow redesign before reference extensions | Clean up debt and promote primitives before building on top. |
|
||||
| Panels as kernel primitive (v0.10.x) | Z-index coordination, drag/resize, layout negotiation are kernel concerns. |
|
||||
| UI/UX redesign as v0.11.0 | Every feature version builds on the visual foundation. Front-loading avoids double work. |
|
||||
| UI/UX redesign as first version in each reference series | Every feature builds on the visual foundation. Front-loading avoids double work. |
|
||||
| Notes as dedicated v0.11.x series (11 versions) | Complex enough to need changeset discipline. Each version independently shippable. |
|
||||
| Notes before remaining reference extensions | Notes proves the full primitive surface. Other extensions build on proven patterns. |
|
||||
| Notes before chat | Notes is simpler (no realtime) and proves storage/rendering/composability. Chat adds realtime + llm-bridge story. |
|
||||
| Chat human-to-human first (v0.12.x) | AI is an extension concern. Keeps chat testable and usable standalone. |
|
||||
| Chat as dedicated v0.12.x series (9 versions) | Second reference extension. Proves realtime, extensible data models, cross-package composition. |
|
||||
| Folder attributes as extension bridge | Chat stores attributes it doesn't understand. llm-bridge contributes definitions. Zero coupling. |
|
||||
| Action registry as tool registry (meta-tool) | Dynamic, zero-config AI tool-use. Installed extensions = AI capabilities. Uniquely Armature. |
|
||||
| Layered prompt architecture (6 layers) | Admin safety not overridable. Clear separation: platform → space → character → context → tools → user. |
|
||||
| Personas in llm-bridge, not chat | Chat sees AI as just another participant_type. Persona identity is llm-bridge's concern. |
|
||||
| llm-bridge after notes + chat (v0.13.x) | Proves the composability hooks work without being designed for a specific consumer. |
|
||||
|
||||
Reference in New Issue
Block a user