🔄 Reliable Background-Agent Wake Routing
Background agents can now wake their parent session through a live server route — a direct HTTP path that bypasses the previous prompt-gate timing window. When a background task completes, the wake signal is dispatched through the live listener client with synchronous fast-path resolution, eliminating the race condition that could leave parent sessions stuck waiting.
Key improvements:
- No more wake deadlocks. The prompt gate now looks through
noReplytails, so a background completion that lands while the gate is busy no longer silently drops the wake. (Community fix by @acamq — thank you!) - Per-instance route scoping. Multi-instance
serve()registrations each get isolated route state, preventing cross-talk in advanced setups. - Escape hatch. If the new routing causes issues, set
experimental.disable_live_parent_wake_routing: trueto fall back to the previous behavior.
- ccc57a1 @gdaegeun539 has signed the CLA in #5180
- a446e5d Merge pull request #5171 from acamq/fix/noreply-tail-prompt-gate-deadlock
- 741d0ca @Hubluck has signed the CLA in #5102
- 02cd850 refactor: deslop live-wake routing diff (portable harness path, canonical gate client types, test noise)
- dd6d533 fix(live-server-route): synchronous fast-path resolution keeps dispatch ordering
- f0f3701 test(opencode-qa): fake-LLM echoes the CLI no-regression marker
- 9932aca fix(live-server-route): scope route state per server() registration for multi-instance serve
- f70369a fix(background-agent): parent-wake flush busy-guard reads via resolved client
- 1104394 feat(plugin): register live-server route at serverPlugin entry (fire-and-forget)
- ab32f74 feat(prompt-async-gate): route parent-targeted dispatches through live listener client
- 2681351 test(opencode-qa): serve-topology wake runner-split harness + fake-LLM fixture
- 1f6d0e4 fix(background-agent): look through noReply tails in prompt gate to prevent wake deadlock
- 1b7fe79 feat(live-server-route): topology probe + cached live-listener client + dispatch resolution
- 7083d1a feat(config): experimental.disable_live_parent_wake_routing escape hatch
- 5e928c9 test(prompt-async-gate): pin gate client-identity + busy-check characterization
Thank you to 1 community contributor: