Keep tool calls open while permissions pending and fix task session nav
This commit is contained in:
@@ -628,9 +628,11 @@ export default function MessageStream(props: MessageStreamProps) {
|
|||||||
|
|
||||||
const toolPart = item.toolPart
|
const toolPart = item.toolPart
|
||||||
|
|
||||||
|
const toolState = toolPart.state
|
||||||
|
const hasToolState = isToolStateRunning(toolState) || isToolStateCompleted(toolState) || isToolStateError(toolState)
|
||||||
const taskSessionId =
|
const taskSessionId =
|
||||||
(isToolStateRunning(toolPart.state) || isToolStateCompleted(toolPart.state) || isToolStateError(toolPart.state))
|
hasToolState && typeof toolState?.metadata?.sessionId === "string"
|
||||||
? toolPart.state.metadata?.sessionId === "string" ? toolPart.state.metadata.sessionId : ""
|
? toolState.metadata.sessionId
|
||||||
: ""
|
: ""
|
||||||
const taskLocation = taskSessionId ? findTaskSessionLocation(taskSessionId) : null
|
const taskLocation = taskSessionId ? findTaskSessionLocation(taskSessionId) : null
|
||||||
|
|
||||||
|
|||||||
@@ -346,11 +346,11 @@ export default function ToolCall(props: ToolCallProps) {
|
|||||||
const { preferences, setDiffViewMode } = useConfig()
|
const { preferences, setDiffViewMode } = useConfig()
|
||||||
const { isDark } = useTheme()
|
const { isDark } = useTheme()
|
||||||
const toolCallId = () => props.toolCallId || props.toolCall?.id || ""
|
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 toolOutputDefaultExpanded = createMemo(() => (preferences().toolOutputExpansion || "expanded") === "expanded")
|
||||||
const diagnosticsDefaultExpanded = createMemo(() => (preferences().diagnosticsExpansion || "expanded") === "expanded")
|
const diagnosticsDefaultExpanded = createMemo(() => (preferences().diagnosticsExpansion || "expanded") === "expanded")
|
||||||
const [appliedPreference, setAppliedPreference] = createSignal<boolean | null>(null)
|
const [appliedPreference, setAppliedPreference] = createSignal<boolean | null>(null)
|
||||||
const pendingPermission = createMemo(() => props.toolCall.pendingPermission)
|
|
||||||
const permissionDetails = createMemo(() => pendingPermission()?.permission)
|
const permissionDetails = createMemo(() => pendingPermission()?.permission)
|
||||||
const isPermissionActive = createMemo(() => pendingPermission()?.active === true)
|
const isPermissionActive = createMemo(() => pendingPermission()?.active === true)
|
||||||
const activePermissionKey = createMemo(() => {
|
const activePermissionKey = createMemo(() => {
|
||||||
@@ -416,13 +416,6 @@ export default function ToolCall(props: ToolCallProps) {
|
|||||||
setAppliedPreference((prev) => (prev === null ? prev : null))
|
setAppliedPreference((prev) => (prev === null ? prev : null))
|
||||||
})
|
})
|
||||||
|
|
||||||
createEffect(() => {
|
|
||||||
if (!pendingPermission()) return
|
|
||||||
const id = toolCallId()
|
|
||||||
if (!id) return
|
|
||||||
setToolCallExpanded(id, true)
|
|
||||||
})
|
|
||||||
|
|
||||||
createEffect(() => {
|
createEffect(() => {
|
||||||
const permission = permissionDetails()
|
const permission = permissionDetails()
|
||||||
if (!permission) {
|
if (!permission) {
|
||||||
|
|||||||
Reference in New Issue
Block a user