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

umputun / revdiff / 25018428376

27 Apr 2026 08:41PM UTC coverage: 89.622% (+0.02%) from 89.602%
25018428376

push

github

web-flow
feat: review info popup (i) with --description and aggregate stats (#155)

* feat(diff,review): CommitLogger capability and review stats package

- Add CommitLogger optional capability to diff.Renderer surface so VCS
  backends (git/hg/jj) can enumerate commits in a ref range; consumers
  type-assert and gracefully fall back when unavailable.
- Define CommitInfo with pre-sanitized Author/Subject/Body fields and a
  MaxCommits cap; add splitCommitDesc helper so all VCS parsers expose a
  uniform subject/body pair.
- Export SanitizeCommitText (renamed from unexported helper) so the same
  ANSI/CSI/C0/DEL/C1/invalid-UTF-8 strip path serves commit metadata,
  description prose, and overlay detail rows.
- Add CountChanges helper and FileEntryPaths to keep stats counting and
  path extraction in one place.
- Introduce app/review package with ComputeStats / FileDiffer interface
  and safeWorkDirPath validation for untracked-file reads. Validation is
  best-effort lexical+symlink check against a non-racing filesystem;
  TOCTOU window between Stat and the later Open is documented.

* feat(ui,cli): unified info popup (i) with description, scope, and commit log

User-facing info overlay reachable via the i key, replacing the prior
commit-only popup with a richer review-info surface.

CLI:
- --description / --description-file populate a markdown description
  section inside the popup. File reads cap at 256 KB via io.LimitReader,
  reject non-regular targets (FIFOs, devices, dirs), and route through
  the shared SanitizeCommitText strip path. The two flags are mutually
  exclusive at parse time.

Keymap:
- Rename ActionCommitInfo to ActionInfo. Pre-rename keybinding files
  using "commit_info" still load: the parser accepts the deprecated
  alias, rewrites it to the canonical action, and emits a one-time WARN.

UI:
- New app/ui/overlay/info.go renders the unified popup: description
  prose (chroma-highlighted once at NewModel time), invocation scope
  rows, file/s... (continued)

848 of 933 new or added lines in 20 files covered. (90.89%)

161 existing lines in 10 files now uncovered.

9309 of 10387 relevant lines covered (89.62%)

505.72 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.4
/app/diff/diff.go


Build SHA Not Found

The commit SHA "8645569cf98eef1dd6c3856ea66377004a811242" was not found in your repository, so the file cannot be loaded. This may be because you posted from a local development environment, or your CI created an ephemeral commit.

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc