Skip to content

fix(vscode): improve long-session prompt navigation - #12656

Merged
marius-kilocode merged 4 commits into
mainfrom
improve-prompt-sidebar-navigation
Jul 30, 2026
Merged

fix(vscode): improve long-session prompt navigation#12656
marius-kilocode merged 4 commits into
mainfrom
improve-prompt-sidebar-navigation

Conversation

@marius-kilocode

Copy link
Copy Markdown
Collaborator

Long sessions can contain more prompts than the rail can display, while restored sessions initially expose only their newest message pages. The rail previously kept only the newest prompts without showing that earlier navigation targets were missing, so users could not reliably return to the beginning of a conversation.

This keeps the rail compact without making history disappear. Tick capacity now follows the actual tick spacing instead of the much taller preview rows, while the bounded navigator exposes every loaded prompt and virtualizes large lists. Scrolling upward loads earlier pages automatically, and the First prompt action progressively loads the remaining history before jumping. Stable row-key lookup continues to use Virtua without mounting intervening transcript rows.

Opening the navigator does not fetch history by itself. Paging remains tied to explicit scroll or First prompt intent, and a lightweight loading row preserves position while older prompts are prepended.

Earlier history available

The restored session has 240 of 524 messages loaded. The leading history marker communicates that earlier prompts are still available.

Prompt navigator with partially loaded conversation history

Complete history

After loading all 524 messages, the rail represents the complete prompt history while the navigator and transcript remain virtualized.

Prompt navigator with complete conversation history

@marius-kilocode
marius-kilocode enabled auto-merge (squash) July 29, 2026 13:53
Comment thread packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx
Comment thread packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx
Comment thread packages/kilo-vscode/webview-ui/src/components/chat/prompt-rail.ts
@kilo-code-bot

kilo-code-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Incremental review since 5ebc3d7: only MessageList.tsx changed. Both previously flagged issues in this file are resolved:

  • The pending-jump effect now falls back to a data-row-key DOM query and scrollIntoView for non-virtualized rows, matching jump()'s own fallback path.
  • The "First prompt" progressive load, on making no further progress (historyAction returns stop), now jumps to the earliest currently-loaded prompt instead of silently doing nothing.

The previously flagged prompt-rail.ts:116 capacity-gate issue is unrelated to this diff (file unchanged) and remains open as a separate comment.

Files Reviewed (1 file)
  • packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx - 2 previously flagged issues resolved
Previous Review Summary (commit 5ebc3d7)

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

Previous review (commit 5ebc3d7)

Status: 3 Issues Found | Recommendation: Address before merge

Overview

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

SUGGESTION

File Line Issue
packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx 992 Pending jump resolution never retries the DOM fallback for non-virtualized (direct) rows, so it can get stuck
packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx 1065 "First prompt" progressive load gives up silently with no user feedback when a page makes no progress
packages/kilo-vscode/webview-ui/src/components/chat/prompt-rail.ts 116 At capacity === 1 with unloaded history, the rail's >= 2 entries gate hides the entire navigator, including the history affordance
Files Reviewed (31 files)
  • .changeset/long-session-prompt-navigation.md
  • packages/kilo-vscode/tests/unit/prompt-rail.test.ts
  • packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx - 2 issues
  • packages/kilo-vscode/webview-ui/src/components/chat/PromptRail.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/prompt-rail.ts - 1 issue
  • packages/kilo-vscode/webview-ui/src/context/session.tsx
  • packages/kilo-vscode/webview-ui/src/i18n/*.ts (all 26 locales)
  • packages/kilo-vscode/webview-ui/src/stories/StoryProviders.tsx
  • packages/kilo-vscode/webview-ui/src/stories/chat.stories.tsx
  • packages/kilo-vscode/webview-ui/src/styles/prompt-rail.css
  • visual regression baseline PNGs (3, updated by CI bot commit)

Fix these issues in Kilo Cloud


Reviewed by claude-sonnet-5 · Input: 30 · Output: 8.4K · Cached: 642.3K

Review guidance: REVIEW.md from base branch main

@marius-kilocode
marius-kilocode disabled auto-merge July 29, 2026 14:25
@marius-kilocode
marius-kilocode force-pushed the improve-prompt-sidebar-navigation branch from 5ebc3d7 to 9a23323 Compare July 29, 2026 15:11
@marius-kilocode
marius-kilocode enabled auto-merge (squash) July 29, 2026 15:13
@marius-kilocode
marius-kilocode merged commit f0d2c8f into main Jul 30, 2026
26 checks passed
@marius-kilocode
marius-kilocode deleted the improve-prompt-sidebar-navigation branch July 30, 2026 08:48
t7tran pushed a commit to t7tran/kilocode that referenced this pull request Aug 14, 2026
* fix(vscode): improve long-session prompt navigation

* fix(vscode): translate prompt navigation in Persian

* fix(vscode): complete deferred prompt jumps

* chore: update kilo-vscode visual regression baselines

---------

Co-authored-by: kilo-maintainer[bot] <kilo-maintainer[bot]@users.noreply.github.com>
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