Skip to content

Conversation

@eneufeld
Copy link
Contributor

What it does

Change the rendering of the tool call parameters to:

  • show no key if only one parameter is passed
  • show ... if there are multiple parameters passed
  • improve collapse/expand rendering for parameters

fixes #16029

How to test

Use any agent and let it call a function which expects a parameter.

Follow-ups

Breaking changes

  • This PR introduces breaking changes and requires careful review. If yes, the breaking changes section in the changelog has been updated.

Attribution

Review checklist

Reminder for reviewers

@eneufeld eneufeld requested a review from sdirix January 19, 2026 12:42
@github-project-automation github-project-automation bot moved this to Waiting on reviewers in PR Backlog Jan 19, 2026
@ndoschek ndoschek mentioned this pull request Jan 26, 2026
30 tasks
@ndoschek ndoschek requested review from ndoschek and removed request for sdirix February 3, 2026 14:20
Copy link
Member

@ndoschek ndoschek left a comment

Choose a reason for hiding this comment

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

Thanks, Eugen! The condensed argument logic is a nice improvement and reads well 👍

However, I'm not convinced about the nested <details> approach for displaying the arguments. Having a collapsible <details> inside the <summary> of the outer <details> (which expands to show the tool result) creates two independent expand/collapse interactions stacked together. This can be confusing: clicking the arguments area may also toggle the outer details, and users are unlikely to expect two separate levels of expansion IMO.

I would suggest a simpler approach:

  1. Show the entire arguments inline in the tool call summary as plain text.
  2. Add a tooltip on tool hover that shows the full arguments (tool name plus all argument key–value pairs, pretty-printed). We already use the HoverService the prompt variant badge in the chat UI for example which also allows more complex tooltip content.

This could look like this for example:
image

This example uses a JSON code block for the arguments inside a markdown string for the tooltip.

Overall, this keeps the summary clean and easy to scan, while still making full argument details available on hover, without adding extra interaction complexity to the expand/collapse behavior for the tool result.

WDYT?

@sdirix
Copy link
Member

sdirix commented Feb 6, 2026

I agree, nested collapsibles should be avoided. As the arguments are always objects we could also specialize the rendering of it a bit. So it looks less like a JSON and more like a list of attributes.

In many cases we could also just not render the ... in the title but immediately render the most important part. So for the example of Nina, this could be

Ran findFilesbyPattern (**/*.md ...)

With the ... indicating that this was not the full argument.


This can't be solved generically. Each tool needs to have something like "getArgumentsShortLabel" which then returns something like { label: string, hasMore: boolean}. The default implementation for a tool which does not provide that (e.g. MCP) could be the implementation of the current PR.

This would improve readability by a lot, often not even requiring the user to expand to see what happened.

Copy link
Member

@ndoschek ndoschek left a comment

Choose a reason for hiding this comment

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

Thank you for the updates Eugen, this works much better now 👍

Just one minor thing: The display differs when we have one vs multiple arguments. I would tend to show only the value also for a single argument, for example ...FileList(.theia), as we have the entire object on hover now anyway, WDYT?

Image

@ndoschek ndoschek changed the title fix: improve toll call parameters rendering fix: improve tool call parameters rendering Feb 11, 2026
Copy link
Member

@ndoschek ndoschek left a comment

Choose a reason for hiding this comment

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

Thank you @eneufeld for the updates! LGTM and works great!
I tested with several different functions and arguments and this is a great UX improvement and feels very intuitive now!

@github-project-automation github-project-automation bot moved this from Waiting on reviewers to Needs merge in PR Backlog Feb 11, 2026
@ndoschek ndoschek merged commit bec8ac2 into master Feb 11, 2026
10 checks passed
@ndoschek ndoschek deleted the fix/16029 branch February 11, 2026 09:46
@github-project-automation github-project-automation bot moved this from Needs merge to Done in PR Backlog Feb 11, 2026
@github-actions github-actions bot added this to the 1.69.0 milestone Feb 11, 2026
@JonasHelming
Copy link
Contributor

@eneufeld @ndoschek
This does not look good to me:

image

@JonasHelming
Copy link
Contributor

Also I am not sure about the hover in general. If the mouse is above the chat it sometimes "flows" under the mouse pointer and opens arbitrary hovers then. Finally, we lost the ability to see the actual content of a tool call completly.

Sorry for raising these issues, In general i like this improvement a lot and I think is was long outstanding!

@eneufeld
Copy link
Contributor Author

@JonasHelming who checks writeFile content ;-)

Seriously, good catch.
Can you explain what you mean by Finally, we lost the ability to see the actual content of a tool call completly.
I will open a follow up, maybe you can explain there so we can fix.

@eneufeld
Copy link
Contributor Author

@JonasHelming Thank you for raising the issues, can you elaborate here: #16988

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Improve ToolCall parameters rendering in Chat

4 participants