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

umputun / agterm / 35155482286
94%

Build:
DEFAULT BRANCH: master
Ran 16 Sep 2026 10:07PM UTC
Jobs 1
Files 146
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 Sep 2026 10:00PM UTC coverage: 92.975% (+0.05%) from 92.93%
35155482286

push

github

web-flow
Show a panel when a custom command fails, and give HUDs an auto-hide (#613)

* feat(commands): show a panel when a custom command fails

A custom command that failed reported only through a macOS banner, which is
suppressed when notifications are off, so a broken chord looked identical to one
that did nothing. stderr is now captured into a bounded tail while the command
runs, and a spawn error or non-zero exit posts a HUD over the session carrying
the command name, the exit status or launch error, and the last usable line of
stderr, omitted when the command wrote none.

The panel clears itself after ten seconds, keyed to the session object and its
overlay slot generation, so neither a later panel nor a restored session wearing
the same id is taken down by a stale timer. A program overlay owning the slot
refuses it, logged rather than evicting the program, and a clean exit reports
nothing whatever it printed.

* fix(commands): capture a failed command's stderr to a file, not a pipe

A pipe's read end lives only as long as agterm, so a background process a chord
started (`command "srv" ctrl+a>s ./server &`) would take SIGPIPE on its next
write once the app quit, where inheriting /dev/null had let it run on. stderr
now goes to a temp file whose last 16 KiB the termination handler reads before
removing it. A file needs no reader, so nothing can block on a full buffer and
no descriptor of ours outlives the command; the drain, its dispatch source and
the delivery handshake go with it.

Three corrections alongside: the spawn doc comment no longer claims there is no
output capture, the ten-second rationale no longer says a panel holds the slot
against a script's own HUD, which it never did, and the user guide no longer
promises an exit status and a stderr line for a command that never started or
printed nothing.

* fix(commands): bound the stderr tail read to the sampled interval

`consume()` measured the file, seeked back 16 KiB and read to the end, so a
bac... (continued)

95 of 96 new or added lines in 9 files covered. (98.96%)

11368 of 12227 relevant lines covered (92.97%)

3337357.14 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
98.54
-0.22% agtermCore/Sources/agtermctlKit/SessionCommands.swift
Jobs
ID Job ID Ran Files Coverage
1 35155482286.1 16 Sep 2026 10:07PM UTC 146
92.97
GitHub Action Run
Source Files on build 35155482286
  • Tree
  • List 146
  • Changed 8
  • Source Changed 8
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35155482286
  • 9247b96f on github
  • Prev Build on master (#35011733132)
  • Next Build on master (#35159878473)
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