miroir/notes
jedarden ba70cd25c0 P3: Complete Phase 3 — Task Registry + Persistence (SQLite + Redis)
Implements all 14 tables from plan §4 with dual backend support.

## Implementation

### TaskStore Trait (502 lines)
- Complete API covering all 14 tables
- Runtime backend selection (sqlite | redis)

### SQLite Backend (2,536 lines)
- rusqlite-based with WAL mode
- Idempotent migrations (schema_versions table)
- 36 tests passing (proptest + integration)

### Redis Backend (3,884 lines)
- Full TaskStore trait implementation
- Uses `_index` sets for O(1) list queries (no SCAN)
- 33 integration tests (testcontainers)

### Schema Files
- 001_initial.sql: Tables 1-7
- 002_feature_tables.sql: Tables 8-14
- 003_task_registry_fields.sql: No-op marker

### Validation
- Helm values.schema.json enforces HA constraints:
  - replicas > 1 requires backend: redis
  - HPA requires replicas >= 2 + redis
- Verified with helm lint

### Documentation
- REDIS_MEMORY_ACCOUNTING.md: Complete sizing guide

## Definition of Done — Complete
 rusqlite store with idempotent table initialization
 Redis store mirrors TaskStore API
 Migrations/versioning with schema_version row
 Property tests (proptest) for SQLite
 Restart resilience integration tests
 Redis integration tests (testcontainers)
 `_index` pattern for list queries
 Helm schema enforces HA requirements
 Redis memory accounting (plan §14.7)

Total: 6,922 lines of production code + tests

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 17:14:29 -04:00
..
miroir-mkk.md P4: Phase 4 topology operations verification — all chaos tests pass 2026-05-01 10:52:49 -04:00
miroir-r3j-phase3-completion-summary.md P3: Complete Phase 3 — Task Registry + Persistence (SQLite + Redis) 2026-05-02 17:14:29 -04:00
miroir-r3j-phase3-completion.md P3: Phase 3 Task Registry + Persistence — COMPLETE 2026-05-02 16:50:42 -04:00