The client indexes tool/code-dispatch events into ConversationSnapshot.codeDispatches (parent callId -> ToolResultNode-shaped sub-calls; live mux and history replay build the identical index). ChatView renders each run_code parent as the new code variant (description summary, program as the expanded monospace body) with its sub-dispatches as always-visible indented rows — every sub-row dispatches through the SAME keyed conversation.chat.toolview hole with the same GenericToolCard fallback, so custom registrations (bash sample) take over sub-rows exactly as top-level rows. The details panel resolves sub-callIds to full logged args and complete output through the native path. Evidence: fixture turn 64 + built-bundle jsdom snapshot, real-machinery jsdom suites (nesting, error state, details, running parent, reference stability), and a recorded code-mode browser e2e round (keyless replay + aria golden). Scaffold gains a toolsMode patch knob.
1.3 KiB
1.3 KiB
- banner:
- navigation "Session hierarchy":
- 'button "Using ONE run_code program: run" [disabled]'
- text: · 1 turns
- tablist:
- tab "Chat" [selected]
- tab "Trajectory"
- tab "Waterfall"
- navigation "Session hierarchy":
- text: "Using ONE run_code program: run bash
echo CODE_ROUND_OK, then read the file missing.txt catching its error in the program. Return an object with both outcomes. Then reply DONE and stop." - button "Think The user wants me to write a single run_code program that:":
- img
- text: "Think The user wants me to write a single run_code program that:"
- button:
- img
- text: Code Run bash echo and read missing.txt with error handling Echo CODE_ROUND_OK
- button
- text: Read missing.txt
- button "Think The program ran successfully. Both outcomes are captured:":
- img
- text: "Think The program ran successfully. Both outcomes are captured:"
- paragraph: DONE
- text: cache hit 50% · 17,536 tokens · 1 turns · 2 steps
- textbox "Message the agent"
- button "Add attachment":
- img
- combobox "Plan mode":
- option "Plan" [selected]
- option "Agent"
- combobox "Access mode":
- option "Read-only" [selected]
- option "Read-write"
- combobox "Model":
- option "DeepSeek-V4-Pro High" [selected]
- option "DeepSeek-V4-Pro"
- button "Send message" [disabled]