You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
New Control UI sessions otherwise fall back to first-message snippets or session ids, which makes a busy sidebar difficult to scan. Small internal model tasks also had no shared lower-cost model setting, so title generation had to reuse ad hoc operation-specific routing or the agent's primary model.
This supersedes the older implementation attempt in #77225. The broader periodic re-titling proposal in #99583 remains out of scope.
Why This Change Was Made
Add agents.defaults.utilityModel plus agents.list[].utilityModel as a shared model route for short internal tasks. Explicit operation overrides win, then the per-agent utility model, the default utility model, and the agent primary model.
Generate one asynchronous dashboard-session title from the first non-command message and persist it as displayName, which the existing sidebar/session picker already consumes.
Preserve explicit labels, display names, subjects, and origin labels. Historical sessions, replaced/reset sessions, duplicate concurrent sends, and title failures do not overwrite metadata or block chat.
Route the existing Telegram DM topic-label and Discord generated thread-title paths through the same utility model selection.
Keep utility-only providers discoverable at Gateway startup and include utility refs in configured-model catalog scans.
User Impact
New dashboard sessions get a concise 3-6 word sidebar title after their first message. Existing sessions are not backfilled, explicit/manual names are never replaced, and title generation runs off the chat critical path.
Users can set a smaller model globally or per agent:
Utility tasks are separate model calls. Dashboard titles send at most the first 1,000 characters of the first non-command message to the selected provider; when utilityModel is unset, the agent primary model is used. The docs call out the cost and data-handling boundary.
Evidence
Rebased onto main at 0221544190; PR head 3657c373c6.
Fresh Codex autoreview after fixes: no accepted/actionable findings, overall correct (0.90).
Focused exact-head tests: 325 passed across model-ref discovery, utility-model selection, label generation, dashboard-title persistence/races, chat send integration, provider activation, and Discord title generation.
Local generated-surface checks: base config schema, config docs baseline, plugin SDK API baseline, docs formatting/MDX/links/map, and git diff --check passed.
Live macOS Gateway proof on feature head 37b2e3edeb (later PR-head changes only refresh generated fingerprints and rebase the same feature tree):
primary model remained openai/gpt-5.5
temporary utility model codex/gpt-5.4-mini was independently available
first message Plan a safe migration of a family photo archive to an encrypted SSD with rollback checkpoints. persisted sidebar displayName: "Encrypted SSD Photo Migration"
Summary
The latest durable ClawSweeper review was for head b44a3af2913d39b60f987fc2bdabe7657379f878, but the PR head is now 3657c373c65982b67b3be3520641c266e9ac7ac1. Its old verdict and PR readiness labels are no longer current.
Next step
Run or wait for a fresh ClawSweeper review on the current PR head.
Review history (6 earlier review cycles)
reviewed 2026-07-04T05:08:31.721Z sha e646864 :: needs changes before merge. :: [P2] Deduplicate in-flight title generation
reviewed 2026-07-04T11:37:59.920Z sha 1ccb8a2 :: needs changes before merge. :: [P2] Allow origin-labeled sessions to generate titles
I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.
Re-review progress:
State: Complete
Detail: The targeted re-review finished, the durable review comment was updated, and the synced verdict was routed.
I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.
Re-review progress:
State: Complete
Detail: The targeted re-review finished, the durable review comment was updated, and the synced verdict was routed.
I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.
Re-review progress:
State: Complete
Detail: The targeted re-review finished, the durable review comment was updated, and the synced verdict was routed.
I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
What Problem This Solves
Closes #77165.
New Control UI sessions otherwise fall back to first-message snippets or session ids, which makes a busy sidebar difficult to scan. Small internal model tasks also had no shared lower-cost model setting, so title generation had to reuse ad hoc operation-specific routing or the agent's primary model.
This supersedes the older implementation attempt in #77225. The broader periodic re-titling proposal in #99583 remains out of scope.
Why This Change Was Made
agents.defaults.utilityModelplusagents.list[].utilityModelas a shared model route for short internal tasks. Explicit operation overrides win, then the per-agent utility model, the default utility model, and the agent primary model.displayName, which the existing sidebar/session picker already consumes.User Impact
New dashboard sessions get a concise 3-6 word sidebar title after their first message. Existing sessions are not backfilled, explicit/manual names are never replaced, and title generation runs off the chat critical path.
Users can set a smaller model globally or per agent:
Utility tasks are separate model calls. Dashboard titles send at most the first 1,000 characters of the first non-command message to the selected provider; when
utilityModelis unset, the agent primary model is used. The docs call out the cost and data-handling boundary.Evidence
mainat0221544190; PR head3657c373c6.git diff --checkpassed.37b2e3edeb(later PR-head changes only refresh generated fingerprints and rebase the same feature tree):openai/gpt-5.5codex/gpt-5.4-miniwas independently availablePlan a safe migration of a family photo archive to an encrypted SSD with rollback checkpoints.persisted sidebardisplayName: "Encrypted SSD Photo Migration"tbx_01kwqf6aytwmxx01rj6yhqf03c).tbx_01kwqfg50fm0g7810ep79rqrby).tbx_01kwqefahhag92a4mqw67zp20g).Thanks @Juliangsm for the feature request and @zhangguiping-xydt for the original PR work.