Moves the 'Run review?' suggestion picker out of the footer bar above the
prompt and into the conversation itself, at the position of the suggest
tool call. Frees up vertical space for reading while scrolling and
matches where the VS Code extension shows the same picker. Clicking an
option still accepts, digit keys 1/2 fast-accept when the prompt isn't
focused, and Esc dismisses. Blocking suggestions keep the above-prompt
overlay.
Emit suggestions as non-blocking so the main CLI input stays focused and submittable while the picker is visible, matching the VS Code extension. Submitting a new message auto-dismisses the pending suggestion.
When the plan agent pauses for the follow-up question, CLI users had no
way to send a free-text reply: the main prompt input is hidden while a
blocking question is active, and the "Type your own answer" row was
being forced off to avoid duplicating the VS Code prompt input. CLI now
shows the custom-answer row again, while VS Code keeps it hidden.
The prompt queue's scope() hid the user message injected by
PlanFollowup.inject() because its ID was newer than the queue target,
so the loop saw the same plan_exit messages and re-asked the question
in an infinite cycle. Retarget the queue after inject so the new
message is visible on the next iteration.
Restore custom: false on the plan follow-up question — the "Type your own answer" row was redundant because the main prompt already routes typed text as a question reply. Auto-submit single-question single-select option picks in the VS Code QuestionDock so the button behaves like the TUI instead of silently waiting for a second Submit click.
Return accessors from translateOption so SolidJS tracks the language signal through <For>. Without this, a mid-dialog language switch leaves option labels frozen in the previous locale until the dock remounts. Also add inline notes explaining the wider auto-submit behaviour change in pickOutcome (covers every single-question single-select caller, not just the plan follow-up) and the tr() helper's coupling to language.t's miss-key echo contract so a future refactor of language.t notices the dependency.
Add missing behavior to model-selection.md VSCode tab: 'last picked per
agent' level in precedence chain, and a note that the model selector
remembers picks across sessions with reset button to restore config.
Add the same note to custom-modes.md for both the VSCode and CLI tabs
under the model property reference (previously only documented in the
VSCode Legacy tab as 'Sticky Models').
Add optional `labelKey`/`descriptionKey` to Question.Option and `questionKey`/`headerKey` to Question.Info, annotated with `kilocode_change` markers. Populate these keys from the plan follow-up so the "Ready to implement?" question, "Start new session", and "Continue here" buttons render in the sidebar language while the canonical English labels remain on the reply wire (unchanged server-side matching).
* fix: persist custom provider model and variant deletions
The CLI config.update endpoint deep-merges its payload with existing
global config, so removing a model or reasoning variant from a custom
provider in the UI had no effect on disk. Save payloads now emit null
sentinels for removed IDs, and the Provider schema accepts nullable
record values so stripNulls can delete them during the merge.
Closes#9186
* chore: update kilo-vscode visual regression baselines
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix(vscode,ui): keep user scroll position while session is busy
Virtua's measurement-driven resize events race ahead of the debounced
user-scroll detection in createAutoScroll, snapping the viewport back
to the bottom while the user is mid-gesture. The QuestionDock's focus
call on mount also triggers the browser's focus-into-view behavior,
which yanks the view down whenever the user has scrolled up.
Fixes#9198
* fix(ui): guard recentlyInteracted against initial lastInteraction=0
Ensure Agent Manager pushes worktree session state before generic sessionCreated messages and reconciles local tabs against worktree ownership so forked, continued, and newly-created worktree sessions do not appear in Local. Fixes#8983.
Restore custom: false on the plan follow-up question — the "Type your own answer" row was redundant because the main prompt already routes typed text as a question reply. Auto-submit single-question single-select option picks in the VS Code QuestionDock so the button behaves like the TUI instead of silently waiting for a second Submit click.
Clicking 'revert file' in the Agent Manager review panel silently did
nothing when the repo had no remote and no tracking branch. The diff
view worked because it defensively searched for a local candidate
branch, but the revert path ran merge-base against the placeholder HEAD
and turned into a no-op for committed feature changes.