feat(git): redesign commit history with hover cards#88
Merged
Conversation
Rework the Git plugin's commit history view: a "Commit History" heading, a hollow HEAD ring over solid lane-colored dots, off-mainline commits that recede, and a floating hover card per commit (avatar, author, time, body, and changed-file stats with a link to full details). Graph lanes now lead with blue for the mainline, then warm tones for branches.
✅ Deploy Preview for devfra ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Reshape the Git dashboard around the commit graph: - Drop the branches sidebar; the branch picker now lives in the top nav. - Merge the Status and Diff tabs into one "Changes" surface — the working tree's staged / unstaged / untracked files, each revealing its diff on click, with stage / unstage / commit in write mode. - Rebuild the commit hover card on @floating-ui/react (hover + focus, safe polygon, flip/shift), styled as an @antfu/design floating panel. - Compact the commit list (tighter rows and padding). - Widen the commit-details panel and render each changed file with a catppuccin file-type icon (ported from @antfu/design's FileIcon) and an A/M/D status mark; git:show now reports per-file change status.
- Resolve real commit-author portraits (GitHub avatar for noreply emails, otherwise Gravatar via a SHA-256 email hash), painting over the initials chip and falling back to it on error or offline. - Tighten the commit list another notch (shorter rows, narrower lane gutter). - Fix the `pnpm dev` harness: a bare `NEXT_PUBLIC_DEVFRAME_WS` port now resolves to a same-host socket on the backend's WS route instead of being mis-read as a path.
The static-export options (`output: 'export'`, a relative `assetPrefix`, `trailingSlash`) were applied unconditionally. In `next dev` a relative `assetPrefix` breaks the client runtime's chunk base, so the page never hydrates — no interactivity, and the RPC client never connects (stuck on "connecting…"). Gate those options to the production build via the config phase; the exported SPA is unchanged, and dev now hydrates and connects.
`git:show` now reports a per-file change status; refresh the tsnapi dts snapshot so the exports API test matches the built types.
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.
Reworks the Git plugin's Commit History view to a cleaner, graph-forward layout with per-commit hover cards, matching the target design in both light and dark themes.
What changed
N files changed +X −Ywith an arrow to open full details. Detail is fetched lazily viagit:show(no patch) and cached per commit.components/ui/avatar.tsx); no network round-trip, keeping the dashboard self-contained.Verification
Client
tsc --noEmit,eslint, and the client-lib vitest suite pass. Verified visually via thePanels/LogStorybook story (default + hovered, light + dark).This PR was created with the help of an agent.