ARCHIVED [experiment over]: An AI agent built to do Ralph loops - plan mode for planning and ralph mode for implementing.

feat(graph): atomic task claiming and FTS5 full-text search master

Task 6: Implement P1b.AC5.1, P1b.AC5.2, P1b.AC6.1, P1b.AC6.2 - claim_task(): Atomic conditional UPDATE in BEGIN IMMEDIATE transaction Returns true if status was Ready and claim succeeded, false if already claimed - search_nodes(): FTS5 MATCH query against nodes_fts table Supports filtering by project_id and node_type FTS5 sync triggers automatically maintained (no app code needed) Tests verify: - P1b.AC5.1: claim_task sets status Ready->Claimed and assigned_to atomically - P1b.AC5.2: Second claim of same task fails (already Claimed) - P1b.AC6.1: search_nodes finds nodes matching title/description via FTS5 - P1b.AC6.2: Search filters work (project_id, node_type), limit parameter respected All 7 tests passing, clippy warnings fixed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>


+373
1 changed file