Repository navigation
feat(web): resizable Git Changes panes and next/previous change across files - #241
Merged
Merged
Conversation
…s files (#211) The Changes tab gets draggable, keyboard-accessible handles between the file list and the diff and above the commit form (sizes remembered per browser, via useResizableWidth with a new vertical axis). Previous/Next change buttons and the existing diff.nextChange/diff.previousChange shortcuts (F7/Shift+F7) walk the blocks of the selected file and continue into the adjacent file, stopping at the ends of the list with a tooltip that says why. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YWW672NbkSQaa8cTJBLP3P
…nd keep focus Next/Previous change now waits for a diff that is still loading (buttons say so), stops on a file whose read failed so its error shows, and only passes over confirmed unsupported content (binary, too large). Crossing a file boundary no longer drops keyboard focus: the new pane takes it back when nothing else holds it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YWW672NbkSQaa8cTJBLP3P
…focus at the end Readiness now follows the query's pending and error status for the current request, so held data from an earlier read (for example a large-text result) no longer lets a refreshing or failed file be passed over, and a failed refresh shows its error even when older data is held. A step that ends on a trailing unsupported file keeps keyboard focus in the diff. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YWW672NbkSQaa8cTJBLP3P
…nge navigation Next/Previous change and F7 stay inert, with the "Loading this diff…" reason, until the lazily loaded renderer can scroll, so a step no longer advances past a block whose scroll was dropped. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YWW672NbkSQaa8cTJBLP3P
mubeda
marked this pull request as ready for review
November 2, 2026 07:39
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Closes #211
Changes
Resizable panes in Git Changes
bibcode:git-changes-list-height,bibcode:git-changes-commit-height), the same way as the Pull Requests file column.useResizableWidth, which gains an optionalaxis: "y".Next/previous change across files
diff.nextChange/diff.previousChange, the same as Compare) and the shared button step through a file's change blocks, then continue into the next or previous file. They stop at the ends of the list.resolveChangeStepinchangeNavigation.logic.tsdoes the stepping. The shared button moved todiffs/ChangeNavigationButton.tsx, with adisabledReason.Docs:
docs/user/keybindings.md,docs/user/workspace-ui.md,docs/architecture/overview.md, and Git Manager step 3 indocs/testing/cross-platform-validation.md.Validation
vp test run --project unit src/components/gitManager src/components/diffs src/hooks src/keybindings.test.ts src/components/pullRequests(apps/web): all pass. 658 tests pass in gitManager/diffs on the final commit.changeNavigation.logic.test.ts: 7 tests.useResizableWidthaxis tests andGitManagerChangesPanes.test.tsx: keys, persistence, reset and restore.GitManagerChangesView.navigation.test.tsx: 14 tests through the real view, covering a pending read, a failed read, stale data with a pending or failed refresh, focus across files and at a trailing binary file, and a delayed renderer.vp check: pass.vp run typecheck(apps/web): pass.Review
Profiler coverage: none applies. This is web-only UI with no processes, RPC, worktree removal, shutdown or events.
Runbooks:
cross-platform-validation.mdupdated; the otherdocs/testingrunbooks were reviewed and remain accurate.Known limitations
🤖 Generated with Claude Code
https://claude.ai/code/session_01YWW672NbkSQaa8cTJBLP3P