Tracking issue for ADR-0057 (system data lifecycle & retention) phases P1–P4 — docs/adr/0057-system-data-lifecycle-and-retention.md §4 Rollout. The roadmap currently lives only in the ADR document with no claimable work item; this issue is the entry point.
Background
Origin incident: a dev dev.db reached 260 MB, ~76 % of row growth being platform-produced telemetry with no retention contract (audit + activity double-writes) plus auto_vacuum=NONE. P0 (stop-the-bleed) shipped with the ADR (#2079): SKIP_OBJECTS exclusion for operational objects, SQLite auto_vacuum=INCREMENTAL default, showcase digest 20s→60s. P0 removes the acute growth but nothing is bounded by construction yet — that's P1+.
Phases (each independently shippable)
Why now
The v2 permission launch (ADR-0090, #2696→closed) added more system tables with unbounded append semantics (sys_automation_run run history, audience-binding suggestions, explain traces if ever persisted). Every new ledger-shaped table added without a lifecycleClass deepens the migration debt P1 is designed to cap. Benchmarks in the ADR-0090 follow-up parking lot (#2776 item 3, 100k-user × 10M-record) will also be unrunnable without bounded telemetry.
References
🤖 Generated with Claude Code
Tracking issue for ADR-0057 (system data lifecycle & retention) phases P1–P4 —
docs/adr/0057-system-data-lifecycle-and-retention.md§4 Rollout. The roadmap currently lives only in the ADR document with no claimable work item; this issue is the entry point.Background
Origin incident: a dev
dev.dbreached 260 MB, ~76 % of row growth being platform-produced telemetry with no retention contract (audit + activity double-writes) plusauto_vacuum=NONE. P0 (stop-the-bleed) shipped with the ADR (#2079):SKIP_OBJECTSexclusion for operational objects, SQLiteauto_vacuum=INCREMENTALdefault, showcase digest 20s→60s. P0 removes the acute growth but nothing is bounded by construction yet — that's P1+.Phases (each independently shippable)
lifecycleClass+lifecyclespec shapes;LifecycleServiceReaper; spec-liveness enforcement for the new properties; dogfood growth gate (fail CI when a booted example app's DB grows past budget)DROP) for high-frequency telemetry tables; transient-class TTL expiryWhy now
The v2 permission launch (ADR-0090, #2696→closed) added more system tables with unbounded append semantics (
sys_automation_runrun history, audience-binding suggestions, explain traces if ever persisted). Every new ledger-shaped table added without alifecycleClassdeepens the migration debt P1 is designed to cap. Benchmarks in the ADR-0090 follow-up parking lot (#2776 item 3, 100k-user × 10M-record) will also be unrunnable without bounded telemetry.References
docs/adr/0057-system-data-lifecycle-and-retention.md(P0 shipped there; P1–P4 "proposed")🤖 Generated with Claude Code