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

umputun / revdiff / 29467243034
90%

Build:
DEFAULT BRANCH: master
Ran 16 Jul 2026 02:44AM UTC
Jobs 1
Files 75
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

16 Jul 2026 02:42AM UTC coverage: 89.977% (+0.04%) from 89.934%
29467243034

push

github

web-flow
feat: signal-safe annotation save and tmux window mode (#262)

fixes the annotation-loss corner case from #262: a review running in a tmux `display-popup` loses all in-memory annotations when the SSH/tmux client dies (VPN drop), because the popup is torn down before revdiff can save. Two independent parts.

**binary safety net.** On a signal-delivered termination (SIGHUP from a disconnect, or SIGTERM) revdiff now saves the current annotations to the history file, never the `-o` output. This keeps `O` (the deliberate "ready for review" handoff) and `Q` (discard) meaning exactly what they did before, while making sure an abrupt disconnect no longer drops work. A `shutdownGuard` (`sync.Once` + `atomic.Bool`) owns SIGHUP/SIGTERM via `tea.WithoutSignalHandler()`; SIGINT is caught and drained so a Ctrl-C meant for an external `$EDITOR` no longer quits revdiff. Recovery stays the existing "load newest from `~/.config/revdiff/history/`" flow, and history writes now go through the atomic writer.

**first-class tmux window mode.** `REVDIFF_TMUX_WINDOW=1` opens the review in a server-owned tmux window instead of a client-owned `display-popup`, so a dropped SSH session survives exactly like your shell does, reattach and the live review is still there. It opens focused and restores the prior window on exit; agent-deck auto-detection is unchanged.

*note: SIGTERM no longer writes the `-o` output, it is a safety-net save now, not a handoff. Interactive typed Ctrl-C stays a no-op in the raw-mode TUI. The window mode is launcher-only and works with any binary; the signal safety net needs this binary.*

Related to #262

42 of 75 new or added lines in 3 files covered. (56.0%)

1 existing line in 1 file now uncovered.

10898 of 12112 relevant lines covered (89.98%)

2959.15 hits per line

Uncovered Changes

Lines Coverage ∆ File
33
22.41
1.24% app/main.go

Coverage Regressions

Lines Coverage ∆ File
1
22.41
1.24% app/main.go
Jobs
ID Job ID Ran Files Coverage
1 29467243034.1 16 Jul 2026 02:44AM UTC 75
89.98
GitHub Action Run
Source Files on build 29467243034
  • Tree
  • List 75
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 9aa8ccff on github
  • Prev Build on master (#29397742574)
  • 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