fix(tui): address Copilot round-2 on #14045
- delegate_task: use shared tool_error() for the paused-spawn early return so the error envelope matches the rest of the tool. - Disk snapshot label: treat orphaned nodes (parentId missing from the snapshot) as top-level, matching buildSubagentTree / summarizeLabel.
This commit is contained in:
parent
eda400d8a5
commit
7eae504d15
@ -1489,13 +1489,9 @@ def delegate_task(
|
||||
# when a runaway tree is detected, without interrupting already-running
|
||||
# children. Cleared via the matching `delegation.pause` RPC.
|
||||
if is_spawn_paused():
|
||||
return json.dumps(
|
||||
{
|
||||
"error": (
|
||||
"Delegation spawning is paused. Clear the pause via the TUI "
|
||||
"(`p` in /agents) or the `delegation.pause` RPC before retrying."
|
||||
)
|
||||
}
|
||||
return tool_error(
|
||||
"Delegation spawning is paused. Clear the pause via the TUI "
|
||||
"(`p` in /agents) or the `delegation.pause` RPC before retrying."
|
||||
)
|
||||
|
||||
# Normalise the top-level role once; per-task overrides re-normalise.
|
||||
|
||||
@ -66,7 +66,12 @@ export function createGatewayEventHandler(ctx: GatewayEventHandlerContext): (ev:
|
||||
return min === 0 ? s.startedAt : Math.min(min, s.startedAt)
|
||||
}, 0)
|
||||
|
||||
const top = subagents.filter(s => !s.parentId).slice(0, 2)
|
||||
// Match buildSubagentTree semantics: an agent is top-level if it has
|
||||
// no parent OR its parent isn't in the snapshot (orphan). Otherwise
|
||||
// the disk label would fall back to `${N} subagents` for any turn
|
||||
// whose roots got pruned mid-flight.
|
||||
const ids = new Set(subagents.map(s => s.id))
|
||||
const top = subagents.filter(s => !s.parentId || !ids.has(s.parentId)).slice(0, 2)
|
||||
|
||||
const label = top.length
|
||||
? top
|
||||
|
||||
Loading…
Reference in New Issue
Block a user