feat(jetbrains): render edit tool diff previews in session view - #12491
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge This incremental review covers the diff since the last reviewed commit ( Files Reviewed (1 file in incremental diff)
Previous Review Summaries (4 snapshots, latest commit 79e606e)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 79e606e)Status: No Issues Found | Recommendation: Merge This incremental review covers the new No new issues found in this incremental diff ( Files Reviewed (2 files in incremental diff)
Previous review (commit 7ff2452)Status: No Issues Found | Recommendation: Merge All 5 previously-reported issues ( No new issues found in this incremental diff ( Files Reviewed (6 files in incremental diff)
Previous review (commit 5379e96)Status: 5 Issues Found | Recommendation: Address before merge All 6 previously-reported issues (Disposer leak in This incremental review covers the new Overview
Issue Details (click to expand)CRITICAL
WARNING
SUGGESTION
Files Reviewed (21 files in incremental diff)
Localization property files and remaining changeset files were reviewed but had no issues beyond what's noted above. Fix these issues in Kilo Cloud Previous review (commit acaa893)Status: 6 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)CRITICAL
WARNING
SUGGESTION
Files Reviewed (16 files)
Localization property files ( Reviewed by claude-sonnet-5 · Input: 24 · Output: 3.8K · Cached: 519.3K Review guidance: REVIEW.md from base branch |
…e sessions Cache width-aware preferred-size measurement in SessionLayout (reused while a child stays valid at the same width), so streaming and scrolling no longer re-measure the whole transcript on every event. Mark settled (non-streaming) turns as Swing validate roots behind the kilo.session.validateRoots flag to confine repaint churn, and skip redundant panel refreshes on no-op content events. Narrow the follow-scroll validate pass to the transcript subtree. Adds SessionLayout cache tests, validate-root/settled behavior + width propagation tests, and a panel-level streaming stress/teardown test.
- HeaderPopup.contentWidth: measure leaf JComponents by preferred width instead of the unreachable is-JComponent branch (Container matched first). - PatchBody.applyStyle: report change when the per-file diff panes restyle, so a font/theme change relayouts the multi-file patch view. - MdDiffHighlight: only treat +++/--- as file headers when followed by a space or end of line, so content lines like "++x;" stay colored as inserts. - EditToolView.sync: compute editPath(item) once. - Strengthen multi-file patch badge assertion and add MdDiffHighlight tests.
- SessionLayout: forget a turn's cached height on content change so a settled TurnView (its own validate root) that re-validates independently cannot return a stale measurement from the layout cache - ToolSupport: remove dead setLinkText; restore patchMarkdown raw-text fallback for metadata-only patches (pure rename/mode change) - EditToolView: drop redundant popup update() already done by mount() - tests: make header-stripping assertions non-vacuous, cover the metadata-only patch fallback and SessionLayout.forget
Each prose markdown pane kept a viewport ChangeListener for its whole life, so every scroll tick fired a synthetic mouse move (native pointer query + event dispatch) on every prose block — cost that scaled with transcript size. Subscribe to viewport scrolls only while the pointer is over the pane, making per-scroll work O(1) while preserving hovered-link and cursor refresh.
feat(jetbrains): render edit tool diff previews in session view
Context
Improves how edit-related tool results are presented in the JetBrains session view so changes are easier to read and inspect directly in the chat transcript.
Implementation
Features and improvements in this PR:
write,edit, andapply_patchtool results as expandable diff previews instead of generic tool output.apply_patchresults as a Patch with a file-count tag and one clickable per-file section.Screenshots
How to Test
Manual/local verification
Reviewer test steps
write,edit, andapply_patchtool results.Blocked checks and substitute verification
Checklist
Get in Touch