Development record
the-stop-reaches-the-terminal-drive
Summary
What the stop still owes after spc-2611041705580524. The stop itself has landed: the verb, the file's judgement, the guard's person's acts, the check every move makes, the order it takes, and the day's page. What remains is the ADR the trust rule owes and a stop that reaches the machine from elsewhere; the terminal drive takes part. The third acceptance criterion is answered here: a first press or a hang-up is a stop, which the drive of itd-2610222215485265 takes through the loop's haltRun in the same order, from inside the package, waiting for the call in hand; a second press kills the process group, and the drive claims the run with loop.ClaimDriver. Each move the drive takes through the loop makes the check. The intent stays planned until this spec closes.
Footprint
- packages: internal/surface/cli/drain_drive.go, internal/surface/cli/drain_drive_signal.go, internal/core/implement/loop/terminal.go, .abcd/development/decisions/adrs, internal/core/runstop
- tests: internal/surface/cli/drain_drive_signal_test.go, internal/core/implement/loop/stop_test.go, internal/core/runstop/runstop_test.go
Steps
- The ADR the trust rule owes (AFTER)
- priority: AFTER
- login: none
- needs: none
- packages: .abcd/development/decisions/adrs
- tests: none The decomposition routes the rule (a stop is a recorded state; lifting it is the person's, by rule; one folder is the one file outside the owner-only rule) to an ADR and a brief invariant, whose acceptance is the person's act. The code holds the rule; adr-2611050740453233 records it, proposed, and what remains of this step is its acceptance and the invariant.
- A stop over a private network or a cloud adapter (AFTER)
- priority: AFTER
- login: none
- needs: none
- packages: internal/core/runstop
- tests: internal/core/runstop Later work by the ruling (dcn-2611041550139264); not built now.
- The terminal drive takes the stop (AFTER)
- priority: AFTER
- login: none
- needs: none
- packages: internal/surface/cli/drain_drive.go, internal/surface/cli/drain_drive_signal.go, internal/core/implement/loop/terminal.go
- tests: internal/surface/cli/drain_drive_signal_test.go
The first press or a hang-up reaches
haltRun, which stays inside the package, through the drive's own halting: the running agent's call finishes and its receipt is collected, the lane's uncommitted work is saved aside, its claims are released, and the drive prints the run and the lane; a second press kills the process group at once (dcn-2611041608057544). The drive claims the run throughloop.ClaimDriver.
Frontmatter
| id | spc-2611050505220309 |
|---|---|
| type | spec |
| lifecycle | closed |
.abcd/development/specs/closed/spc-2611050505220309-the-stop-reaches-the-terminal-drive.md
open on GitHub ↗ · commit history ↗
References1
- itd-2611041549471712A person stops the unattended runs of each account that chose a folder, with one commandimplements
mentions5
- adr-2611050740453233A stop is recorded state a person sets, and one shared folder is the exception to the owner-only store
- dcn-26110415501392642026-11-04 — The product thinker's rulings on the stop switch (itd-2611041549471712), the restart path (itd-2611041549461012) and the daily digest (itd-2611041549483696), at their filing. The stop lives on the machine that runs the work, in a shared folder chosen as an option at setup (/Users/Shared on macOS and its counterpart on Linux), on a machine no other person shares; the store ownership rule admits this one exception, and a stop that reaches the machine over a private network or through a cloud adapter is later work. The daily digest is a dated file in that same folder: the digest draft asked that one choice hold for both, and an unshared machine answers the privacy cost, so this followed from the ruling above and no question was put. A stop lets an agent in a call finish that call, then stops. A stop releases the run's claims on its work, so a peer may take it up. The drain's plugin page stays an agent's command and its terminal form stays the person's way to drive it; this changes the 2026-10-09 ruling on itd-2610090831227812 that the drain joins the person's menu when itd-82 ships.
- dcn-26110416080575442026-11-04 — The product thinker ruled on 2026-11-04 on two points left over from the planning interview. Ctrl-C in a terminal run behaves as a stop: the call finishes and claims are released, and a second press kills at once. For the first run each subscription belongs to one account: an account at 95 per cent of a window waits for its reset rather than moving onto the other account's subscription, and that can be revisited after the first run.
- itd-2610222215485265abcd drain --drive works through the ledger from a plain terminal
- spc-2611041705580524A person stops the unattended runs of each account that chose a folder, with one command