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:
12 files changed
+136
-9
No files matched your search
@@ -288,8 +288,10 @@ export function apply(ctx: Context, config: Config): void {
|
||||
// The schema above tells the model to follow up with
|
||||
// `send_message`; starting a durable child the model cannot
|
||||
// continue would make that advertisement false. Sibling load order
|
||||
// is undetermined at mount, so the check lives at the operation.
|
||||
if (ctx.tools.get('send_message') === undefined) {
|
||||
// is undetermined at mount, so the check lives at the operation,
|
||||
// and it resolves in the CALLER's scope so a restriction that
|
||||
// removes send_message from this agent also blocks the start.
|
||||
if (ctx.tools.get('send_message', parent) === undefined) {
|
||||
throw new Error('continuable background subagents unavailable: load @deepseek-ai/dsh-tool-subagent-control (the advertised send_message tool is not registered)')
|
||||
}
|
||||
// The control service owns the durable child id, descriptor
|
||||
|
||||
Reference in New Issue
Block a user