From 279062d3c9ff30590eaa554a1c0e90fa150569cb Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Mon, 24 Aug 2026 19:20:56 +1000 Subject: [PATCH] feat(app): align execute tool with shell treatment (#44642) --- .../src/storybook/current-session-fixtures.ts | 20 +++++++++++++++++++ .../src/timeline/terminal-work.stories.tsx | 13 ++++++++++++ .../session-ui/src/tools/tool-renderer.tsx | 16 +++++++-------- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/packages/session-ui/src/storybook/current-session-fixtures.ts b/packages/session-ui/src/storybook/current-session-fixtures.ts index 04ee7a33282..11a9610ff4b 100644 --- a/packages/session-ui/src/storybook/current-session-fixtures.ts +++ b/packages/session-ui/src/storybook/current-session-fixtures.ts @@ -530,6 +530,26 @@ export const expandedShellDocument = document([ }), ] satisfies SessionMessageInfo[]) +export const executeCodeDocument = document([ + user("msg_user_execute", "Verify the Code Mode runtime responds.", 52_100), + assistant({ + id: "msg_assistant_execute", + offset: 52_200, + completed: 52_900, + content: [ + completedTool({ + id: "tool_execute_code", + name: "execute", + offset: 52_300, + args: { + code: 'const greeting = "Code Mode execute completed"\nreturn { greeting, timestamp: new Date().toISOString() }', + }, + output: '{\n "greeting": "Code Mode execute completed",\n "timestamp": "2026-08-17T09:01:43.590Z"\n}', + }), + ], + }), +] satisfies SessionMessageInfo[]) + export const terminalFailedDocument = document([ user("msg_user_terminal_failed", "Run the focused Session UI tests.", 53_000), assistant({ diff --git a/packages/session-ui/src/timeline/terminal-work.stories.tsx b/packages/session-ui/src/timeline/terminal-work.stories.tsx index d5c4565df7b..2d0f8b879f1 100644 --- a/packages/session-ui/src/timeline/terminal-work.stories.tsx +++ b/packages/session-ui/src/timeline/terminal-work.stories.tsx @@ -1,5 +1,6 @@ import { CurrentSessionTimelineStory } from "../storybook/current-session-story" import { + executeCodeDocument, expandedShellDocument, recoveryDocument, standaloneShellCompletedDocument, @@ -85,6 +86,18 @@ export const ExpandedShell = { ), } +export const ExecuteCode = { + render: () => ( + + ), +} + export const TestFailed = { render: () => ( props.status === "streaming" || props.status === "running" const code = createMemo(() => (typeof props.input.code === "string" ? props.input.code : "")) - const text = createMemo(() => { - const output = stripAnsi(props.output ?? "").replace(/\r\n?/g, "\n") - return `${code()}${output ? "\n\n" + output : ""}` - }) + const output = createMemo(() => stripAnsi(props.output ?? "").replace(/\r\n?/g, "\n")) const sawPending = pending() return ( (
- - -
- +
)} > - {text()} + + {code()} + {(value) => {value()}} +
) },