fix(ui): grey subagent tool calls and soften failure copy#4457
fix(ui): grey subagent tool calls and soften failure copy#4457TheodoreSpeaks merged 2 commits intostagingfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryLow Risk Overview Tool-call display copy is softened for error states: Reviewed by Cursor Bugbot for commit 152e39b. Bugbot is set up for automated code reviews on this repo. Configure here. |
Greptile SummaryThis PR makes two small UI polish fixes for subagent tool-call rows: all rows are faded to 60% opacity to visually match the surrounding dimmed subagent text, and the user-facing error label is softened from "Failed" to "Attempted to".
Confidence Score: 4/5Safe to merge — changes are purely visual and copy-only with no logic or data impact. Both changes are narrow in scope. The opacity tweak dims all tool-call rows uniformly, including the live spinner during the executing state, which may slightly reduce the visibility of in-progress operations. The "Attempted to" copy lands a bit awkwardly for tool names that don't begin with a verb (e.g. "Attempted to File Context"), but this is a pre-existing structural quirk of the fallback formatter rather than a regression.
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[resolveToolDisplay] --> B{toolName defined?}
B -- No --> Z[undefined]
B -- Yes --> C{isToolHiddenInUi?}
C -- Yes --> Z
C -- No --> D{specialToolDisplay?}
D -- respond/respond suffix --> E[formatRespondLabel 'Gathering thoughts']
D -- Read tool --> F[formatReadingLabel]
F --> F1{state}
F1 -- success --> F2[Read suffix]
F1 -- error --> F3[Attempted to read suffix]
F1 -- rejected/aborted --> F4[Skipped reading suffix]
F1 -- default --> F5[Reading suffix]
D -- other --> G[humanizedFallback]
G --> G1{state}
G1 -- success --> G2[Executed FormattedName]
G1 -- error --> G3[Attempted to FormattedName]
G1 -- rejected/aborted --> G4[Skipped FormattedName]
G1 -- default --> G5[Executing FormattedName]
|
|
|
||
| return ( | ||
| <div className='flex items-center gap-[8px] pl-[24px]'> | ||
| <div className='flex items-center gap-[8px] pl-[24px] opacity-60'> |
There was a problem hiding this comment.
Opacity applied during active execution
opacity-60 is unconditional, so the animated PillsRing spinner shown while status === 'executing' is also dimmed to 60%. In practice this may be subtle, but the in-progress indicator is the most important visual affordance when a subagent is working — users may miss that a tool call is still running. Consider limiting the fade to completed states (success, cancelled, error) and keeping the executing row at full opacity.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit eda7304. Configure here.

Summary
opacity-60to subagent tool-call rows so they fade to match the surrounding subagent text (previously text was greyed but tool calls stayed full-opacity).Failed reading X→Attempted to read X, and humanized fallbackFailed Foo Bar→Attempted to Foo Bar.Type of Change
Testing
Tested manually.
bun run lintandbun run check:api-validation:strictpass.Checklist