Repository navigation
feat: badge the file tree, let the sidebar be dragged, allow deleting… - #8
Merged
Merged
Conversation
… comments Three reviewer-facing changes to the review page. The file tree now badges each file with VS Code's own letter — a, m, d, r — in a bordered box, and colours the name to match: green for an addition, amber for a change, red for a deletion, the accent blue for a rename. A deleted file's name is struck through. Names stay on one line and ellipsize rather than widening the row, which needed every wrapper between the tree row and the name to be allowed to shrink. `tree.ts` stays pure and now returns a typed `FileTreeNode` carrying the status and the comment count; building the title from it is `FileTree.tsx`'s job. The comment count moves out of the name and into a badge at the end of the row. The sidebar is a draggable column. The boundary is its own 5px grid track with a `col-resize` cursor and a line that lights up on hover and during a drag; the width lives in `--sidebar-width`. It is the ARIA window-splitter pattern, so the arrow keys, PageUp/PageDown and Home work as well as the mouse — and pointerdown moves focus explicitly, because the preventDefault that stops the drag from selecting text would otherwise swallow it. Any comment can be deleted, the agent's as readily as the reviewer's own. `SubmitPayload` gains `deletions`, addressing a message by its position in its thread; messages carry no id, and adding one would rewrite every state file on disk. Nothing is destroyed while it can still be undone: a staged message stays visible, struck through, with the way back next to it. On submit the server drops those messages, and a thread emptied of all of them is dropped with them — but a thread that lost nothing (a stale index, or one that was already empty) is left exactly as it was. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
… comments
Three reviewer-facing changes to the review page.
The file tree now badges each file with VS Code's own letter — a, m, d, r — in a bordered box, and colours the name to match: green for an addition, amber for a change, red for a deletion, the accent blue for a rename. A deleted file's name is struck through. Names stay on one line and ellipsize rather than widening the row, which needed every wrapper between the tree row and the name to be allowed to shrink.
tree.tsstays pure and now returns a typedFileTreeNodecarrying the status and the comment count; building the title from it isFileTree.tsx's job. The comment count moves out of the name and into a badge at the end of the row.The sidebar is a draggable column. The boundary is its own 5px grid track with a
col-resizecursor and a line that lights up on hover and during a drag; the width lives in--sidebar-width. It is the ARIA window-splitter pattern, so the arrow keys, PageUp/PageDown and Home work as well as the mouse — and pointerdown moves focus explicitly, because the preventDefault that stops the drag from selecting text would otherwise swallow it.Any comment can be deleted, the agent's as readily as the reviewer's own.
SubmitPayloadgainsdeletions, addressing a message by its position in its thread; messages carry no id, and adding one would rewrite every state file on disk. Nothing is destroyed while it can still be undone: a staged message stays visible, struck through, with the way back next to it. On submit the server drops those messages, and a thread emptied of all of them is dropped with them — but a thread that lost nothing (a stale index, or one that was already empty) is left exactly as it was.