• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / revdiff / 24600877299
90%

Build:
DEFAULT BRANCH: master
Ran 18 Apr 2026 08:34AM UTC
Jobs 1
Files 58
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Apr 2026 08:33AM UTC coverage: 88.944% (+0.6%) from 88.374%
24600877299

push

github

web-flow
feat: commit-info popup (i hotkey) for git, hg, and jj (#119)

* docs: add commit-info popup implementation plan

captures the design (capability interface, overlay, lazy fetch, i hotkey,
git/hg/jj support) and task breakdown that guided the implementation.
stored under docs/plans/completed since all tasks are done.

* feat(diff): add CommitLog capability for git, hg, and jj

introduces the CommitInfo struct and CommitLogger capability interface,
with implementations for all three VCS renderers.

- git: git log -z --format=... with NUL record separator; ref form
  "" (noop), "X" (X..HEAD), "X..Y" (as-is)
- hg: hg log -r <revset> --template ...; revset form X::., X::Y - X
- jj: jj log --no-graph -T <template> -r <revset>; revset form X..@, X..Y

parser strips raw \x1b bytes from subject/body to neutralize ANSI
injection, caps results at 500 commits per range, and wraps CLI failures
with fmt.Errorf. testdata files cover empty, single, many, no-body, and
tricky (CJK, tabs, ANSI-looking) cases. hg and jj also get e2e smoke
tests exercising real binaries.

* feat(ui): add commit-info popup overlay with i hotkey

adds a read-only pager overlay that shows the commits included in the
current ref-based diff range, triggered by the i hotkey. helps reviewers
read the narrative context of what the changes are supposed to do
without leaving revdiff.

- keymap: ActionCommitInfo bound to i by default, rebindable
- style: StyleKeyCommitInfoBox registered in resolver (accent border
  matches help/annotlist/themeselect)
- overlay: commitInfoOverlay with manual rendering, word wrap via
  ansi.Wrap, scroll via j/k PgDn/PgUp g/G, error and empty states,
  truncated-range indicator; sizing clamped at 90 cols wide
- model: consumer-side commitLogSource interface (moq-generated mock)
  with ModelConfig.CommitLog injection point and CommitsApplicable gate
  computed in main.go from ref + mode flags. lazy fetch on first open,
  session-wide cache, typed-nil guard on the config... (continued)

485 of 538 new or added lines in 12 files covered. (90.15%)

7546 of 8484 relevant lines covered (88.94%)

360.85 hits per line

Uncovered Changes

Lines Coverage ∆ File
38
4.49
4.49% app/main.go
8
95.6
app/ui/overlay/commitinfo.go
3
51.19
0.0% app/renderer_setup.go
2
94.4
-1.29% app/ui/overlay/overlay.go
1
91.53
3.31% app/diff/diff.go
1
79.56
12.46% app/diff/jj.go
Jobs
ID Job ID Ran Files Coverage
1 24600877299.1 18 Apr 2026 08:34AM UTC 58
88.94
GitHub Action Run
Source Files on build 24600877299
  • Tree
  • List 58
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • f9e2ae50 on github
  • Prev Build on master (#24581238132)
  • Next Build on master (#24636874195)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc