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()}}
+
)
},