Skip to content

feat(vscode): cycle reasoning effort variants with Shift+Tab - #12403

Merged
marius-kilocode merged 1 commit into
mainfrom
shift-tab-reasoning-variant-navigation
Jul 20, 2026
Merged

feat(vscode): cycle reasoning effort variants with Shift+Tab#12403
marius-kilocode merged 1 commit into
mainfrom
shift-tab-reasoning-variant-navigation

Conversation

@marius-kilocode

@marius-kilocode marius-kilocode commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Switching reasoning effort currently requires opening the variant dropdown and picking the next level by hand, which is tedious when comparing outputs across effort levels. The CLI already offers variant cycling in the TUI; the VS Code extension had no keyboard path for it.

This adds Shift+Tab cycling to every prompt input that shows the reasoning variant selector:

  • Sidebar chat and Agent Manager prompt (shared PromptInput)
  • New Worktree dialog

Pressing Shift+Tab selects the next variant and wraps after the last one, matching the selector order. When a slash-command or file-mention dropdown is open it keeps its own Tab handling, and the ghost-text Tab accept is unaffected.

Because Shift+Tab is also the default backwards focus-navigation key, the behavior is gated by a new kilo-code.new.chat.shiftTabCyclesVariant setting (default on). Turning it off restores native focus navigation instantly, without reloading the webview. The toggle is also surfaced under Settings > Display in the Kilo settings panel. To keep the shortcut discoverable, the variant selector now shows a hover tooltip with the current meaning ("Reasoning effort") and a Shift+Tab keybind chip; the chip disappears when cycling is disabled.

The setting follows the existing extension-settings pipeline: a chatSettingsLoaded/requestChatSettings message pair, a config watcher pushing live updates, and validation in handleUpdateSetting. Includes translations for all 20 locales and unit tests for the cycle helper, the settings message, and validation.

Sidebar prompt: variant selector tooltip with Shift+Tab hint

New Worktree dialog: variant selector tooltip with Shift+Tab hint

Display settings: Cycle Reasoning Effort with Shift+Tab toggle

@marius-kilocode
marius-kilocode merged commit 5ef5222 into main Jul 20, 2026
23 checks passed
@marius-kilocode
marius-kilocode deleted the shift-tab-reasoning-variant-navigation branch July 20, 2026 10:35
</>
<Tooltip
value={
<div data-slot="tooltip-keybind">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Reinvents TooltipKeybind instead of reusing it

This hand-rolls a tooltip body with data-slot="tooltip-keybind" / data-slot="tooltip-keybind-key", but no CSS exists anywhere in the repo for these slots (only referenced here). @kilocode/kilo-ui/tooltip already exports a TooltipKeybind component built for exactly this "title + keybind chip" pattern, and it's already used elsewhere in this package (e.g. SessionTab.tsx, WorktreeItem.tsx) with proper styling via openDelay, gutter, etc.

Suggest replacing the manual Tooltip + div/span markup with TooltipKeybind (title={language.t("prompt.thinking.tooltip")} and keybind={props.cycleHint ? "Shift+Tab" : ""}) so the hint gets consistent, already-styled presentation instead of unstyled plain text.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kilocode-bot is this worth a fix?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes — worth fixing. The suggestion points out real dead/unstyled code (custom data-slot=tooltip-keybind markup with no matching CSS) when an existing, already-styled TooltipKeybind component does the same job and is used elsewhere in the package. Low risk, small change, improves consistency.

Want me to spawn a Cloud Agent to apply the fix (swap the manual Tooltip/div markup for TooltipKeybind in ThinkingSelector.tsx)?

@kilo-code-bot

kilo-code-bot Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 1
Issue Details (click to expand)

SUGGESTION

File Line Issue
packages/kilo-vscode/webview-ui/src/components/shared/ThinkingSelector.tsx 146 Hand-rolled tooltip markup (data-slot="tooltip-keybind") has no CSS anywhere in the repo; the existing TooltipKeybind component from @kilocode/kilo-ui/tooltip (already used in SessionTab.tsx, WorktreeItem.tsx, etc.) covers this exact title+keybind pattern and should be reused instead.
Files Reviewed (35 files)
  • .changeset/shift-tab-variant-cycle.md
  • packages/kilo-vscode/package.json
  • packages/kilo-vscode/src/KiloProvider.ts
  • packages/kilo-vscode/src/kilo-provider/chat-settings.ts
  • packages/kilo-vscode/tests/unit/chat-settings-message.test.ts
  • packages/kilo-vscode/tests/unit/new-worktree-dialog-sandbox.test.ts
  • packages/kilo-vscode/tests/unit/session-variant-store.test.ts
  • packages/kilo-vscode/webview-ui/agent-manager/NewWorktreeDialog.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx
  • packages/kilo-vscode/webview-ui/src/components/settings/DisplayTab.tsx
  • packages/kilo-vscode/webview-ui/src/components/shared/ThinkingSelector.tsx - 1 issue
  • packages/kilo-vscode/webview-ui/src/context/config.tsx
  • packages/kilo-vscode/webview-ui/src/context/session-variant-store.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts
  • 20 i18n translation files (ar, br, bs, da, de, en, es, fr, it, ja, ko, nl, no, pl, ru, th, tr, uk, zh, zht)

Fix these issues in Kilo Cloud


Reviewed by claude-sonnet-5 · Input: 72 · Output: 14.8K · Cached: 2.8M

Review guidance: REVIEW.md from base branch main

t7tran pushed a commit to t7tran/kilocode that referenced this pull request Aug 14, 2026
…ariant-navigation

feat(vscode): cycle reasoning effort variants with Shift+Tab
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants