Files
stack/docs/TASKS.md
2026-04-02 20:44:10 -05:00

7.7 KiB

Tasks — Storage Abstraction Retrofit

Single-writer: orchestrator only. Workers read but never modify.

Mission: Decouple gateway from hardcoded Postgres/Valkey backends. Introduce interface-driven middleware so the gateway is backend-agnostic. Default to local tier (SQLite + JSON) for zero-dependency installs.

agent column values: codex | sonnet | haiku | glm-5 | opus | (auto/default)

id status description issue repo branch depends_on blocks agent started_at completed_at estimate used notes
SA-P1-001 in-progress Define QueueAdapter interface in packages/queue/src/types.ts — enqueue, dequeue, length, publish, subscribe, close queue feat/storage-abstraction SA-P1-004 codex 2026-04-02T20:20 5K Worker: brisk-summit
SA-P1-002 not-started Define StorageAdapter interface in packages/storage/src/types.ts — CRUD, query, find, transaction, close storage feat/storage-abstraction SA-P1-004 codex 8K
SA-P1-003 not-started Define MemoryAdapter interface in packages/memory/src/types.ts — preferences, insights, search, embedder support memory feat/storage-abstraction SA-P1-004 codex 5K
SA-P1-004 not-started Create adapter factory pattern + config types: createQueue(config), createStorage(config), createMemory(config) queue,storage,memory feat/storage-abstraction SA-P1-001,SA-P1-002,SA-P1-003 SA-P2-001 codex 8K
SA-P2-001 not-started Refactor @mosaic/queue: move queue.ts → adapters/bullmq.ts, implement QueueAdapter interface, export factory queue feat/storage-abstraction SA-P1-004 SA-P2-004 codex 12K
SA-P2-002 not-started Create @mosaic/storage package: move @mosaic/db Drizzle logic → adapters/postgres.ts, implement StorageAdapter interface storage feat/storage-abstraction SA-P1-004 SA-P2-004 codex 15K
SA-P2-003 not-started Refactor @mosaic/memory: extract pgvector logic → adapters/pgvector.ts, implement MemoryAdapter interface memory feat/storage-abstraction SA-P1-004 SA-P2-004 codex 12K
SA-P2-004 not-started Update gateway database.module.ts, queue.module.ts, memory.module.ts to use factories + NestJS DI tokens gateway feat/storage-abstraction SA-P2-001,SA-P2-002,SA-P2-003 SA-P2-005 codex 15K
SA-P2-005 not-started Verify Phase 2: existing Postgres/Valkey behavior unchanged — all existing tests pass, typecheck clean gateway feat/storage-abstraction SA-P2-004 SA-P3-001 codex 10K
SA-P3-001 not-started Implement local queue adapter: in-process Map + JSON file persistence in adapters/local.ts queue feat/storage-abstraction SA-P2-005 SA-P3-004 codex 10K
SA-P3-002 not-started Implement SQLite storage adapter: better-sqlite3 with schema mirroring Drizzle tables, in adapters/sqlite.ts storage feat/storage-abstraction SA-P2-005 SA-P3-004 codex 20K
SA-P3-003 not-started Implement keyword memory adapter: TF-IDF or simple keyword matching, no vector dependency, in adapters/keyword.ts memory feat/storage-abstraction SA-P2-005 SA-P3-004 codex 12K
SA-P3-004 not-started Verify Phase 3: gateway starts with local config (no PG/Valkey), basic CRUD works, all adapter tests pass gateway feat/storage-abstraction SA-P3-001,SA-P3-002,SA-P3-003 SA-P4-001 codex 15K
SA-P4-001 not-started Add mosaic.config.ts schema + loader: storage tier selection (local/team), backend config, defaults to local config feat/storage-abstraction SA-P3-004 SA-P4-002 codex 10K
SA-P4-002 not-started CLI: mosaic gateway init — interactive wizard to generate mosaic.config.ts with tier selection cli feat/storage-abstraction SA-P4-001 SA-P4-003 codex 12K
SA-P4-003 not-started CLI: mosaic gateway start/stop/status — lifecycle management for the gateway daemon cli feat/storage-abstraction SA-P4-002 SA-P4-004 codex 12K
SA-P4-004 not-started Verify Phase 4: fresh install with mosaic gateway init && mosaic gateway start works end-to-end cli,gateway feat/storage-abstraction SA-P4-003 SA-P5-001 codex 10K
SA-P5-001 not-started Migration tooling: mosaic storage export/import for local↔postgres tier migration cli,storage feat/storage-abstraction SA-P4-004 SA-P5-002 codex 15K
SA-P5-002 not-started Docker Compose profiles: local (gateway only) vs team (gateway+pg+valkey), update docker-compose.yml infra feat/storage-abstraction SA-P5-001 SA-P5-003 codex 8K
SA-P5-003 not-started Final verification + docs: README update, architecture diagram, configuration guide docs feat/storage-abstraction SA-P5-002 codex 10K