Skip to content

Control UI: reintroduce AI tool-call purpose titles behind an explicit opt-in #103987

Description

@steipete

Problem

PR #103748 shipped AI-generated purpose titles for Control UI tool calls ("Ran linked list tests" instead of a raw command) via a chat.toolTitles gateway method. Follow-up #103821 removed the feature because it was always-on: rendering a chat could trigger model calls, send tool arguments to a provider, spend utility-model tokens, and persist a cache purely for decorative labels.

The underlying feature remains wanted (maintainer request in #103554): long agent sessions read much better when complex calls carry purpose titles.

Proposal

Reintroduce the titles path behind an explicit opt-in so the objections from #103821 no longer apply:

  • New gateway.controlUi.toolTitles config key, default false. With the default, tool rendering stays fully deterministic: the gateway answers chat.toolTitles with { titles: {}, disabled: true } without loading the completion runtime, and clients stop asking for the rest of the session.
  • When enabled, behavior matches the reviewed feat(webui): redesign tool-call rendering with inline diffs, group summaries, and cheap-model purpose titles #103748 design: batched bounded requests, model selection restricted to the agent's utilityModel or the openai/gpt-5.6-luna default (only when the agent's primary model already routes to OpenAI), per-agent SQLite cache_entries caching, fail-closed on any error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintainerMaintainer-authored PR

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions