diff --git a/packages/ui/src/components/message-stream.tsx b/packages/ui/src/components/message-stream.tsx index 6d038696..cf4b743c 100644 --- a/packages/ui/src/components/message-stream.tsx +++ b/packages/ui/src/components/message-stream.tsx @@ -628,9 +628,11 @@ export default function MessageStream(props: MessageStreamProps) { const toolPart = item.toolPart + const toolState = toolPart.state + const hasToolState = isToolStateRunning(toolState) || isToolStateCompleted(toolState) || isToolStateError(toolState) const taskSessionId = - (isToolStateRunning(toolPart.state) || isToolStateCompleted(toolPart.state) || isToolStateError(toolPart.state)) - ? toolPart.state.metadata?.sessionId === "string" ? toolPart.state.metadata.sessionId : "" + hasToolState && typeof toolState?.metadata?.sessionId === "string" + ? toolState.metadata.sessionId : "" const taskLocation = taskSessionId ? findTaskSessionLocation(taskSessionId) : null diff --git a/packages/ui/src/components/tool-call.tsx b/packages/ui/src/components/tool-call.tsx index 754bdf96..0c95e4af 100644 --- a/packages/ui/src/components/tool-call.tsx +++ b/packages/ui/src/components/tool-call.tsx @@ -346,11 +346,11 @@ export default function ToolCall(props: ToolCallProps) { const { preferences, setDiffViewMode } = useConfig() const { isDark } = useTheme() const toolCallId = () => props.toolCallId || props.toolCall?.id || "" - const expanded = () => isToolCallExpanded(toolCallId()) + const pendingPermission = createMemo(() => props.toolCall.pendingPermission) + const expanded = () => (pendingPermission() ? true : isToolCallExpanded(toolCallId())) const toolOutputDefaultExpanded = createMemo(() => (preferences().toolOutputExpansion || "expanded") === "expanded") const diagnosticsDefaultExpanded = createMemo(() => (preferences().diagnosticsExpansion || "expanded") === "expanded") const [appliedPreference, setAppliedPreference] = createSignal(null) - const pendingPermission = createMemo(() => props.toolCall.pendingPermission) const permissionDetails = createMemo(() => pendingPermission()?.permission) const isPermissionActive = createMemo(() => pendingPermission()?.active === true) const activePermissionKey = createMemo(() => { @@ -416,13 +416,6 @@ export default function ToolCall(props: ToolCallProps) { setAppliedPreference((prev) => (prev === null ? prev : null)) }) - createEffect(() => { - if (!pendingPermission()) return - const id = toolCallId() - if (!id) return - setToolCallExpanded(id, true) - }) - createEffect(() => { const permission = permissionDetails() if (!permission) {