Skip to content

fix(vscode): reduce prompt navigator interruptions - #13499

Merged
marius-kilocode merged 3 commits into
mainfrom
improve-prompt-navigator-placement
Aug 27, 2026
Merged

fix(vscode): reduce prompt navigator interruptions#13499
marius-kilocode merged 3 commits into
mainfrom
improve-prompt-navigator-placement

Conversation

@marius-kilocode

@marius-kilocode marius-kilocode commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

What Problem This Solves

The prompt navigator can open while the pointer crosses the chat sidebar, which disrupts users who move between Kilo chat and their code. Its fixed left-edge placement also puts it in the pointer path when the extension is docked on the right.

Why This Change Was Made

Place the rail at the physical outer edge of the chat surface. Detect the sidebar edge from the webview position so the rail follows primary and secondary sidebar placement. Keep the preview card inside the chat surface and mirror its placement for either edge.

Physical left and right are intentional here rather than logical CSS start and end. The rail follows the physical VS Code workbench edge, not the document reading direction. Changing to an RTL language changes the webview direction but does not move the VS Code sidebar; logical positioning could therefore put the rail back on the inner boundary between chat and code. Editor tabs and Agent Manager have no sidebar edge signal and keep the rail on the physical right in both LTR and RTL.

Opening the preview on hover now requires a 350 ms dwell. Pending opens are cancelled when the pointer leaves, scrolling begins, dragging is detected, the rail side changes, or the target prompt changes. Click and keyboard navigation remain immediate. The hover delay, Escape dismissal, and preserved keyboard access provide the accessibility improvements; physical edge placement reduces disruptive pointer crossings.

User Impact

The prompt navigator is less likely to interrupt normal pointer movement. It remains available through deliberate hover, click, and keyboard navigation. It is placed on the outer edge in the chat sidebar and remains on the right in editor and Agent Manager surfaces.

Evidence

  • bun run compile
  • bun run test:unit (4,225 tests)
  • Focused Chromium rail, auto-scroll, and spacing tests (18 passed)
  • bun run typecheck
  • bun run lint
  • bun run knip
  • bun run check-kilocode-change
  • Manual isolated VS Code checks for left/right sidebar placement, reload persistence, deliberate hover, prompt selection, Escape dismissal, and Agent Manager placement
  • Review follow-up: focused prompt rail unit tests, typecheck, and lint passed. The local Storybook server could not restart because its dependency scan could not resolve openai; the geometry behavior is unchanged by the expression cleanup.

The change does not add a prompt navigator off switch.

@kilo-code-bot

kilo-code-bot Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (3 files)
  • packages/kilo-vscode/src/KiloProvider.ts
  • packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/PromptRail.tsx
Previous Review Summary (commit 6b3e3d4)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 6b3e3d4)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (13 files)
  • .changeset/calm-prompt-navigator.md
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/prompt-rail-left-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/prompt-rail-right-chromium-linux.png
  • packages/kilo-vscode/src/KiloProvider.ts
  • packages/kilo-vscode/src/utils.ts
  • packages/kilo-vscode/tests/prompt-rail.spec.ts
  • packages/kilo-vscode/tests/unit/sidebar-position.test.ts
  • packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/PromptRail.tsx
  • packages/kilo-vscode/webview-ui/src/context/vscode.tsx
  • packages/kilo-vscode/webview-ui/src/sidebar-position.ts
  • packages/kilo-vscode/webview-ui/src/stories/chat.stories.tsx
  • packages/kilo-vscode/webview-ui/src/styles/prompt-rail.css

Reviewed by grok-4.6 · Input: 170.4K · Output: 5.3K · Cached: 175.5K

Review guidance: REVIEW.md from base branch main

Comment thread packages/kilo-vscode/src/KiloProvider.ts
Comment thread packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx
Comment thread packages/kilo-vscode/webview-ui/src/components/chat/PromptRail.tsx Outdated
Comment thread packages/kilo-vscode/webview-ui/src/components/chat/PromptRail.tsx

@WebReflection WebReflection left a comment

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.

Most comments have been either explained or acknowledged, I don't want to block this PR as it solves already a real use case.

@marius-kilocode
marius-kilocode force-pushed the improve-prompt-navigator-placement branch from 6b3e3d4 to fddaf5f Compare August 27, 2026 09:24
@marius-kilocode
marius-kilocode merged commit f273509 into main Aug 27, 2026
26 checks passed
@marius-kilocode
marius-kilocode deleted the improve-prompt-navigator-placement branch August 27, 2026 09:31
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