From cfdd2b679c36e12ea664c6f3b67dee3e42060426 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sat, 21 Mar 2026 21:21:20 +0000 Subject: [PATCH] =?UTF-8?q?chore:=20M1=20+=20M2=20milestones=20complete=20?= =?UTF-8?q?=E2=80=94=2018/65=20tasks=20done=20(#307)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jason Woltje Co-committed-by: Jason Woltje --- docs/MISSION-MANIFEST.md | 22 +++++++++++----------- docs/TASKS.md | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/MISSION-MANIFEST.md b/docs/MISSION-MANIFEST.md index a4fd9af..cd21ea3 100644 --- a/docs/MISSION-MANIFEST.md +++ b/docs/MISSION-MANIFEST.md @@ -8,8 +8,8 @@ **ID:** harness-20260321 **Statement:** Transform Mosaic Stack from a functional demo into a real multi-provider, task-routing AI harness. Persist all conversations, integrate frontier LLM providers (Anthropic, OpenAI, OpenRouter, Z.ai, Ollama), build granular task-aware agent routing, harden agent sessions, replace cron with BullMQ, and design the channel protocol for future Matrix/remote integration. **Phase:** Execution -**Current Milestone:** M1: Conversation Persistence & Context -**Progress:** 0 / 7 milestones +**Current Milestone:** M3: Provider Integration +**Progress:** 2 / 7 milestones **Status:** active **Last Updated:** 2026-03-21 UTC @@ -28,15 +28,15 @@ ## Milestones -| # | ID | Name | Status | Branch | Issue | Started | Completed | -| --- | ------ | ---------------------------------- | ----------- | ------ | --------- | ------- | --------- | -| 1 | ms-166 | Conversation Persistence & Context | not-started | — | #224–#231 | — | — | -| 2 | ms-167 | Security & Isolation | not-started | — | #232–#239 | — | — | -| 3 | ms-168 | Provider Integration | not-started | — | #240–#251 | — | — | -| 4 | ms-169 | Agent Routing Engine | not-started | — | #252–#264 | — | — | -| 5 | ms-170 | Agent Session Hardening | not-started | — | #265–#272 | — | — | -| 6 | ms-171 | Job Queue Foundation | not-started | — | #273–#280 | — | — | -| 7 | ms-172 | Channel Protocol Design | not-started | — | #281–#288 | — | — | +| # | ID | Name | Status | Branch | Issue | Started | Completed | +| --- | ------ | ---------------------------------- | ----------- | ------ | --------- | ---------- | ---------- | +| 1 | ms-166 | Conversation Persistence & Context | done | — | #224–#231 | 2026-03-21 | 2026-03-21 | +| 2 | ms-167 | Security & Isolation | done | — | #232–#239 | 2026-03-21 | 2026-03-21 | +| 3 | ms-168 | Provider Integration | in-progress | — | #240–#251 | 2026-03-21 | — | +| 4 | ms-169 | Agent Routing Engine | not-started | — | #252–#264 | — | — | +| 5 | ms-170 | Agent Session Hardening | not-started | — | #265–#272 | — | — | +| 6 | ms-171 | Job Queue Foundation | not-started | — | #273–#280 | — | — | +| 7 | ms-172 | Channel Protocol Design | not-started | — | #281–#288 | — | — | ## Deployment diff --git a/docs/TASKS.md b/docs/TASKS.md index 28b30ac..ad17572 100644 --- a/docs/TASKS.md +++ b/docs/TASKS.md @@ -14,14 +14,14 @@ | M1-005 | done | sonnet | M1: Persistence | Context window management: summarize older messages when history exceeds 80% of model context | #301 | #228 closed | | M1-006 | done | sonnet | M1: Persistence | Conversation search: full-text search on messages table via /api/conversations/search | #299 | #229 closed | | M1-007 | done | sonnet | M1: Persistence | TUI: /history command to display conversation message count and context usage | #297 | #230 closed | -| M1-008 | not-started | haiku | M1: Persistence | Verify: send messages → kill TUI → resume with -c → agent references prior context | — | #231 | +| M1-008 | done | sonnet | M1: Persistence | Verify: send messages → kill TUI → resume with -c → agent references prior context | #304 | #231 closed — 20 integration tests | | M2-001 | done | sonnet | M2: Security | Audit InsightsRepo: add userId filter to searchByEmbedding() vector search | #290 | #232 closed | | M2-002 | done | sonnet | M2: Security | Audit InsightsRepo: add userId filter to findByUser(), decayOldInsights() | #290 | #233 closed | | M2-003 | done | sonnet | M2: Security | Audit PreferencesRepo: verify all queries filter by userId | #294 | #234 closed — already scoped | | M2-004 | done | sonnet | M2: Security | Audit agent memory tools: verify memory*search, memory_save*_, memory*get*_ scope to session user | #294 | #235 closed — FIXED userId injection | | M2-005 | done | sonnet | M2: Security | Audit ConversationsRepo: verify ownership check on findById, update, delete, addMessage, findMessages | #293 | #236 closed | | M2-006 | done | sonnet | M2: Security | Audit AgentsRepo: verify findAccessible() returns only user's agents + system agents | #293 | #237 closed | -| M2-007 | not-started | sonnet | M2: Security | Integration test: create two users, populate data, verify cross-user isolation on every query path | — | #238 TDD | +| M2-007 | done | sonnet | M2: Security | Integration test: create two users, populate data, verify cross-user isolation on every query path | #305 | #238 closed — 28 integration tests | | M2-008 | done | sonnet | M2: Security | Audit Valkey keys: verify session keys include userId or are not enumerable across users | #298 | #239 closed — SCAN replaces KEYS, /gc admin-only | | M3-001 | not-started | opus | M3: Providers | Refactor ProviderService into IProviderAdapter pattern: register(), listModels(), healthCheck(), createClient() | — | #240 Verify Pi SDK compat | | M3-002 | not-started | sonnet | M3: Providers | Anthropic adapter: @anthropic-ai/sdk, Claude Sonnet 4.6 + Opus 4.6 + Haiku 4.5, OAuth + API key | — | #241 | @@ -30,7 +30,7 @@ | M3-005 | not-started | sonnet | M3: Providers | Z.ai GLM adapter: GLM-5, API key, research API format | — | #244 | | M3-006 | not-started | sonnet | M3: Providers | Ollama adapter: refactor existing integration into adapter pattern, add embedding model support | — | #245 | | M3-007 | not-started | sonnet | M3: Providers | Provider health check: periodic probe, configurable interval, status per provider, /api/providers/health | — | #246 | -| M3-008 | not-started | sonnet | M3: Providers | Model capability matrix: per-model metadata (tier, context window, tool support, vision, streaming, embedding) | — | #247 | +| M3-008 | done | sonnet | M3: Providers | Model capability matrix: per-model metadata (tier, context window, tool support, vision, streaming, embedding) | #303 | #247 closed | | M3-009 | not-started | sonnet | M3: Providers | Refactor EmbeddingService: provider-agnostic interface, Ollama default (nomic-embed-text or mxbai-embed-large) | — | #248 Dim migration | | M3-010 | not-started | sonnet | M3: Providers | OAuth token storage: persist provider tokens per user in DB (encrypted), refresh flow | — | #249 | | M3-011 | not-started | sonnet | M3: Providers | Provider config UI support: /api/providers CRUD for user-scoped provider credentials | — | #250 |