Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/claude-plugins/plugins/base/skills
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 43e69d345e subagents, ACP: stop with SIGINT only, so claude ends its own tool commands
claude's Bash tool starts every command in a new session, so a signal to
claude's process group never reaches it. claude stops those commands
itself when SIGINT makes it shut down. A SIGKILL leaves them running,
re-parented to init. Per the ruling on #4999, every stop is SIGINT and
nothing escalates.

- Subagent `interrupt` always sends SIGINT. The `force` argument is gone
  from the MCP tool and from `session::interrupt`. A caller that still
  sends `force: true` gets SIGINT; the argument is ignored.
- `interrupt` used to free the session name before it signalled, so a
  `continue` could start a second claude on the session while the first
  was still exiting. The `running` map now holds a three-state `Slot`
  (starting, running, stopping). An interrupted claude turn is
  `Stopping` until the turn task's own `finish_turn` clears it. `status`
  says "stopping", and `start`/`continue` on that name are refused.
  `interrupt` still returns at once. The ACP arm is unchanged: its name
  is freed when `session/cancel` is sent.
- ACP `Connection` drop sends its process group SIGINT, not SIGKILL, and
  the spawn no longer sets tokio's `kill_on_drop`, which SIGKILLed the
  leader after the `Drop` body. The test fixture's background grandchild
  resets SIGINT to default, since `&` starts it ignored.

Tests: a fake claude that records SIGINT, interrupted, fails with
`cancel(true)` (the old `force: true` path). An interrupted fake claude
that keeps running keeps its name claimed and `continue` is refused,
which fails when the slot is freed before the signal. A fake ACP agent
that records SIGINT, dropped, fails with SIGKILL in `Drop`, and also with
SIGINT in `Drop` but `kill_on_drop(true)` left in place.

Not changed: hive-claude's idle watchdog (still SIGKILL, separate
hive-claude change), the units' `KillSignal`, `machinectl kill`, and the
login helper.
2026-10-11 02:44:31 +02:00
..
async-task-hygiene claude-plugins: split agent-hygiene guidance into five focused skills 2026-07-27 16:19:17 +02:00
choosing-a-comms-channel choosing-a-comms-channel: drop the history framing, state the guidance plainly 2026-08-30 03:42:57 +02:00
claude-subagents subagents, ACP: stop with SIGINT only, so claude ends its own tool commands 2026-10-11 02:44:31 +02:00
forge-issue-filing docs, prompts, hive-forge: stop handing readers the renamed verbs 2026-09-10 17:22:57 +02:00
forge-triage treefmt: apply prettier 2026-09-02 15:25:07 +02:00
forge-workflow claude-plugins: add forge-workflow skill to the base plugin 2026-07-27 16:19:46 +02:00
headless-screenshot treefmt: apply prettier 2026-09-02 15:25:07 +02:00
planning-gate claude-plugins: split agent-hygiene guidance into five focused skills 2026-07-27 16:19:17 +02:00
pr-review treefmt: apply prettier 2026-09-02 15:25:07 +02:00
state-hygiene claude-plugins: state-hygiene skill - archive files go in a subdir, not state top level 2026-07-27 13:56:29 +02:00
state-not-tmp claude-plugins: split agent-hygiene guidance into five focused skills 2026-07-27 16:19:17 +02:00
status-and-blockers claude-plugins: split agent-hygiene guidance into five focused skills 2026-07-27 16:19:17 +02:00
swarm-logs claude-plugins: format the swarm-logs skill with nix fmt 2026-09-17 15:17:33 +02:00