Introduce a provider-agnostic continuation request queue, worker, and optional hasPendingBackgroundWork idle pin so adapters can surface post-settle native wake traffic as first-class runs. No adapter offers continuations here; the per-provider specialty commits wire attach mode. Also fix shared run event ingestion dropping late background item completions. The per-run provider event fiber stopped as soon as the root turn terminalized and no child provider turns or subagent rows remained active. Background-capable turn items (background commands, monitors, subagent rows) that complete after root settlement then lost their trailing turn_item.updated: the projection kept the item running forever even when the underlying work (and any wake) succeeded. Track non-terminal command_execution, dynamic_tool, and subagent turn items owned by the run or an owned child thread, and keep ingesting until they terminalize, gated on the root terminal status being completed so interrupted and failed runs do not pin the stream open. Repro evidence: Codex emits subagent.updated(completed) before the trailing turn_item.updated(completed), so post-settle subagent items stuck at running in the UI; background command items never completed in the codex-background-exec-wake projection even though the wake run fired. The same stuck-running signature appears on the Claude background Bash wake and Grok monitor paths, which reuse this shared ingestion loop.
9 files changedLine totals unavailable