aaif-goose / aaif-goose/goose

Subagents bypass the parent approval mode

Ouverte
#11,778 1 commentaire 0 réactions 1 personne assignée Réclamée par @lifeizhou-ap Voir sur GitHub
Langage dominant
Rust
Étoiles
54.2k
Forks
6.2k
Merge moyen
3 j 4 h
PR mergées (30 j)
240

Description

**Describe the bug**

A subagent created by the Summon extension does not preserve an approval-requiring mode from its parent session. The child runs in automatic mode, and action-required messages produced by the child do not reach the surface that is driving the parent.

This lets subagent tool calls bypass the approval policy selected for the parent. It is especially visible through ACP clients, where the user receives no permission request for the child tool call.

---

**To Reproduce**
Steps to reproduce the behavior:
1. Start a Goose session through an ACP client.
2. Select a mode that requires approval for sensitive tool calls.
3. Enable the Summon extension.
4. Ask the parent agent to delegate work that requires an approval-gated tool, such as a shell or file-edit operation.
5. Observe that the child tool call runs without an approval request reaching the ACP client.

---

**Expected behavior**
A subagent should preserve the parent session's approval policy. If the child produces an action-required message, the surface driving the parent should receive it, and the response should return to the correct child request.

Concurrent parent and child sessions must not cause confirmation responses to be routed to the wrong request.

---

**Screenshots**
Not applicable.

---

**Please provide the following information**
- **OS & Arch:** All supported platforms
- **Interface:** ACP; the underlying behavior is not ACP-specific
- **Version:** `main` at `f9176266ee2974cdcab0a4938152b6899e2fc18f`
- **Extensions enabled:** Summon and an approval-gated tool extension
- **Provider & Model:** Any tool-capable provider and model

---

**Additional context**
#5140 and #5139 reported related behavior in older subagent implementations, but were resolved by disabling subagents outside autonomous mode. They do not cover preserving the parent mode and forwarding child approval requests in the current Summon implementation.

#11539 describes the new subagent state-machine design and says child sessions carry an execution mode, but it does not define how child action-required messages reach the parent surface or how responses route back.

#11739 is related confirmation-routing work. This bug also requires request correlation across parent and child sessions.

No diagnostics zip is attached because this report describes a deterministic code-path behavior reproduced against the cited `main` revision.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

The issue involves the Summon extension and session state management. Start by examining the code that creates subagents and propagates session modes, likely in the extensions/summon module. Review how action-required messages are routed between parent and child sessions, referencing the state-machine design from issue #11539. Look for request correlation logic to ensure approval responses are correctly matched. Testing will require setting up a session with an approval-gated tool and observing the message flow.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rust
Domaine
ai-infra-agents
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Clairement spécifiée
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.