diff --git a/docs/MISSION-MANIFEST.md b/docs/MISSION-MANIFEST.md index b61b335..e97283e 100644 --- a/docs/MISSION-MANIFEST.md +++ b/docs/MISSION-MANIFEST.md @@ -8,10 +8,10 @@ **ID:** mvp-20260312 **Statement:** Build Mosaic Stack v0.1.0 — a self-hosted, multi-user AI agent platform with web dashboard, TUI, remote control, shared memory, mission orchestration, and extensible skill/plugin architecture. All TypeScript. Pi as agent harness. Brain as knowledge layer. Queue as coordination backbone. **Phase:** Execution -**Current Milestone:** Phase 7: Polish & Beta (v0.1.0) -**Progress:** 7 / 8 milestones +**Current Milestone:** Phase 7: Feature Completion (v0.0.8) +**Progress:** 7 / 9 milestones **Status:** active -**Last Updated:** 2026-03-14 UTC +**Last Updated:** 2026-03-15 UTC ## Success Criteria @@ -38,7 +38,8 @@ | 4 | ms-161 | Phase 4: Memory & Intelligence (v0.0.5) | done | — | — | 2026-03-13 | 2026-03-13 | | 5 | ms-162 | Phase 5: Remote Control (v0.0.6) | done | — | #99 | 2026-03-14 | 2026-03-14 | | 6 | ms-163 | Phase 6: CLI & Tools (v0.0.7) | done | — | #104 | 2026-03-14 | 2026-03-14 | -| 7 | ms-164 | Phase 7: Polish & Beta (v0.1.0) | not-started | — | — | — | — | +| 7 | ms-164 | Phase 7: Feature Completion (v0.0.8) | not-started | — | — | — | — | +| 8 | ms-165 | Phase 8: Polish & Beta (v0.1.0) | not-started | — | — | — | — | ## Deployment diff --git a/docs/TASKS.md b/docs/TASKS.md index 74085e4..0a67639 100644 --- a/docs/TASKS.md +++ b/docs/TASKS.md @@ -2,67 +2,80 @@ > Single-writer: orchestrator only. Workers read but never modify. -| id | status | milestone | description | pr | notes | -| ------ | ----------- | --------- | ------------------------------------------------------------- | ---- | ----- | -| P0-001 | done | Phase 0 | Scaffold monorepo | #60 | #1 | -| P0-002 | done | Phase 0 | @mosaic/types — migrate and extend shared types | #65 | #2 | -| P0-003 | done | Phase 0 | @mosaic/db — Drizzle schema and PG connection | #67 | #3 | -| P0-004 | done | Phase 0 | @mosaic/auth — BetterAuth email/password setup | #68 | #4 | -| P0-005 | done | Phase 0 | Docker Compose — PG 17, Valkey 8, SigNoz | #65 | #5 | -| P0-006 | done | Phase 0 | OTEL foundation — OpenTelemetry SDK setup | #65 | #6 | -| P0-007 | done | Phase 0 | CI pipeline — Woodpecker config | #69 | #7 | -| P0-008 | done | Phase 0 | Project docs — AGENTS.md, CLAUDE.md, README | #69 | #8 | -| P0-009 | done | Phase 0 | Verify Phase 0 — CI green, all packages build | #70 | #9 | -| P1-001 | done | Phase 1 | apps/gateway scaffold — NestJS + Fastify adapter | #61 | #10 | -| P1-002 | done | Phase 1 | Auth middleware — BetterAuth session validation | #71 | #11 | -| P1-003 | done | Phase 1 | @mosaic/brain — migrate from v0, PG backend | #71 | #12 | -| P1-004 | done | Phase 1 | @mosaic/queue — migrate from v0 | #71 | #13 | -| P1-005 | done | Phase 1 | Gateway routes — conversations CRUD + messages | #72 | #14 | -| P1-006 | done | Phase 1 | Gateway routes — tasks, projects, missions CRUD | #72 | #15 | -| P1-007 | done | Phase 1 | WebSocket server — chat streaming | #61 | #16 | -| P1-008 | done | Phase 1 | Basic agent dispatch — single provider | #61 | #17 | -| P1-009 | done | Phase 1 | Verify Phase 1 — gateway functional, API tested | #73 | #18 | -| P2-001 | done | Phase 2 | @mosaic/agent — Pi SDK integration + agent pool | #61 | #19 | -| P2-002 | done | Phase 2 | Multi-provider support — Anthropic + Ollama | #74 | #20 | -| P2-003 | done | Phase 2 | Agent routing engine — cost/capability matrix | #75 | #21 | -| P2-004 | done | Phase 2 | Tool registration — brain, queue, memory tools | #76 | #22 | -| P2-005 | done | Phase 2 | @mosaic/coord — migrate from v0, gateway integration | #77 | #23 | -| P2-006 | done | Phase 2 | Agent session management — tmux + monitoring | #78 | #24 | -| P2-007 | done | Phase 2 | Verify Phase 2 — multi-provider routing works | #79 | #25 | -| P3-001 | done | Phase 3 | apps/web scaffold — Next.js 16 + BetterAuth + Tailwind | #82 | #26 | -| P3-002 | done | Phase 3 | Auth pages — login, registration, SSO redirect | #83 | #27 | -| P3-003 | done | Phase 3 | Chat UI — conversations, messages, streaming | #84 | #28 | -| P3-004 | done | Phase 3 | Task management — list view + kanban board | #86 | #29 | -| P3-005 | done | Phase 3 | Project & mission views — dashboard + PRD viewer | #87 | #30 | -| P3-006 | done | Phase 3 | Settings — provider config, profile, integrations | #88 | #31 | -| P3-007 | done | Phase 3 | Admin panel — user management, RBAC | #89 | #32 | -| P3-008 | done | Phase 3 | Verify Phase 3 — web dashboard functional E2E | — | #33 | -| P4-001 | done | Phase 4 | @mosaic/memory — preference + insight stores | — | #34 | -| P4-002 | done | Phase 4 | Semantic search — pgvector embeddings + search API | — | #35 | -| P4-003 | done | Phase 4 | @mosaic/log — log ingest, parsing, tiered storage | — | #36 | -| P4-004 | done | Phase 4 | Summarization pipeline — Haiku-tier LLM + cron | — | #37 | -| P4-005 | done | Phase 4 | Memory integration — inject into agent sessions | — | #38 | -| P4-006 | done | Phase 4 | Skill management — catalog, install, config | — | #39 | -| P4-007 | done | Phase 4 | Verify Phase 4 — memory + log pipeline working | — | #40 | -| P5-001 | done | Phase 5 | Plugin host — gateway plugin loading + channel interface | — | #41 | -| P5-002 | done | Phase 5 | @mosaic/discord-plugin — Discord bot + channel plugin | #61 | #42 | -| P5-003 | done | Phase 5 | @mosaic/telegram-plugin — Telegraf bot + channel plugin | — | #43 | -| P5-004 | done | Phase 5 | SSO — Authentik OIDC adapter end-to-end | — | #44 | -| P5-005 | done | Phase 5 | Verify Phase 5 — Discord + Telegram + SSO working | #99 | #45 | -| P6-001 | done | Phase 6 | @mosaic/cli — unified CLI binary + subcommands | #104 | #46 | -| P6-002 | done | Phase 6 | @mosaic/prdy — migrate PRD wizard from v0 | #101 | #47 | -| P6-003 | done | Phase 6 | @mosaic/quality-rails — migrate scaffolder from v0 | #100 | #48 | -| P6-004 | done | Phase 6 | @mosaic/mosaic — install wizard for v1 | #103 | #49 | -| P6-005 | done | Phase 6 | Pi TUI integration — mosaic tui | #61 | #50 | -| P6-006 | done | Phase 6 | Verify Phase 6 — CLI functional, all subcommands | — | #51 | -| P7-001 | not-started | Phase 7 | MCP endpoint hardening — streamable HTTP transport | — | #52 | -| P7-002 | not-started | Phase 7 | Additional SSO providers — WorkOS + Keycloak | — | #53 | -| P7-003 | not-started | Phase 7 | Additional LLM providers — Codex, Z.ai, LM Studio, llama.cpp | — | #54 | -| P7-004 | not-started | Phase 7 | E2E test suite — Playwright critical paths | — | #55 | -| P7-005 | not-started | Phase 7 | Performance optimization | — | #56 | -| P7-006 | not-started | Phase 7 | Documentation — user guide, admin guide, dev guide | — | #57 | -| P7-007 | not-started | Phase 7 | Bare-metal deployment docs + .env.example | — | #58 | -| P7-008 | not-started | Phase 7 | Beta release gate — v0.1.0 tag | — | #59 | -| FIX-01 | done | Backlog | Call piSession.dispose() in AgentService.destroySession | #78 | #62 | -| FIX-02 | not-started | Backlog | TUI agent:end — fix React state updater side-effect | — | #63 | -| FIX-03 | not-started | Backlog | Agent session — cwd sandbox, system prompt, tool restrictions | — | #64 | +| id | status | milestone | description | pr | notes | +| ------ | ----------- | --------- | ------------------------------------------------------------------- | ---- | ----- | +| P0-001 | done | Phase 0 | Scaffold monorepo | #60 | #1 | +| P0-002 | done | Phase 0 | @mosaic/types — migrate and extend shared types | #65 | #2 | +| P0-003 | done | Phase 0 | @mosaic/db — Drizzle schema and PG connection | #67 | #3 | +| P0-004 | done | Phase 0 | @mosaic/auth — BetterAuth email/password setup | #68 | #4 | +| P0-005 | done | Phase 0 | Docker Compose — PG 17, Valkey 8, SigNoz | #65 | #5 | +| P0-006 | done | Phase 0 | OTEL foundation — OpenTelemetry SDK setup | #65 | #6 | +| P0-007 | done | Phase 0 | CI pipeline — Woodpecker config | #69 | #7 | +| P0-008 | done | Phase 0 | Project docs — AGENTS.md, CLAUDE.md, README | #69 | #8 | +| P0-009 | done | Phase 0 | Verify Phase 0 — CI green, all packages build | #70 | #9 | +| P1-001 | done | Phase 1 | apps/gateway scaffold — NestJS + Fastify adapter | #61 | #10 | +| P1-002 | done | Phase 1 | Auth middleware — BetterAuth session validation | #71 | #11 | +| P1-003 | done | Phase 1 | @mosaic/brain — migrate from v0, PG backend | #71 | #12 | +| P1-004 | done | Phase 1 | @mosaic/queue — migrate from v0 | #71 | #13 | +| P1-005 | done | Phase 1 | Gateway routes — conversations CRUD + messages | #72 | #14 | +| P1-006 | done | Phase 1 | Gateway routes — tasks, projects, missions CRUD | #72 | #15 | +| P1-007 | done | Phase 1 | WebSocket server — chat streaming | #61 | #16 | +| P1-008 | done | Phase 1 | Basic agent dispatch — single provider | #61 | #17 | +| P1-009 | done | Phase 1 | Verify Phase 1 — gateway functional, API tested | #73 | #18 | +| P2-001 | done | Phase 2 | @mosaic/agent — Pi SDK integration + agent pool | #61 | #19 | +| P2-002 | done | Phase 2 | Multi-provider support — Anthropic + Ollama | #74 | #20 | +| P2-003 | done | Phase 2 | Agent routing engine — cost/capability matrix | #75 | #21 | +| P2-004 | done | Phase 2 | Tool registration — brain, queue, memory tools | #76 | #22 | +| P2-005 | done | Phase 2 | @mosaic/coord — migrate from v0, gateway integration | #77 | #23 | +| P2-006 | done | Phase 2 | Agent session management — tmux + monitoring | #78 | #24 | +| P2-007 | done | Phase 2 | Verify Phase 2 — multi-provider routing works | #79 | #25 | +| P3-001 | done | Phase 3 | apps/web scaffold — Next.js 16 + BetterAuth + Tailwind | #82 | #26 | +| P3-002 | done | Phase 3 | Auth pages — login, registration, SSO redirect | #83 | #27 | +| P3-003 | done | Phase 3 | Chat UI — conversations, messages, streaming | #84 | #28 | +| P3-004 | done | Phase 3 | Task management — list view + kanban board | #86 | #29 | +| P3-005 | done | Phase 3 | Project & mission views — dashboard + PRD viewer | #87 | #30 | +| P3-006 | done | Phase 3 | Settings — provider config, profile, integrations | #88 | #31 | +| P3-007 | done | Phase 3 | Admin panel — user management, RBAC | #89 | #32 | +| P3-008 | done | Phase 3 | Verify Phase 3 — web dashboard functional E2E | — | #33 | +| P4-001 | done | Phase 4 | @mosaic/memory — preference + insight stores | — | #34 | +| P4-002 | done | Phase 4 | Semantic search — pgvector embeddings + search API | — | #35 | +| P4-003 | done | Phase 4 | @mosaic/log — log ingest, parsing, tiered storage | — | #36 | +| P4-004 | done | Phase 4 | Summarization pipeline — Haiku-tier LLM + cron | — | #37 | +| P4-005 | done | Phase 4 | Memory integration — inject into agent sessions | — | #38 | +| P4-006 | done | Phase 4 | Skill management — catalog, install, config | — | #39 | +| P4-007 | done | Phase 4 | Verify Phase 4 — memory + log pipeline working | — | #40 | +| P5-001 | done | Phase 5 | Plugin host — gateway plugin loading + channel interface | — | #41 | +| P5-002 | done | Phase 5 | @mosaic/discord-plugin — Discord bot + channel plugin | #61 | #42 | +| P5-003 | done | Phase 5 | @mosaic/telegram-plugin — Telegraf bot + channel plugin | — | #43 | +| P5-004 | done | Phase 5 | SSO — Authentik OIDC adapter end-to-end | — | #44 | +| P5-005 | done | Phase 5 | Verify Phase 5 — Discord + Telegram + SSO working | #99 | #45 | +| P6-001 | done | Phase 6 | @mosaic/cli — unified CLI binary + subcommands | #104 | #46 | +| P6-002 | done | Phase 6 | @mosaic/prdy — migrate PRD wizard from v0 | #101 | #47 | +| P6-003 | done | Phase 6 | @mosaic/quality-rails — migrate scaffolder from v0 | #100 | #48 | +| P6-004 | done | Phase 6 | @mosaic/mosaic — install wizard for v1 | #103 | #49 | +| P6-005 | done | Phase 6 | Pi TUI integration — mosaic tui | #61 | #50 | +| P6-006 | done | Phase 6 | Verify Phase 6 — CLI functional, all subcommands | — | #51 | +| P7-001 | not-started | Phase 7 | MCP endpoint hardening — streamable HTTP transport | — | #52 | +| P7-004 | not-started | Phase 7 | E2E test suite — Playwright critical paths | — | #55 | +| P7-006 | not-started | Phase 7 | Documentation — user guide, admin guide, dev guide | — | #57 | +| P7-007 | not-started | Phase 7 | Bare-metal deployment docs + .env.example | — | #58 | +| P7-009 | not-started | Phase 7 | Web chat — WebSocket integration, streaming, conversation switching | — | — | +| P7-010 | not-started | Phase 7 | Web conversation management — list, search, rename, delete, archive | — | — | +| P7-011 | not-started | Phase 7 | Web project detail views — missions, tasks, PRDs, dashboards | — | — | +| P7-012 | not-started | Phase 7 | Web provider management UI — add, configure, test LLM providers | — | — | +| P7-013 | not-started | Phase 7 | Web settings persistence — profile, preferences save to DB | — | — | +| P7-014 | not-started | Phase 7 | Web admin panel — user CRUD, role assignment, system health | — | — | +| P7-015 | not-started | Phase 7 | Agent tool expansion — file ops, git, shell exec, web fetch | — | — | +| P7-016 | not-started | Phase 7 | MCP client — gateway connects to external MCP servers as tools | — | — | +| P7-017 | not-started | Phase 7 | Agent skill invocation — load and execute skills from catalog | — | — | +| P7-018 | not-started | Phase 7 | CLI model/provider switching — --model, --provider, /model in TUI | — | — | +| P7-019 | not-started | Phase 7 | CLI session management — list, resume, destroy sessions | — | — | +| P7-020 | not-started | Phase 7 | Coord DB migration — project-scoped missions, multi-tenant RBAC | — | — | +| P7-021 | not-started | Phase 7 | Verify Phase 7 — feature-complete platform E2E | — | — | +| P8-001 | not-started | Phase 8 | Additional SSO providers — WorkOS + Keycloak | — | #53 | +| P8-002 | not-started | Phase 8 | Additional LLM providers — Codex, Z.ai, LM Studio, llama.cpp | — | #54 | +| P8-003 | not-started | Phase 8 | Performance optimization | — | #56 | +| P8-004 | not-started | Phase 8 | Beta release gate — v0.1.0 tag | — | #59 | +| FIX-01 | done | Backlog | Call piSession.dispose() in AgentService.destroySession | #78 | #62 | +| FIX-02 | not-started | Backlog | TUI agent:end — fix React state updater side-effect | — | #63 | +| FIX-03 | not-started | Backlog | Agent session — cwd sandbox, system prompt, tool restrictions | — | #64 | diff --git a/docs/scratchpads/mvp-20260312.md b/docs/scratchpads/mvp-20260312.md index 2a1b36c..7b3944e 100644 --- a/docs/scratchpads/mvp-20260312.md +++ b/docs/scratchpads/mvp-20260312.md @@ -101,6 +101,36 @@ User confirmed: start the planning gate. - BUG-1: PLUGIN_REGISTRY circular import fixed via plugin.tokens.ts. PR #102. - BUG-2: AuthStorage.create() → .inMemory() to prevent silent exit. PR #102. +### Session 11 (continued) — E2E testing + bug fixes + Phase 7 rescope + +**Bug fixes merged during E2E testing (PRs #107-#117):** + +- CI: from_secret syntax for Woodpecker v2 (#107) +- Gateway: dotenv loading from monorepo root (#108) +- Gateway: missing @Inject() decorators causing silent hang (#109) +- Gateway: CORS + memory userId + pgvector auto-init (#110) +- Auth: BetterAuth trustedOrigins for web dashboard (#111) +- Auth: CORS headers on raw BetterAuth HTTP handler (#112) +- Husky: removed deprecated v9 shim lines (#113) +- CLI: login command + authenticated TUI sessions (#114) +- CLI: Origin header on auth requests (#115) +- Agent: Ollama provider registration with openai-completions API (#116, #117) + +**E2E testing results:** + +- Web UI: login works, projects list, chats list (but chat doesn't function) +- TUI: authenticated connection works, agent responds via Ollama llama3.2 +- Agent tools: brain, coord, memory tools confirmed working +- Gateway: all routes mapped, providers register correctly + +**Phase 7 rescoped (Jason directed):** + +- Phase 7 renamed from "Polish & Beta" to "Feature Completion (v0.0.8)" +- Added 13 new tasks (P7-009 through P7-021): web UI, agent tools, CLI, coord architecture +- P7-002 (extra SSO), P7-003 (extra LLM), P7-005 (perf), P7-008 (v0.1.0 tag) moved to Phase 8 +- Phase 8 added as "Polish & Beta (v0.1.0)" +- Reason: platform isn't feature-complete enough for beta — web UI is scaffolded but non-functional for real use, agent tooling is minimal, CLI needs model switching + ## Open Questions (none at this time)