Is your feature request related to a problem? Please describe.
When the agent uses tools to produce a response, Studio shows a one-line
"Activity: N tools" summary (toggled via Show Tools in the chat's ···
menu) that expands inline to a short per-call list. It's a good start, but
as a user I can't tell at a glance whether anything failed, and I can't
dig into a single call's full input/output — the inline expansion only
shows truncated previews, and there's no way to open a call's full detail.
Describe the solution you'd like
-
Show failures in the summary, not just tool names.
The collapsed line should read something like Activity: 3 tools · 1 failed whenever a call failed, and each row (once expanded) should
carry a clear success/running/failed indicator per call.
-
Let me drill into a call's full detail in the right-hand panel.
Studio already has a right-hand panel used for the markdown canvas and
file preview. Tool activity should open into that same panel — full,
untruncated input/output per call, with the existing maximize/resize
chrome — instead of only the inline truncated preview. The collapsed
one-line summary in the message bubble stays as-is; only the detail view
moves to the panel.
-
Make the show/hide preference durable.
Today toggling "Show Tools" only affects the chat currently open in
memory — it doesn't survive a reload or switching to another chat. I'd
like my preference to stick (either per-chat or globally, whichever is
simpler) so I'm not re-toggling it constantly.
Describe alternatives you've considered
- Leaving the detail truncated inline instead of using the side panel —
rejected because it can't show full input/output for a call with a large
payload, and it doesn't match how the app already treats "look at this
thing more closely" (markdown canvas, file preview) elsewhere.
- Making the toggle default to "on" instead of persisting the user's choice —
doesn't solve the problem for users who want it off most of the time and
on for one investigation.
Additional context
Most of the groundwork for this already exists in the still-open
#618 (Studio web UI):
ToolCallList already renders the summary + inline expand
(studio/src/app/workspace/chat/_components/tool-call-list.tsx), toggled
via a DropdownMenuItem in the chat's ··· menu
(studio/src/app/workspace/chat/_components/chat-view.tsx:500-503), with
toggle state kept in local useState(false)
(chat-view.tsx:399) — which is why it doesn't currently survive a
reload or session switch.
- The per-call failure data already exists and is simply unused today:
ToolCallInfo carries isError?: boolean and status: "running" | "completed" | "failed" (studio/src/features/agent/types.ts:86-92),
populated from the daemon's tool_result stream event
(studio/src/features/agent/hooks/use-agent-chat.ts:217-243).
- A reusable right-hand panel already exists for exactly this "expand for
detail" pattern — SidePanel
(studio/src/app/workspace/chat/_components/side-panel.tsx) plus the
ActivePanel discriminated union (artifact | attachment | thread,
chat-view.tsx:55-58) used today for the markdown canvas and file
preview. Adding a tool-activity arm to that union is the natural way to
route a call's detail there.
Non-goal for this request: per-tool-call duration isn't tracked on the
backend for ordinary calls today (only the Subagent/Parallel delegation
families carry a DurationMs, engine/session/event.go:665,799). Showing
"took Xms" per call would need a new backend field and daemon event —
worth a separate issue if wanted, not required for the above.
Is your feature request related to a problem? Please describe.
When the agent uses tools to produce a response, Studio shows a one-line
"Activity: N tools" summary (toggled via
Show Toolsin the chat's···menu) that expands inline to a short per-call list. It's a good start, but
as a user I can't tell at a glance whether anything failed, and I can't
dig into a single call's full input/output — the inline expansion only
shows truncated previews, and there's no way to open a call's full detail.
Describe the solution you'd like
Show failures in the summary, not just tool names.
The collapsed line should read something like
Activity: 3 tools · 1 failedwhenever a call failed, and each row (once expanded) shouldcarry a clear success/running/failed indicator per call.
Let me drill into a call's full detail in the right-hand panel.
Studio already has a right-hand panel used for the markdown canvas and
file preview. Tool activity should open into that same panel — full,
untruncated input/output per call, with the existing maximize/resize
chrome — instead of only the inline truncated preview. The collapsed
one-line summary in the message bubble stays as-is; only the detail view
moves to the panel.
Make the show/hide preference durable.
Today toggling "Show Tools" only affects the chat currently open in
memory — it doesn't survive a reload or switching to another chat. I'd
like my preference to stick (either per-chat or globally, whichever is
simpler) so I'm not re-toggling it constantly.
Describe alternatives you've considered
rejected because it can't show full input/output for a call with a large
payload, and it doesn't match how the app already treats "look at this
thing more closely" (markdown canvas, file preview) elsewhere.
doesn't solve the problem for users who want it off most of the time and
on for one investigation.
Additional context
Most of the groundwork for this already exists in the still-open
#618 (Studio web UI):
ToolCallListalready renders the summary + inline expand(
studio/src/app/workspace/chat/_components/tool-call-list.tsx), toggledvia a
DropdownMenuItemin the chat's···menu(
studio/src/app/workspace/chat/_components/chat-view.tsx:500-503), withtoggle state kept in local
useState(false)(
chat-view.tsx:399) — which is why it doesn't currently survive areload or session switch.
ToolCallInfocarriesisError?: booleanandstatus: "running" | "completed" | "failed"(studio/src/features/agent/types.ts:86-92),populated from the daemon's
tool_resultstream event(
studio/src/features/agent/hooks/use-agent-chat.ts:217-243).detail" pattern —
SidePanel(
studio/src/app/workspace/chat/_components/side-panel.tsx) plus theActivePaneldiscriminated union (artifact | attachment | thread,chat-view.tsx:55-58) used today for the markdown canvas and filepreview. Adding a
tool-activityarm to that union is the natural way toroute a call's detail there.
Non-goal for this request: per-tool-call duration isn't tracked on the
backend for ordinary calls today (only the Subagent/Parallel delegation
families carry a
DurationMs,engine/session/event.go:665,799). Showing"took Xms" per call would need a new backend field and daemon event —
worth a separate issue if wanted, not required for the above.