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

umputun / revdiff / 25206634128
90%

Build:
DEFAULT BRANCH: master
Ran 01 May 2026 07:32AM UTC
Jobs 1
Files 67
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

01 May 2026 07:31AM UTC coverage: 89.69% (+0.1%) from 89.581%
25206634128

push

github

web-flow
feat: navigate annotations across files with }/{ keys (#162)

* feat: add cross-file annotation navigation (}/{)

Adds }/{ keybindings to jump to next/previous annotation across files
in a single flat list (alphabetical files, file-level first per file,
then ascending lines — matches the @ popup order). Always crosses file
boundaries; silent no-op at the first/last annotation.

Reuses the existing jumpToAnnotationTarget machinery (collapsed-hunk
auto-expansion + cross-file pendingAnnotJump handoff) by exposing it
through tryJumpToAnnotationTarget which returns a jumped-bool. The
walker retries on ok=false so non-jumpable targets (path filtered out
of the tree, line missing from the loaded diff in compact mode) cannot
trap the user on a hidden annotation. Loop is bounded by len(flat).

The flat list is rebuilt every keypress so additions and deletions
take effect without explicit invalidation. ChangeDivider rows collapse
to a synthetic line=-1 cursor key so file-level annotations stay
reachable from a leading divider.

Docs synced: README.md, site/docs.html, docs/ARCHITECTURE.md, both
.claude-plugin and plugins/codex reference usage.md copies.

* fix(review-loop): final cleanup pass — addressed 2 minor findings

- [minor] app/ui/annotnav.go:25 — handleAnnotNav was O(N²) (len(flat) outer
  retries × pickAdjacentAnnotation O(N) inner). Refactored to compute the
  starting flat-list index once via startingFlatIndex, then walk indexes
  directly with ±1 step. Each candidate is examined at most once → O(N)
  worst case even when every annotation is non-jumpable.

- [minor] app/ui/annotnav.go:81 — currentAnnotKey mapped ALL ChangeDivider
  rows to line=-1, which is correct for leading dividers but causes
  middle/trailing dividers (reachable via mouse-click) to short-circuit
  forward } back to the file-level/first same-file annotation. Fixed by
  walking back to the nearest preceding non-divider line via
  dividerAnnotKey and inheriting its position; only l... (continued)

109 of 110 new or added lines in 4 files covered. (99.09%)

1 existing line in 1 file now uncovered.

9447 of 10533 relevant lines covered (89.69%)

514.96 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
97.4
2.02% app/ui/annotlist.go

Coverage Regressions

Lines Coverage ∆ File
1
97.4
2.02% app/ui/annotlist.go
Jobs
ID Job ID Ran Files Coverage
1 25206634128.1 01 May 2026 07:32AM UTC 67
89.69
GitHub Action Run
Source Files on build 25206634128
  • Tree
  • List 67
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • c4e66546 on github
  • Prev Build on master (#25135350154)
  • Next Build on master (#25206694804)
  • 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