chore: bootstrap MS21 Multi-Tenant RBAC Data Migration mission (#552)

Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
This commit was merged in pull request #552.
This commit is contained in:
2026-02-28 17:12:22 +00:00
committed by jason.woltje
parent 128431ba58
commit 8098504fb8
5 changed files with 421 additions and 133 deletions

View File

@@ -1,81 +1,52 @@
# Mission Manifest — MS20 Site Stabilization
# Mission Manifest — MS21 Multi-Tenant RBAC Data Migration
> Persistent document tracking full mission scope, status, and session history.
> Updated by the orchestrator at each phase transition and milestone completion.
## Mission
**ID:** ms20-site-stabilization-20260227
**Statement:** Fix runtime bugs, missing API endpoints, orchestrator connectivity, and feature gaps discovered during live site testing at mosaic.woltje.com
**Phase:** Complete
**Current Milestone:** MS20-SiteStabilization
**Progress:** 1 / 1 milestones
**Status:** completed
**Last Updated:** 2026-02-27T12:15Z
**ID:** ms21-multi-tenant-rbac-data-migration-20260228
**Statement:** Build multi-tenant user/workspace/team management, break-glass auth, RBAC UI enforcement, and migrate jarvis-brain data into Mosaic Stack
**Phase:** Intake
**Current Milestone:**
**Progress:** 0 / 6 milestones
**Status:** active
**Last Updated:** 2026-02-28 17:10 UTC
## Success Criteria
1. Domains page: can create and list domains without workspace errors — **PASS** (PR #536)
2. Projects page: can create new projects without workspace errors — **PASS** (already working)
3. Personalities page: full CRUD works with proper dark mode theming — **PASS** (PR #537, #540)
4. User preferences endpoint (`/users/me/preferences`) returns data — **PASS** (PR #539)
5. Credentials page: can add, view credentials (not just disabled stub) — **PASS** (PR #545)
6. Orchestrator proxy endpoints return real data (no 502) — **PASS** (PR #542; 502s remain because orchestrator service not active in prod, but proxy route works)
7. Orchestrator WebSocket connects successfully — **PASS** (PR #547, #548, #549)
8. Dashboard Agent Status, Task Progress, Orchestrator Events widgets work — **PARTIAL** (widgets render, but orchestrator service not active in prod so data endpoints return 502)
9. Terminal has dedicated `/terminal` page route — **PASS** (PR #538)
10. favicon.ico serves correctly (no 404) — **PASS** (PR #541, #544)
11. `useWorkspaceId` warning resolved — workspace ID persists in localStorage — **PASS** (already in main via auth-context.tsx)
12. All 5 themes render correctly on all affected pages — **PASS** (verified dark mode on personalities, credentials, domains, dashboard)
13. Lint, typecheck, and tests pass — **PASS** (pipeline 680 green — 1445 web tests, 3316 API tests)
14. Deployed and verified at mosaic.woltje.com — **PASS** (Portainer stack 121 redeployed, all pages verified)
## Existing Infrastructure
Key components already built that MS20 builds upon:
| Component | Status | Location |
| ------------------------- | --------------- | ----------------------------------------------- |
| WorkspaceGuard | Working | `apps/api/src/common/guards/workspace.guard.ts` |
| Auto-detect workspace ID | Working (reads) | `apps/web/src/lib/api/client.ts` |
| Credentials API backend | Built (M7) | `apps/api/src/credentials/` |
| Orchestrator proxy routes | Fixed (MS20) | `apps/web/src/app/api/orchestrator/` |
| Terminal components | Built (MS19) | `apps/web/src/components/terminal/` |
| Theme system | Working (MS18) | `apps/web/src/lib/themes/` |
<!-- Define measurable success criteria here -->
## Milestones
| # | ID | Name | Status | Branch | Issue | Started | Completed |
| --- | ---- | ------------------ | --------- | ------------------------- | ----- | ---------- | ---------- |
| 1 | MS20 | Site Stabilization | completed | per-task feature branches | #534 | 2026-02-27 | 2026-02-27 |
| # | ID | Name | Status | Branch | Issue | Started | Completed |
| --- | ------- | -------------------------- | ------- | ------ | ----- | ------- | --------- |
| 1 | phase-1 | Schema and Admin API | pending | — | — | — | — |
| 2 | phase-2 | Break-Glass Authentication | pending | — | — | — | — |
| 3 | phase-3 | Data Migration | pending | — | — | — | — |
| 4 | phase-4 | Admin UI | pending | — | — | — | — |
| 5 | phase-5 | RBAC UI Enforcement | pending | — | — | — | — |
| 6 | phase-6 | Verification | pending | — | — | — | — |
## Deployment
| Target | URL | Method |
| --------- | ----------------- | --------------------------- |
| Portainer | mosaic.woltje.com | CI/CD pipeline (Woodpecker) |
| Target | URL | Method |
| ------ | --- | ------ |
| — | — | — |
## Token Budget
| Metric | Value |
| ------ | -------------------- |
| Budget | ~400K (estimated) |
| Used | ~263K (across S1-S4) |
| Mode | normal |
| Metric | Value |
| ------ | ------ |
| Budget | |
| Used | 0 |
| Mode | normal |
## Session History
| Session | Runtime | Started | Duration | Ended Reason | Last Task |
| ------- | --------------- | ----------------- | -------- | ------------------ | -------------------- |
| S1 | Claude Opus 4.6 | 2026-02-27T05:30Z | ~30m | Planning done | PLAN-001 |
| S2 | Claude Opus 4.6 | 2026-02-27T06:00Z | ~2h | Context exhaustion | 5 workers dispatched |
| S3 | Claude Opus 4.6 | 2026-02-27T08:00Z | ~1.5h | Context exhaustion | Recovery + 2 workers |
| S4 | Claude Opus 4.6 | 2026-02-27T10:30Z | ~2h | Mission complete | VER-001 + DOC-001 |
## PRs Merged
13 code PRs + 1 docs PR = 14 total: #536, #537, #538, #539, #540, #541, #542, #543, #544, #545, #547, #548, #549
| Session | Runtime | Started | Duration | Ended Reason | Last Task |
| ------- | ------- | ------- | -------- | ------------ | --------- |
## Scratchpad
Path: `docs/scratchpads/ms20-site-stabilization-20260227.md`
Path: `docs/scratchpads/ms21-multi-tenant-rbac-data-migration-20260228.md`