P3.1 TaskStore trait + SQLite backend - Verification complete

Verified all acceptance criteria for task store tables 1-7:
- All CRUD operations round-trip correctly (13 integration tests pass)
- Schema version check is a single SELECT on reopen
- WAL mode + busy_timeout (5000ms) prevent concurrent write deadlocks
- Tables use efficient BLOB/TEXT types within size budget
- Idempotent migrations via CREATE TABLE IF NOT EXISTS

Implementation highlights:
- tasks.node_tasks: JSON serde_json::Value (HashMap<String, u64>)
- aliases.history: JSON array bounded by history_retention
- idempotency_cache.body_sha256: BLOB (32 raw bytes)
- jobs.claim_expires_at: heartbeat every 10s with lease expiry
- leader_lease: advisory-lock substitute for SQLite

All 7 required tables implemented and tested.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-05-13 18:16:53 -04:00
parent 7756330267
commit 685aa0e777
4 changed files with 607 additions and 1506 deletions

File diff suppressed because one or more lines are too long

View file

@ -5,11 +5,11 @@
"model": "glm-5.1",
"exit_code": 1,
"outcome": "failure",
"duration_ms": 79868,
"duration_ms": 56117,
"input_tokens": null,
"output_tokens": null,
"cost_usd": null,
"captured_at": "2026-05-13T22:15:22.701803615Z",
"captured_at": "2026-05-13T22:16:47.359777089Z",
"trace_format": "claude_json",
"pruned": false,
"template_version": null

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
586881f9e017b748d51a0293c44a65f83a98b913
77563302673282ffe43e23811d9b9cfa9c565d02