Repository navigation
Closed
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:strongestThe strongest model available: unknown ground, or large work that needs careThe strongest model available: unknown ground, or large work that needs caresize:L500 to 900 net lines; one PR, and the ceiling500 to 900 net lines; one PR, and the ceiling
Description
Task
| slice | size | difficulty | model | who | estimated lines |
|---|---|---|---|---|---|
| Run commands inside a box | L | needs care | strongest | an agent | 580 (280 code, 300 tests) |
min box execruns a command in a running box, with a terminal or detached, and exits with the command's code.
Covers:
- BCLI-053
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/exec.rs:
min box exec <box> [-t|--detach] [--timeout <d>] -- <cmd>over the exec operation - 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_exec_runs_command_and_exits_with_its_codecargo nextest run -p minimal box_exec_tty_prints_exec_id_to_stderrcargo nextest run -p minimal box_exec_detach_prints_id_and_returnscargo nextest run -p minimal box_exec_timeout_flag_requests_exec_timeoutcargo nextest run -p minimal exec_timeout_returns_124_from_exec_and_wait_exec
Waits on:
- T4 — Resolve a box address across the local hosts #2895
- T31 — Keep terminal and detached execs past a client loss, stop one exec, and honour exec_enabled #2406
Plan block
### T15 — Run a command in a running box
slice: S4
kind: task
covers: BCLI-053
size: L
est: 280 code, 300 tests
executor: agent
difficulty: needs care
model: strongest
diagnostics: when the box's spec turns exec off, `min box exec` prints "<box> does not allow exec (its spec sets [io] exec_enabled = false)." on stderr and exits 5; for a box that is not running it prints "<box> is not running." and exits 2, pinned by box_exec_runs_command_and_exits_with_its_code
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/exec.rs: `min box exec <box> [-t|--detach] [--timeout <d>] -- <cmd>` over the exec operation
- 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_exec_runs_command_and_exits_with_its_code
test: cargo nextest run -p minimal box_exec_tty_prints_exec_id_to_stderr
test: cargo nextest run -p minimal box_exec_detach_prints_id_and_returns
test: cargo nextest run -p minimal box_exec_timeout_flag_requests_exec_timeout
test: cargo nextest run -p minimal exec_timeout_returns_124_from_exec_and_wait_exec
produces: none
consumes:
- crates/minimal/src/cmd/boxes/address.rs
proof: `min box exec` runs a command in a running box, with a terminal or detached, and exits with the command's code.
depends on:
- blocked by #2895
- blocked by #2406
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:strongestThe strongest model available: unknown ground, or large work that needs careThe strongest model available: unknown ground, or large work that needs caresize:L500 to 900 net lines; one PR, and the ceiling500 to 900 net lines; one PR, and the ceiling
Activity
minimal-foundry commentedon Nov 4, 2026
Done. #3009 merged.
branch
agent/2905-run-a-command-in-a-running-box· epic #2879 · PR #3009312e28d0bf9901d8386a021d8ffd83f55fcc43f35686b5bdbba47d19Updated 2026-11-05T04:42:31.304Z.