fix: address codex review round 2

- Wire the control service and send_message tool into every shipped
  composition with a resumable provider and background enabled
  (headless-agent, tui-agent, and the SDK helper's subagent feature
  base resources); jsonrpc-agent disables background and is unchanged.
- Resolve the send_message availability check in the CALLER's tool
  scope so a restriction that removes the follow-up tool from one
  agent also blocks that agent's continuable start.
- Control-service disposal now cancels live activations and awaits
  producer settlement instead of stranding them: TaskService keeps
  producer Tasks across a reload, so the disposing service aborts each
  activation-owned controller, resolves its terminal gate (the
  effect-scoped onTaskDone listener is already gone), and awaits done.
  A new test kills a mid-start activation through HMR disposal.
This commit is contained in:
Dudu-0223
2026-07-23 18:14:37 +08:00
committed by imccyu
parent 71570d7bec
commit 4eda48d002
12 changed files with 136 additions and 9 deletions

View File

@@ -257,6 +257,15 @@
config:
providerName: fork
# Continuable background children: the control service owns durable child ids
# and Task-backed activations; the control tool registers the one global
# `send_message` shared by both delegation tools.
- id: subagent-control
name: '@deepseek-ai/dsh-subagent-control'
- id: tool-subagent-control
name: '@deepseek-ai/dsh-tool-subagent-control'
- id: tool-subagent
name: '@deepseek-ai/dsh-tool-subagent'
config: