chore: Wave 2 complete — 14/65 tasks done #302

Merged
jason.woltje merged 1 commits from chore/tasks-wave2-complete into main 2026-03-21 21:02:05 +00:00

View File

@@ -6,14 +6,14 @@
> Pipeline crons pick the cheapest capable model. Override with a specific value when a task genuinely needs it.
| id | status | agent | milestone | description | pr | notes |
| ------ | ----------- | ------ | ------------------ | --------------------------------------------------------------------------------------------------------------- | ---- | ------------------------------------ |
| ------ | ----------- | ------ | ------------------ | --------------------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------ |
| M1-001 | done | sonnet | M1: Persistence | Wire ChatGateway.handleMessage() → ConversationsRepo.addMessage() for user messages | #292 | #224 closed |
| M1-002 | done | sonnet | M1: Persistence | Wire agent event relay → ConversationsRepo.addMessage() for assistant responses (text, tool calls, thinking) | #292 | #225 closed |
| M1-003 | done | sonnet | M1: Persistence | Store message metadata: model used, provider, token counts, tool call details, timestamps | #292 | #226 closed |
| M1-004 | not-started | sonnet | M1: Persistence | On session resume, load message history from DB and inject into Pi session context | | #227 |
| M1-005 | not-started | opus | M1: Persistence | Context window management: summarize older messages when history exceeds 80% of model context | | #228 |
| M1-006 | not-started | sonnet | M1: Persistence | Conversation search: full-text search on messages table via /api/conversations/search | | #229 |
| M1-007 | not-started | sonnet | M1: Persistence | TUI: /history command to display conversation message count and context usage | | #230 |
| M1-004 | done | sonnet | M1: Persistence | On session resume, load message history from DB and inject into Pi session context | #301 | #227 closed |
| 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 |
| 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 |
@@ -22,7 +22,7 @@
| 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-008 | not-started | sonnet | M2: Security | Audit Valkey keys: verify session keys include userId or are not enumerable across users | | #239 |
| 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 |
| M3-003 | not-started | sonnet | M3: Providers | OpenAI adapter: openai SDK, Codex gpt-5.4, OAuth + API key | — | #242 |