Repository navigation
Closed
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largeA standard model: work that needs care, or routine work that is largeplan:integrationOwns the seam of a slice; its proof is the slice's observableOwns the seam of a slice; its proof is the slice's observablesize:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Description
Task
| slice | size | difficulty | model | who | estimated lines |
|---|---|---|---|---|---|
| Tasks leave exited boxes | M | routine | standard | an agent | 300 (60 code, 240 tests) |
run a task that sleeps and then exits 3, close the terminal mid-run, and see the box listed as exited with code 3, its events and its output still readable.
Covers:
- none
Layers:
- daemon:
- crates/minimald/src/box_runtime/tests.rs: tests
cargo nextest run -p minimald task_box_exits_with_code_and_output_after_client_drop
- cli:
- crates/minimal/src/tests.rs: tests
cargo nextest run -p minimal task_run_dropped_client_reads_back_exited_box
Waits on:
- T40 — Split the daemon's exec dispatch into files by concern #2398
- T42 — Start every box's entrypoint from its spec through one launcher #2399
- T9 — End a box when its entrypoint returns, never for idleness or client loss #2401
- T43 — Run a task as a task box that returns its exit code #2405
- T10 — Log a box's output from its start, out of the box's reach #2402
Plan block
### T11 — Tasks leave exited boxes, end to end
slice: S2
kind: integration
covers: none
size: M
est: 60 code, 240 tests
executor: agent
difficulty: routine
model: standard
diagnostics: daemon log names task box's exit and output
observability: one span covers task run end to end
layers:
- daemon:
- crates/minimald/src/box_runtime/tests.rs: tests
test: cargo nextest run -p minimald task_box_exits_with_code_and_output_after_client_drop
- cli:
- crates/minimal/src/tests.rs: tests
test: cargo nextest run -p minimal task_run_dropped_client_reads_back_exited_box
produces: none
consumes: none
proof: run a task that sleeps and then exits 3, close the terminal mid-run, and see the box listed as exited with code 3, its events and its output still readable.
depends on:
- blocked by #2398
- blocked by #2399
- blocked by #2401
- blocked by #2405
- blocked by #2402
Reacted by minimal-foundry
Metadata
Metadata
Assignees
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largeA standard model: work that needs care, or routine work that is largeplan:integrationOwns the seam of a slice; its proof is the slice's observableOwns the seam of a slice; its proof is the slice's observablesize:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Activity
minimal-foundry commentedon Nov 6, 2026
Done. #3085 merged.
branch
agent/2407-tasks-leave-exited-boxes-end-to-end· epic #2236 · PR #3085Updated 2026-11-06T06:51:34.839Z.
agent-137 commentedon Nov 6, 2026
Closing: #3085 delivered T11's daemon half (
task_box_exits_with_code_and_output_after_client_drop). The CLI half (task_run_dropped_client_reads_back_exited_boxand thetest-supportmock launcher seam) is tracked by #3089, per arch condition C1 on #3085.