feat(app): Files Changed flat filename list with tree popover on click - #552
Merged
Merged
Conversation
Integrates the new flat file list component into the session side panel's 'changes' sub-tab. The component shows sorted filenames with change-kind indicators, a tooltip for full paths on hover, and a floating popover with the tree on click. Closes #551
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe PR adds ChangesSession review navigation
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Reviewer
participant ReviewPanelV2
participant SessionSDK
participant SessionReviewFilePreviewV2
Reviewer->>ReviewPanelV2: select a changed file
ReviewPanelV2->>SessionSDK: load diff and file content
SessionSDK-->>ReviewPanelV2: return file data
ReviewPanelV2->>SessionReviewFilePreviewV2: render the active preview
SessionReviewFilePreviewV2-->>Reviewer: display selected file and diff
Suggested reviewers: ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Pure functions for common-ancestor calculation, alphabetical sort by basename, and minimum-disambiguation of duplicate filenames. Includes 17 unit tests covering all AC edge cases (single file, same directory, no shared prefix, three-way duplicates). Part of #551
Remove custom onClick on the trigger div — it raced with Kobalte's built-in trigger toggle, causing the popover to open and immediately close on the same tick. Now onOpenChange is the sole controller.
Click the filename in the diff viewer's file header to open a dropdown listing all changed files. Selecting a file navigates to its diff. - Remove FileListFlat (sidebar popover component) — replaced by direct FileTree in the side panel's changes tab - Add FileNameWithPicker to session-review-file-preview-v2 with: - Click-to-toggle dropdown (no Kobalte Popover dependency) - Common-root header when files share a directory prefix - Filename-only labels with minimal disambiguation for collisions - Outside-click dismiss - Tooltip on directory path portion only - Right-click context menu preserved (Copy full path / filename) - Add review-panel-v2.tsx overlay to thread files + onSelectFile props
- Replace flat file list with collapsed tree: single-child directory chains merged into combined labels (e.g. src/.../components/) - Render indent guide lines at ancestor depths (VS Code style) - Add horizontal scroll for long paths - Pass filePicker as render prop so session-ui stays decoupled from FileTreeV2 - Common root shown as shortened breadcrumb header (.../repo/pkg/) - File icons on each item, consistent 12px font throughout
jeonghun-jj-lee
force-pushed
the
551-files-changed-flat-list-tree-popover
branch
from
August 24, 2026 23:46
7c9a408 to
38cd6c6
Compare
jeonghun-jj-lee
force-pushed
the
551-files-changed-flat-list-tree-popover
branch
from
August 24, 2026 23:48
38cd6c6 to
98f45fb
Compare
jeonghun-jj-lee
marked this pull request as ready for review
August 24, 2026 23:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the always-visible FileTree in the 'Files Changed' side panel tab with a compact flat filename list and on-demand tree popover.
Changes
file-list-model.tsin opencode app):getCommonAncestor,disambiguateFilenames,sortPathsByFilename— fully unit tested (14 tests)FileListFlat): flat alphabetical list with change-kind indicators, tooltip on hover, floating tree popover on click<FileTree>in the 'changes' sub-tab ofsession-side-panel.tsxBehavior
Closes #551
Summary by CodeRabbit