Skip to content

refactor(ui): share desktop chrome with history - #983

Draft
benvinegar wants to merge 2 commits into
feat/hunk-logfrom
feat/hunk-log-chrome
Draft

refactor(ui): share desktop chrome with history#983
benvinegar wants to merge 2 commits into
feat/hunk-logfrom
feat/hunk-log-chrome

Conversation

@benvinegar

@benvinegar benvinegar commented Sep 4, 2026

Copy link
Copy Markdown
Member

Stack

Problem

The first history implementation used a focused raw terminal loop, so interactive history did not share Hunk's desktop-style menu bar, dialogs, theme picker, command authority, or visual language. That made the transition between history and review feel like two separate products.

Approach

  • replace the raw interactive loop with an OpenTUI/React LogApp
  • reuse Hunk's shared menu bar, dropdown, help-dialog, and theme-selector primitives
  • introduce one log command authority for keyboard dispatch, menu hints, help text, and enabled state
  • provide focused File, View, Navigate, Commit, and Help menus while omitting review-only Agent, note, file, layout, and mutation actions
  • preserve the provider-neutral history seam and add provider-owned alternate-parent review planning for Git and Jujutsu merges
  • keep controller state outside React so selection, viewport, search, loaded pages, presentation, and theme survive renderer teardown during commit review
  • retain static hunk log unchanged and shell-native

Interaction

  • F10 opens the menu bar
  • View → Theme reuses the normal Hunk theme picker with live preview
  • Enter or clicking a commit id opens its normal Hunk review
  • Commit → Open parent supports provider-owned merge-parent selection
  • q returns from review to the retained log state, then quits history
  • navigation, search, paging, refresh, copy, and menu actions support keyboard and mouse paths

Validation

  • bun run typecheck
  • bun run lint
  • bun run deps:check
  • bun run test
  • bun run test:integration
  • bun run test:tty-smoke
  • focused log/controller/command/provider tests: 339 passed during the fix pass
  • PTY log integration: 2 passed
  • manual tmux checks at 100×28, 80×24, and 45×17
  • manually opened the shared menu and existing theme picker in the source-built binary

Tested on Linux with Git, Jujutsu, tmux, and a real TTY. Windows was not tested directly.

Visual evidence

Manual real-terminal validation was performed. Media can be added while this PR remains draft.

Non-goals

  • no repository mutation actions
  • no permanent diff, status, or file panes
  • no conversion of the review AppHost into a permanent multimode IDE host
  • no changes to plain static hunk log

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 4, 2026 7:49pm UTC

Request 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