Skip to content

feat: add static-first history browsing - #979

Open
benvinegar wants to merge 5 commits into
mainfrom
feat/hunk-log
Open

feat: add static-first history browsing#979
benvinegar wants to merge 5 commits into
mainfrom
feat/hunk-log

Conversation

@benvinegar

Copy link
Copy Markdown
Member

Problem

Hunk makes individual changesets easy to understand, but finding the commit to review still requires leaving Hunk and assembling a personal git log workflow. This adds a static-first history entry point with an explicit interactive path into the existing review UI.

Approach

  • add hunk log with Git-like medium output by default and explicit compact/oneline formats
  • render full commit metadata, graph topology, branches, remotes, and tags using Hunk's existing theme system
  • add hunk log --interactive with keyboard search/navigation, mouse selection, clickable commit ids, and return to the retained history position
  • expose a bounded, cancellable history cursor and provider-owned review planning through extension API v17
  • implement the public history capability in the bundled Git and Jujutsu adapters
  • stream provider output with backpressure and preserve clean pipe, pager, color, Unicode/ASCII, and terminal cleanup behavior

The built-in surface owns command dispatch, graph planning, presentation, themes, terminal lifecycle, and review orchestration. Repository semantics—including enumeration, immutable identities, decorations, parent topology, and root/merge review planning—remain in bundled or third-party VCS extensions through the same public API.

Non-goals

This is not a repository dashboard or mutation client. It does not add checkout, staging, branch management, rebase, push, or permanent diff/status panes. A follow-up will explore reusing more of Hunk's desktop chrome in the explicit interactive surface.

Validation

  • bun run typecheck
  • focused history, extension-boundary, Git, Jujutsu, projection, pager, and CLI tests
  • full unit suite: 1,870 passed, 2 skipped
  • PTY integration suite: 141 passed, 1 skipped
  • TTY smoke suite: 9 passed
  • bun run check:docs
  • bun run deps:check
  • lint and changed-file formatting checks
  • manual tmux checks for static output, narrow/ASCII output, rapid input, opening a selected commit, and returning to retained history

Tested on Linux with Git, Jujutsu, tmux, and a real TTY. Windows behavior is covered by portable paths and tests but was not executed on Windows.

Visual evidence

Manual real-terminal validation was performed, but media has not yet been uploaded. This PR remains draft while visual evidence and any maintainer-requested product discussion are added.

Known limitations / follow-up

  • interactive history currently uses its focused terminal surface rather than the shared review menu chrome
  • Git and Jujutsu expose only history operations their CLIs can represent honestly; unsupported provider filters return explicit errors
  • Windows was not tested directly

This PR description was generated by Pi using GPT-5.6-sol

@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
hunk-web Ready Ready Preview Sep 5, 2026 10:54pm UTC

Request Review

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Too many files changed for review (53 files, 50 file limit).

Bypass the limit by tagging @greptile-apps to review.

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.

1 participant