Repository navigation
Open
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 largesize:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Description
Task
| slice | size | difficulty | model | who | estimated lines |
|---|---|---|---|---|---|
| Run tasks and wait on them | M | routine | standard | an agent | 440 (200 code, 240 tests) |
min box waitreturns a box's exit code, and a box ended by its own timeout returns 124 from the run and wait commands.
Covers:
- BCLI-013
- BCLI-014
Layers:
- client:
- crates/minimal/src/cli.rs: the verb's arguments and help in the one command 8000 model
- crates/minimal/src/cmd/mod.rs: dispatches the verb
- crates/minimal/src/cmd/boxes/wait.rs (new):
min box waitreads the stored exit, 128 plus the signal, 137 for an orphaned stop, and 124 at a timeout - crates/minimal/src/cmd/boxes.rs: declares the wait module
- crates/minimal/src/main.rs:
failure_exit_codemaps this verb's refusals to their exit codes - crates/minimal/src/tests.rs: the in-process minimald test harness gains this layer's tests
cargo nextest run -p minimal box_wait_returns_retained_exit_code_or_128_plus_signalcargo nextest run -p minimal box_wait_orphaned_stopped_record_returns_137cargo nextest run -p minimal box_wait_timeout_flag_returns_124_box_runs_oncargo nextest run -p minimal run_verbs_and_wait_timeout_return_124_with_code_timeout
Waits on:
- T7 — Run an entry with its stdio and its exit code #2892
- gominimal/arch#160
Plan block
### T8 — Wait on a box and return its exit code
slice: S2
kind: task
covers: BCLI-013, BCLI-014
size: M
est: 200 code, 240 tests
executor: agent
difficulty: routine
model: standard
diagnostics: when `min box wait --timeout` runs out, it prints "Stopped waiting after <d>; <box> is still running." on stderr and exits 124, pinned by box_wait_timeout_flag_returns_124_box_runs_on
observability: the command's existing tracing span records the verb, the box id it resolved and the outcome
layers:
- client:
- crates/minimal/src/cli.rs: the verb's arguments and help in the one command model
- crates/minimal/src/cmd/mod.rs: dispatches the verb
- crates/minimal/src/cmd/boxes/wait.rs (new): `min box wait` reads the stored exit, 128 plus the signal, 137 for an orphaned stop, and 124 at a timeout
- crates/minimal/src/cmd/boxes.rs: declares the wait module
- crates/minimal/src/main.rs: `failure_exit_code` maps this verb's refusals to their exit codes
- crates/minimal/src/tests.rs: the in-process minimald test harness gains this layer's tests
test: cargo nextest run -p minimal box_wait_returns_retained_exit_code_or_128_plus_signal
test: cargo nextest run -p minimal box_wait_orphaned_stopped_record_returns_137
test: cargo nextest run -p minimal box_wait_timeout_flag_returns_124_box_runs_on
test: cargo nextest run -p minimal run_verbs_and_wait_timeout_return_124_with_code_timeout
produces:
- crates/minimal/src/cmd/boxes/wait.rs
consumes: none
proof: `min box wait` returns a box's exit code, and a box ended by its own timeout returns 124 from the run and wait commands.
depends on:
- blocked by #2892
- blocked by gominimal/arch#160
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 largesize:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Activity