diff --git a/packages/kilo-vscode/tests/visual-regression.spec.ts-snapshots/composite-webview/inline-question-chromium-linux.png b/packages/kilo-vscode/tests/visual-regression.spec.ts-snapshots/composite-webview/inline-question-chromium-linux.png deleted file mode 100644 index 840d2b87246..00000000000 --- a/packages/kilo-vscode/tests/visual-regression.spec.ts-snapshots/composite-webview/inline-question-chromium-linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c4c2ba388cdfc687b14343aa672b22badd1164b2dbab6e99a99c983b0179f13 -size 34924 diff --git a/packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx b/packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx index a948caf68dd..451805f1130 100644 --- a/packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx @@ -4,8 +4,7 @@ * Unlike the upstream AssistantParts, this renders each read/glob/grep/list tool * individually for maximum verbosity in the VS Code sidebar context. * - * Questions with a tool context are rendered inline with their tool call. - * Permissions are rendered in the bottom dock (PermissionDock). + * Active questions and permissions are rendered in the bottom dock. */ import { Component, For, Show, createMemo } from "solid-js" @@ -18,8 +17,6 @@ import type { ToolPart, } from "@kilocode/sdk/v2" import { useData } from "@kilocode/kilo-ui/context/data" -import { useSession } from "../../context/session" -import { QuestionDock } from "./QuestionDock" // Tools that the upstream message-part renderer suppresses (returns null for). // We render these ourselves via ToolRegistry when they complete, @@ -70,9 +67,6 @@ function TodoToolCard(props: { part: ToolPart }) { export const AssistantMessage: Component = (props) => { const data = useData() - const session = useSession() - - const questions = () => session.questions().filter((q) => q.sessionID === session.currentSessionID() && q.tool) const parts = createMemo(() => { const stored = data.store.part?.[props.message.id] @@ -80,9 +74,6 @@ export const AssistantMessage: Component = (props) => { return (stored as SDKPart[]).filter((part) => isRenderable(part)) }) - // Questions linked to this message (rendered after the last part) - const questionForMessage = () => questions().find((q) => q.tool!.messageID === props.message.id) - return ( <> @@ -112,9 +103,6 @@ export const AssistantMessage: Component = (props) => { ) }} - - {(req) => } - ) } diff --git a/packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx b/packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx index 5e3f8764bcc..386c3acaeb8 100644 --- a/packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx @@ -76,6 +76,7 @@ export const ChatView: Component = (props) => { scopedQuestions()[0] const permissionRequest = () => scopedPermissions().find((p) => p.sessionID === id()) ?? scopedPermissions()[0] const blocked = () => scopedPermissions().length > 0 || scopedQuestions().length > 0 + const dock = () => !props.readonly || !!questionRequest() || !!permissionRequest() // When a bottom-dock permission/question disappears while the session is busy, // the scroll container grows taller. Dispatch a custom event so MessageList can @@ -115,7 +116,7 @@ export const ChatView: Component = (props) => { - +
{(req) => } @@ -129,7 +130,7 @@ export const ChatView: Component = (props) => { /> )} - +
- + + +
diff --git a/packages/kilo-vscode/webview-ui/src/stories/composite.stories.tsx b/packages/kilo-vscode/webview-ui/src/stories/composite.stories.tsx index 618e44128d7..3aad5a607bb 100644 --- a/packages/kilo-vscode/webview-ui/src/stories/composite.stories.tsx +++ b/packages/kilo-vscode/webview-ui/src/stories/composite.stories.tsx @@ -545,23 +545,6 @@ export const MultipleToolCalls: Story = { }, } -// --------------------------------------------------------------------------- -// 8. Inline question (tool-linked question rendered in message flow) -// --------------------------------------------------------------------------- - -export const InlineQuestion: Story = { - name: "Inline Question", - render: () => { - const qs = [questionRequest] - const data = dataWith([textPart, questionToolPart]) - return ( - - - - ) - }, -} - // --------------------------------------------------------------------------- // 9. Dismissed question (right-aligned "Questions dismissed" text) // ---------------------------------------------------------------------------