Skip to content

feat(ui): make history automatically responsive - #987

Draft
benvinegar wants to merge 4 commits into
feat/hunk-log-chromefrom
feat/hunk-log-responsive
Draft

feat(ui): make history automatically responsive#987
benvinegar wants to merge 4 commits into
feat/hunk-log-chromefrom
feat/hunk-log-responsive

Conversation

@benvinegar

@benvinegar benvinegar commented Sep 5, 2026

Copy link
Copy Markdown
Member

Stack

Problem

The history stack still exposed static and interactive modes as separate user experiences, and its interactive rows used a conventional left-to-right terminal-log layout. Users should be able to type hunk log once and get the right experience for their environment, with information density that responds automatically to available space.

Approach

  • make plain hunk log open the interactive desktop history browser when stdin and stdout are terminals
  • preserve automatic complete static output for pipes and redirection
  • add --static to force static output on a terminal, paging only when needed
  • retain hidden --interactive parsing as a compatibility alias without documenting a second workflow
  • replace interactive medium/compact controls with one width-driven responsive projection
  • use a GitHub-inspired hierarchy: title, description, author/date/decorations on the left; commit ID and secondary merge state aligned right
  • progressively remove description, date, and secondary state as width contracts
  • reserve the right-side ID and a minimum title budget even for adversarial multi-lane graphs
  • preserve display-cell-correct clickable IDs, themes, Git/Jujutsu providers, bounded loading, menus, and review-return state

Static --oneline and --format remain available because they control shell output rather than creating competing interactive applications.

Validation

  • full test suite: 2,186 passed, 9 skipped
  • log PTY integration: 6 passed
  • bun run typecheck
  • bun run lint
  • bun run check:docs
  • bun run deps:check
  • changed-file formatting and git diff --check
  • independent review of the implementation and follow-up fixes
  • manual tmux validation at 100×24 and 45×18
  • manually verified automatic TTY launch, responsive resize, and forced static output

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

Visual evidence

The approved responsive design is available at https://sideshow.sh/p/eAsZCIw7mf4. Real-terminal media can be added while this PR remains draft.

Non-goals

  • no repository mutation actions
  • no alternate interactive density modes
  • no changes to provider-owned history or review semantics
  • no removal of static formatting controls used by pipes and scripts

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

@vercel

vercel Bot commented Sep 5, 2026

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated
hunk-web Ignored Ignored Preview Sep 5, 2026 1:28am 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