miroir/crates
jedarden e8456e1760 P3.1 TaskStore trait + SQLite backend (tables 1-7) - Complete
- TaskStore trait defined in miroir-core with all CRUD operations for tables 1-7
- SQLite backend implementation with:
  - tasks (table 1): Miroir task registry with JSON node_tasks
  - node_settings_version (table 2): per-(index, node) settings freshness
  - aliases (table 3): single and multi-target aliases with history
  - sessions (table 4): read-your-writes session pins
  - idempotency_cache (table 5): write deduplication with BLOB SHA256
  - jobs (table 6): background jobs with claim/heartbeat semantics
  - leader_lease (table 7): singleton-coordinator lease

- Idempotent schema initialization with version tracking
- WAL mode enabled for concurrent write safety (busy_timeout=5000ms)
- All 14 CRUD tests passing

Acceptance criteria met:
 cargo test -p miroir-core task_store::sqlite - every CRUD round-trips correctly
 Opening existing DB skips migrations (schema_version check)
 Concurrent writes don't deadlock (WAL + busy_timeout)
 Table schema fits within 100 MB task registry budget

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 18:37:12 -04:00
..
miroir-core P3.1 TaskStore trait + SQLite backend (tables 1-7) - Complete 2026-05-13 18:37:12 -04:00
miroir-ctl Phase 0 (miroir-qon): Add serial_test annotation to fix test race condition 2026-05-09 02:19:32 -04:00
miroir-proxy Fix typo in primary key header name (X-Meiroil → X-Miroir) 2026-05-09 15:36:41 -04:00