fix(opencode): Allowing subagents to send tool permissions through the ACP correctly #13021
+4,627
−4,912
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #12133
What does this PR do?
Forwards tool approval requests from subagents through the ACP connection. Does so by backtracking up the agent "callstack" until we find an agent session that is registered as an ACP. We then use that as the notification ID for tool approvals.
How did you verify your code works?
Ran a task that does a tool call in CodeCompanion.nvim using OpenCode ACP. Also ran a task that ran a task that did a tool call. Both asked for approval correctly and did not hang.
I saw after making this #12136, but keeping mine here as it is able to handle infinitely nested subagent chains.