feat(app): browse full commit history in a History tab - #4141
Closed
CN-liuzhiyang wants to merge 2 commits into
Closed
feat(app): browse full commit history in a History tab#4141CN-liuzhiyang wants to merge 2 commits into
CN-liuzhiyang wants to merge 2 commits into
Conversation
The Changes panel only listed commits ahead of base, so a clean checkout showed nothing at all and there was no way to read history that was already pushed or merged. Adds a `commit_log` panel, reachable from the Commits section header, the Changes overflow menu, and the New Tab launcher. Rows show shortSha, subject, ref badges, and relative time, with the author on wide panes. Selecting a commit opens the existing commit_diff tab. A scope toggle switches between the current branch and all branches, including remote-tracking ones. Backed by a new gated RPC, checkout.commits.list_history. It skips --raw --numstat: the history rows render no file lists, and a tree diff per commit is what forced CHECKOUT_BASE_COMMIT_LIMIT down to 10. The cursor pins the starting commit OIDs at page one and replays them with --skip, because --all re-expands to whatever refs exist at call time and would shift rows between pages. Pinned tips are validated as hex before reaching argv, and a tip lost to a force-push reports cursorExpired so the list restarts rather than splicing in a shifted page. Adds useFetchInfiniteQuery to @/data/query rather than putting another file on the raw-query burn-down list. The history query is deliberately left out of the checkout_status_update invalidation path, which fires on every working-tree change and would reset paging to the first page. The commit_diff tab this lands you in could not collapse a file. collapseState was gated to the working mode at the type level, and the file header rendered non-interactive, so the panel that history now sends people to several times a session behaved worse than the Changes panel beside it. Both modes carry collapseState now, headers toggle in either, and the commit_diff toolbar gets collapse-all and wrap-lines alongside the split toggle -- so it also renders on compact, where only the split toggle drops out. Collapse lives in tab state and survives a tab switch. FileHeader only wraps itself in a ContextMenu when it was handed file actions. A commit diff has none, and the trigger preventDefaults right click before discovering the menu is empty, which would have swallowed the browser menu to show nothing.
…top dev on Windows Desktop dev didn't watch-build protocol/client like `npm run dev` does, so stale dist output for those packages went unnoticed. Fingerprint their sources against the last desktop dev build and rebuild only when they changed. Also documents the Windows Hyper-V/WSL reserved-port gotcha and adds a `desktop-win` paseo.json service entry.
Collaborator
|
I prefer this as a plugin workspace panel. That API is on main for the upcoming 0.8 release: workspace panels. Closing the core PR in favor of the plugin approach. |
This was referenced Sep 8, 2026
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.
Linked issue
Closes #
Type of change
Reasoning
The Changes panel only listed commits ahead of base, so a clean checkout showed nothing and there was no way to browse history that was already pushed or merged. This adds a History tab to browse the full commit log for a checkout.
Goals
commit_logpanel reachable from the Commits section header, the Changes overflow menu, and the New Tab launcher.checkout.commits.list_history, with stable cursor-based pagination that tolerates force-pushes (reportscursorExpiredinstead of splicing a shifted page).packages/desktop/scripts/dev.ps1didn't rebuild@getpaseo/protocol/@getpaseo/clienton change likenpm run devdoes; added fingerprint-based rebuild-on-change, documented a Windows Hyper-V/WSL reserved-port gotcha, and added adesktop-winpaseo.json service entry.Non-goals
--raw --numstatfor performance).QA
npm run typecheckandnpm run format:checkpass locally via pre-commit hooks on both commits.Checklist
npm run typecheckpassesnpm run lintpasses (not independently re-run this session)npm run formatpasses