SolidJS store arrays are Proxies that can't be structurally cloned by
VS Code's postMessage. Spread each inner answer array to create plain
arrays before passing to replyToQuestion().
- Clear questionError for a request before retrying reply/reject so the
createEffect doesn't immediately reset sending state
- Reset questions and questionErrors in clearCurrentSession()
- Filter out questions/errors for deleted session in handleSessionDeleted()
- Upsert questions by id instead of blind append to prevent duplicates
- Hide custom answer option when question.custom === false
- Scope questions and permissions to current session in ChatView
Without the directory header, the server falls back to process.cwd()
which resolves to a different Instance context than where the question
was created. The pending question lookup silently fails and the LLM
never receives the answer.
The question was removed from UI state before the HTTP call was made.
If the call failed, the error was invisible because QuestionDock was
already unmounted. Let the SSE question.replied/rejected events handle
removal instead, matching the desktop app behavior.
Without optimistic removal the QuestionDock stays mounted with all
buttons disabled until the SSE round-trip completes, making dismiss
and answer clicks appear to do nothing. Re-add immediate removal
after posting the message, matching the pattern used by permissions.
- Remove question data and callbacks from DataProvider so kilo-ui's
ToolPartDisplay no longer renders an inline QuestionPrompt in the
message list (the QuestionDock at the bottom is the sole interactive
UI, matching CLI behavior)
- Add question.asked/replied/rejected to resolveEventSessionId so
question SSE events are correctly scoped to the tracking webview
- Send questionError back to the webview when httpClient is null so
the UI does not get stuck in a disabled state
- Replace optimistic question removal with SSE-event-driven removal so
the question stays visible until the server confirms
- Send questionError message from extension to webview on HTTP failure so
the sending state resets and users can retry
- Add missing review-title in the multi-question confirm tab to match
the reference app implementation
indexOf returns -1 (not undefined) for missing values, so ?? 99 never
triggered. Switch to Object.fromEntries rank map where missing keys
return undefined, making the ?? 99 fallback work correctly.
- Internationalize date group headings in SessionList (Today, Yesterday,
This Week, This Month, Older) using time.* translation keys across all
16 locale files instead of hardcoded English strings
- Replace inline styles in delete confirmation dialog with CSS classes
(dialog-confirm-body, dialog-confirm-actions) in chat.css
- Remove duplicate session.search.placeholder, session.empty, and
session.untitled keys that were accidentally duplicated in locale files
Enable the question tool for the vscode client and implement the full
question flow: SSE events, HTTP reply/reject endpoints, session state,
DataBridge wiring, and an inline QuestionDock component that replaces
the prompt input while a question is pending.
Closes#238