Migrate task-store.ts to Drizzle (separate tasks.db client) #847

Closed
opened 2026-05-04 20:29:27 +00:00 by claude-desktop · 0 comments
Collaborator

As a maintainer, I want task-store.ts rewritten on Drizzle with its own client over tasks.db, so that task persistence + usage analytics are type-safe.

Acceptance criteria

Client

  • db/client-tasks.ts — Drizzle wrapper over getTaskDb().
  • Schema files for tasks DB tables.

Rewrite

  • All ~30 fns rewritten on Drizzle: persistTask, getTaskById, getFullTaskById, listTasksForIssue, queryConcurrentRuns, listUnresolvedInterruptedTasks, lastFinishedAtByAgent, hasRecentDispatch, listZeroOutputSuccesses, computeUsage, getIssueUsage, etc.

Tests

  • task-store.test.ts + history-contract.test.ts green.

Out of scope

  • Domain analytics (domain/analytics/) — only data layer.

References

  • apps/server/src/infrastructure/database/task-store.ts.
  • Foundation story (#839) must merge first.
**As a** maintainer, **I want** `task-store.ts` rewritten on Drizzle with its own client over `tasks.db`, **so that** task persistence + usage analytics are type-safe. ## Acceptance criteria ### Client - [ ] `db/client-tasks.ts` — Drizzle wrapper over `getTaskDb()`. - [ ] Schema files for tasks DB tables. ### Rewrite - [ ] All ~30 fns rewritten on Drizzle: `persistTask`, `getTaskById`, `getFullTaskById`, `listTasksForIssue`, `queryConcurrentRuns`, `listUnresolvedInterruptedTasks`, `lastFinishedAtByAgent`, `hasRecentDispatch`, `listZeroOutputSuccesses`, `computeUsage`, `getIssueUsage`, etc. ### Tests - [ ] `task-store.test.ts` + `history-contract.test.ts` green. ## Out of scope - Domain analytics (`domain/analytics/`) — only data layer. ## References - `apps/server/src/infrastructure/database/task-store.ts`. - Foundation story (#839) must merge first.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
charles/claude-hooks#847
No description provided.