Real ProjectionStoreV2.getThreadSnapshotWindow synthetic benchmark Main ab6be13d43; head e5d01a0568b6ee26b455cc64d3ff94198cb84cd7 Linux x64 / Node v24.21.0 / SQLite 3.53.4 10,000 completed turns; 76-row window; 2 KiB message and turn-item text 5 warmups, 21 measured serial calls; in-memory SQLite; no statistics main median: 52.094 ms; head median: 15.793 ms; speedup: 3.30x first-call after seeding main/head: 63.884 / 25.724 ms byte-equivalent: True; bytes: 809500; SHA256: bcdf8ef94aafddcc1ba7fc8a70d69b4ef0eb730eb383d29fd252a78752835857 delegated recovery median main/head: 9.902 / 0.070 ms Head paired index ablations (with -> without median, 7 calls each; observational): orchestration_v2_projection_run_attempts_live_idx: 10.451 -> 16.844 ms orchestration_v2_projection_provider_turns_live_idx: 10.327 -> 14.963 ms orchestration_v2_projection_provider_turns_node_idx: 10.121 -> 16.685 ms orchestration_v2_projection_checkpoints_live_idx: 10.122 -> 12.640 ms orchestration_v2_projection_checkpoints_run_idx: 10.006 -> 18.176 ms orchestration_v2_projection_checkpoints_node_idx: 10.213 -> 17.662 ms Migration 65 build after populated schema 64: 38.307 ms; malformed legacy JSON tolerated LIMIT: In-memory headless real ProjectionStoreV2 service, no transport/UI/provider LIMIT: Shared host, no CPU affinity; warm medians vary with scheduling and GC LIMIT: First-call pages were seeded in the same process, so this is not a cold-disk measurement LIMIT: Index construction measured directly in a SQL transaction; migration ledger/retry checked by existing focused suites