Repository navigation
feat(desktop): list every file in Files changed, with a filter, collapse all, and stage-cli's keys - #3304
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
luke-agent
Bot
changed the base branch from
main
to
feat/pierre-inline-comments
October 17, 2026 01:55
luke-agent
Bot
force-pushed
the
feat/pierre-inline-comments
branch
from
October 17, 2026 01:57
d6264ab to
2355be4
Compare
luke-agent
Bot
force-pushed
the
feat/files-changed-list
branch
from
October 17, 2026 02:05
99b0403 to
dda7905
Compare
luke-agent
Bot
force-pushed
the
feat/pierre-inline-comments
branch
from
October 18, 2026 16:09
2355be4 to
3f8d6e4
Compare
luke-agent
Bot
force-pushed
the
feat/files-changed-list
branch
from
October 18, 2026 16:33
dda7905 to
8e70375
Compare
luke-agent
Bot
force-pushed
the
feat/pierre-inline-comments
branch
from
October 18, 2026 16:34
3f8d6e4 to
a3264cc
Compare
…e and expand all, and stage-cli's keys Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
…ice and threads, measured, not in its header Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
…luke design tokens Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
luke-agent
Bot
force-pushed
the
feat/files-changed-list
branch
from
October 18, 2026 16:47
8e70375 to
93d5c95
Compare
…lears the filter and is shown Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
…the tree's search does Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
14 tasks done
…tes them Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
14 tasks done
3 tasks done
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.
Summary
Files changed extras, E1 of the "Files changed extras" stack (based on #3245). Asked for: stage-cli's file filter, collapse / expand all, and keyboard navigation between files in the Pull request tab's Files changed pane, working in the unified view below 640px. stage-cli's Files changed is a list of every file, which is what collapse all and its keys act on, so the pane changes from one file at a time to that list (the orchestrator approved this shape).
One list of every file, drawn by Pierre's own
CodeView(diff-view/index.ts's newmountList).DiffListFile.lead), and hides that line, the old side, the gutter and the hatching in the shadow root.Filter. The tree's "Search files" field is the filter, as stage-cli's sits on its file picker.
Collapse / expand all.
;).stage-cli's keys (
changes-list.tsx):;#shared/shortcuts' plain J/K), and keys typed into a field stay the field's.Narrow. Below 640px the list is drawn unified, whatever the setting, as before.
feat(desktop): draw review threads on their lines in Files changed #3245's threads, moved onto the list.
annotations, with the same key → element contract;renderAnnotationnow takes(path, key).ThreadActions); its Files changed test is ported to the list.THREAD_PLACE.ABOVE: outdated, on a line no hunk shows, or on a binary or too-large file) are Pierre file-level notes above the first hunk, on the side they count on.mountis kept for the Conversation's thread previews. It loses only its annotations, which nothing else used.Also in this PR
The list's styles and #3245's inline thread card now read the
--luke-*tokens. #3524 removed the old aliases (--hairline,--section-fill,--space-*, …), and without them the headers lost their borders, which put every file's position 1px off.Known limit
⌘F finds only what Pierre has drawn. The list is virtualized, so files far from the view aren't searched until they come near, as with GitHub's own lazily drawn diffs. Every drawn file's shadow root is marked for the find, and new files are picked up as they scroll in.
Follow-up: search undrawn patches through the list's data.
Bundle budget
renderer/diff-view.jsgrows from 142,443 to 178,690 gzipped bytes (+36.2 KB), for Pierre'sCodeViewand virtualizer. That bundle is lazy (loaded with the first diff shown), and only its baseline is re-recorded.Data cost
No new requests.
readChangesalready carries every file's patch: up to 300 files, and a patch over 100k characters arrives with no body. Pierre highlights only the files near the view, and a collapsed file draws only its header.Screenshots
From a throwaway harness (fake
window.luke, real diff bundle and stylesheet), since deleted.Narrow (600px, tree hidden, split setting on, drawn unified):
Evidence
pnpm check:affected: typecheck passed. The lint step first failed on formatting and an unused suppression, both fixed. Re-run by hand after the fixes:pnpm lint: 0 errorspnpm knip: passedpnpm discarded-effect: passed./scripts/repository-checks.sh: passedpnpm exec vitest run src/renderer/tasks/ src/shared/ src/renderer/diff-view(apps/desktop): 83 files, 707 tests passedagent-changes-tab.test.ts:;, ⇧; and Esc inside the viewchanges-model.test.ts: tree order, filter, start-collapsed rules.agent-changes-tab.test.ts,agent-pull-request-tab.test.ts) read per-file annotations.LUKE_UPDATE_BUNDLE_BUDGET=1:diff-view.jsonly, as above.Invariants
./scripts/check.shgreen. (CI)astype assertion.Effect.run*outside the edges.agent-changes-tab.test.tsandchanges-model.test.ts(listed above).CLAUDE.md/AGENTS.mdsentence names a changed part.PRIVACY.mdunchanged. The list stays underph-no-capture, and every word in a header is the repository's.Notes
main..diff-inline-thread,.diff-noteand.diff-outdated-threads. This PR's token commit fixes those rules onmain.