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

dcdpr / jp / 28679114441
69%

Build:
DEFAULT BRANCH: main
Ran 03 Jul 2026 07:12PM UTC
Jobs 1
Files 432
Run time 2min
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

03 Jul 2026 07:09PM UTC coverage: 68.098% (+0.5%) from 67.578%
28679114441

push

github

web-flow
feat(cli, config): Escalate Ctrl-C through a signal router (#837)

Ctrl-C handling moves from a broadcast channel of ad-hoc signals to a
`SignalRouter` that owns the root shutdown token and a LIFO stack of
scoped interrupt handlers (RFD 045). The first Ctrl-C press now always
reaches the topmost active handler: the streaming loop, the tool
execution loop, or a new turn-level handler that covers the gaps between
turn phases (persistence, thread building, response processing) and
commits partial content before ending the turn. A press with no
registered handler, or a second press within
`interrupt.escalation_cooldown_secs` (default 2s), begins a graceful
shutdown; any further press exits the process immediately with code
130. SIGTERM always requests a graceful shutdown and SIGQUIT always
exits immediately, both bypassing the handler stack.

Cancelling an interrupt menu itself with Ctrl-C now escalates instead of
silently falling back to "Stop": both the streaming and tool menus
commit partial content or cancel running tools, then begin a graceful
shutdown. During tool execution, a Ctrl-C is declined while an
interactive tool prompt is active so the prompt keeps handling it, and
propagates to the next handler down the stack otherwise. A Ctrl-C during
the stream-error backoff wait now cuts the wait short and opens the
interrupt menu immediately instead of after the full delay.

`jp_task::TaskHandler` drops its separate force-cancellation token now
that SIGQUIT exits the process directly; background task draining
watches the router's shutdown token instead.

Docs: RFD 045 is marked Implemented, and RFD 092 (predictable and
responsive interrupt escalation) is added as a follow-up proposal
covering the shutdown watchdog, a turn menu, a generic fallback menu,
and Ctrl-C handling inside active prompts.

Signed-off-by: Jean Mertz <git@jeanmertz.com>

272 of 326 new or added lines in 14 files covered. (83.44%)

12 existing lines in 4 files now uncovered.

38580 of 56654 relevant lines covered (68.1%)

671.54 hits per line

Uncovered Changes

Lines Coverage ∆ File
18
77.04
11.04% crates/jp_cli/src/cmd/query/turn_loop.rs
12
39.68
1.6% crates/jp_cli/src/lib.rs
9
9.96
-0.11% crates/jp_cli/src/cmd/plugin/dispatch.rs
5
96.45
20.37% crates/jp_cli/src/signals.rs
4
25.93
-0.74% crates/jp_cli/src/cmd/lock.rs
3
67.95
15.23% crates/jp_cli/src/cmd/query/tool/coordinator.rs
2
46.3
0.0% crates/jp_cli/src/cmd/query.rs
1
70.97
-1.2% crates/jp_cli/src/cmd/query/interrupt/signals.rs

Coverage Regressions

Lines Coverage ∆ File
4
4.17
0.6% crates/jp_task/src/handler.rs
4
81.56
-2.13% crates/plugins/command/serve-web/src/client.rs
2
25.93
-0.74% crates/jp_cli/src/cmd/lock.rs
2
39.68
1.6% crates/jp_cli/src/lib.rs
Jobs
ID Job ID Ran Files Coverage
1 28679114441.1 03 Jul 2026 07:11PM UTC 432
68.1
GitHub Action Run
Source Files on build 28679114441
  • Tree
  • List 432
  • Changed 20
  • Source Changed 15
  • Coverage Changed 19
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28679114441
  • 494fb6d2 on github
  • Prev Build on main (#28665285449)
  • Next Build on main (#28680686760)
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