Skip to content

feat (acp): Gate tool-call label enrichment on ACP client capability - #10644

Merged
lifeizhou-ap merged 1 commit into
mainfrom
lifei/apply-tool-call-label-capability
Jul 23, 2026
Merged

feat (acp): Gate tool-call label enrichment on ACP client capability#10644
lifeizhou-ap merged 1 commit into
mainfrom
lifei/apply-tool-call-label-capability

Conversation

@lifeizhou-ap

@lifeizhou-ap lifeizhou-ap commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

Followup PR for #10599

  • Gate LLM tool titles and chain summaries enrichment behind the ACP toolCallLabelEnrichment capability. Before this PR, ACP always perform LLM tool titles and chain summaries. GOOSE_DISABLE_TOOL_CALL_SUMMARY was used to turn off llm tool title enrichment.
  • Clients that opt in receive enriched labels (I have added opt-in for Berd which
  • By default clients receive deterministic titles and avoid extra model calls to save cost and avoid rate limit)
  • Removes the obsolete GOOSE_DISABLE_TOOL_CALL_SUMMARY environment variable.

Testing

Unit test and manual

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b0d7c10050

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +1455 to +1458
let client_requests_tool_call_label_enrichment = goose_client_capabilities
.as_ref()
.and_then(|goose| goose.tool_call_label_enrichment)
.unwrap_or(false);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Advertise or preserve tool-call label enrichment

When running the bundled ACP frontends, this new default treats the missing toolCallLabelEnrichment bit as an opt-out: the desktop initializer still sends only mcpHostCapabilities, customNotifications, and recipeParameterRequests in ui/desktop/src/acp/acpConnection.ts:145-152, and the text UI sends clientCapabilities: {} in ui/text/src/tui.tsx:795-799 and 1338-1342. As a result handle_tool_request returns before spawning title generation and spawn_ready_chain_summary also returns, so these clients stop generating/persisting the enriched tool titles and chain summaries that previously appeared on replay; either set the capability in the bundled clients or preserve the old behavior for clients that have not been updated.

Useful? React with 👍 / 👎.

@lifeizhou-ap lifeizhou-ap Jul 23, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ui/desktop:
Currently we deliberately skipped the llm generated enriched notification, so with this PR, it does not change any ui/desktop behaviour. UI change will be a separate PR to remove the special skip logic after this PR is merged

TUI
We paused TUI dev already

@github-actions

Copy link
Copy Markdown
Contributor

Documentation preview deployed: https://pr-10644.goose-pr-previews-poc.pages.dev

@lifeizhou-ap lifeizhou-ap changed the title apply tool call label capability feat (acp): Gate tool-call label enrichment on ACP client capability Jul 23, 2026
@lifeizhou-ap

lifeizhou-ap commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator Author

Hey @ocervinka!
Just a friendly heads-up that this PR removes GOOSE_DISABLE_TOOL_CALL_SUMMARY, which was introduced in #8947.

LLM generated tool call title and chained summary enrichment is now opt-in through the ACP client capability and disabled by default, so the environment variable is no longer needed. Thanks again for adding the original safeguard!

@michaelneale michaelneale left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - only slight pause would be if it is surprising to make it opt in vs opt out, if any side effects from consumers of it?

@lifeizhou-ap

Copy link
Copy Markdown
Collaborator Author

LGTM - only slight pause would be if it is surprising to make it opt in vs opt out, if any side effects from consumers of it?

The enrichment was originally introduced for Berd, and I've updated its ACP client to request the capability, so its behavior is unchanged.

I made it opt-in because enrichment adds an LLM call for every tool call, which isn't a good default for all clients. Some consumers prefer the original title and previously used GOOSE_DISABLE_TOOL_CALL_SUMMARY. Clients can request toolCallLabelEnrichment during initialization if they want enriched titles.

@lifeizhou-ap
lifeizhou-ap added this pull request to the merge queue Jul 23, 2026
Merged via the queue into main with commit 45815e1 Jul 23, 2026
26 checks passed
@lifeizhou-ap
lifeizhou-ap deleted the lifei/apply-tool-call-label-capability branch July 23, 2026 05:11
alexhancock added a commit that referenced this pull request Jul 27, 2026
* origin/main: (24 commits)
  upgrade to rmcp 2.0 (#10584)
  chore: opus5 support (including adaptive thinking) (#10686)
  fix(desktop): use shell working directory on initial launch (#10655)
  fix(providers): enable inventory refresh for OpenRouter model picker (#10641)
  Add configurable GOOSE_DOCS_ROOT for air-gapped docs access (#10294)
  fix(i18n): fix Korean translation errors, untranslated entries, and terminology consistency (#10667)
  fix(acp): preserve read lines and reload tool output (#10662)
  fix(acp): surface tool call output in CLI and Desktop (#10654)
  fix overlong function names in provider requests (#10659)
  fix (desktop): preserve ACP tool call update fields (#10653)
  feat: support latest Gemini models (#10630)
  Merge commit from fork
  feat (acp): Gate tool-call label enrichment on ACP client capability (#10644)
  fix(session): use configured session manager for tool summaries (#10628)
  refactor (acp): simplify ACP tool-call handling and fix chain summaries (#10599)
  fix: omit disabled OpenRouter reasoning (#10517)
  enhance the uniffi API layer (#10427)
  remove sampling from smoke test (#10639)
  rebuild canonical model db (#10633)
  fix(ui): clear stale pending ACP connection after terminal recovery failure (#10552)
  ...

# Conflicts:
#	ui/desktop/src/i18n/messages/ko.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants