# SQLite persistence layer for Console v2

**Captured:** 2026-05-07
**Driver:** Phase 7 — CP-A foundations rejection memory (Law 14)

## Decision
REJECTED

## Why rejected

Console v2 uses filesystem-as-DB. SQLite was specced in Spec A (`recoil/pipeline/BUILD_SPEC_CONSOLE_V2.md`, 4755 lines) but never built. The filesystem layout serves the current scale comfortably — roughly 5 active projects, fewer than 100 shots per project, well under what cold-cache directory walks complete in tens of milliseconds. Spec A's SQLite proposal is a 4755-line architecture rebuild masquerading as a "perf optimization": it would reshape every read path, every write path, the proposal lifecycle, and the SSE bus topology.

The debug surface for a solo dev is intentionally JT-readable. `cat`, `ls`, `jq`, and a text editor are the inspection tools; SQLite's binary file plus an interactive shell is a worse fit for the way JT actually works. ADR-0011 locks Hybrid A as canonical.

Revisit only when filesystem-scan latency exceeds 500ms per hierarchy walk — measured on a real project, not guessed from a hypothetical scale-up.

## Cited by
- ADR-0011: Console v2 Hybrid A canonical
- BUILD_SPEC §3, §7 (Phase 7 — CP-A rejection memory)

## Status
- [x] Substantive rejection (Law 14 — anti-pattern memory)
