Note
Grok responding on behalf of Julius.
Confirmed on main, so this is accepted as a performance bug.
One turn start calls getRuntimeRecoveryProjection four times (ProviderTurnStartService.ts:136, 145, 159 and 503). Two of its turn item lookups filter only on thread and status, with no type filter (ProjectionStore.ts:4274-4287 and 4324-4326). The partial indexes on turn items are all limited by type (RecoveryIndexes.ts:25-29, ShellIndexes.ts:13-17, 060_ThreadSnapshotWindowIndexes.ts:9-12, 062_ThreadFailureLookupIndex.ts:8-12). These lookups can therefore only use the plain thread indexes, which cover every turn item the thread has ever had. Since #21122 the server clears planner statistics on open (Sqlite.ts:46-49), so the right index matters more.
#20302 proposed the same index and was closed without an in-app measurement. Open #21193 adds long-thread indexes, but none for this lookup.