Skip to content

feat(git): redesign commit history with hover cards#88

Merged
antfu merged 5 commits into
mainfrom
sour-carrots-walk
Jul 14, 2026
Merged

feat(git): redesign commit history with hover cards#88
antfu merged 5 commits into
mainfrom
sour-carrots-walk

Conversation

@antfubot

Copy link
Copy Markdown
Collaborator

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

  • Heading — the log panel leads with a bold "Commit History" title plus commit count.
  • Graph — the HEAD commit reads as a hollow ring ("you are here") over solid lane-colored dots; hollow fills track the base surface so they stay hollow in both themes. Lane palette now leads with blue for the mainline, then warm tones (orange/red) for branches.
  • Rows — dropped the reserved refs column and per-row lane gradient. Rows show the subject with branch/tag pills inline and a subtle hover/selection highlight. Commits off the mainline recede, so the checked-out line reads as the spine of the history.
  • Hover card — hovering a commit pops a floating card with an avatar, author, relative time, the commit body, and N files changed +X −Y with an arrow to open full details. Detail is fetched lazily via git:show (no patch) and cached per commit.
  • Avatar — a new offline, deterministic initials avatar (components/ui/avatar.tsx); no network round-trip, keeping the dashboard self-contained.
  • Stories — updated with commit bodies and a mock detail loader so the hover card is exercised in Storybook.

Verification

Client tsc --noEmit, eslint, and the client-lib vitest suite pass. Verified visually via the Panels/Log Storybook story (default + hovered, light + dark).

This PR was created with the help of an agent.

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.
@netlify

netlify Bot commented Jul 13, 2026

Copy link
Copy Markdown

Deploy Preview for devfra ready!

Name Link
🔨 Latest commit 32558fd
🔍 Latest deploy log https://app.netlify.com/projects/devfra/deploys/6a55e3912cfe7300087b8657
😎 Deploy Preview https://deploy-preview-88--devfra.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

antfubot added 4 commits July 13, 2026 01:31
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.
@antfu antfu merged commit 976ce16 into main Jul 14, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants