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 |
|---|---|---|---|---|---|
| Tasks leave exited boxes | L | needs care | strongest | an agent | 740 (440 code, 300 tests) |
min task runreturns the exit code and keeps the box.
Covers:
- BOX-015
- BOX-038
Layers:
- client:
- crates/minimal/src/task.rs: task box from spec; exit code
- crates/minimal/src/cmd/boxes/create.rs: shared create path
- crates/minimal/src/cmd/boxes/lifecycle.rs: run keeps its box
cargo nextest run -p minimal task_run_returns_the_entrypoint_exit_code
- daemon:
- crates/minimald/src/exec/run.rs: old task path, one release
- crates/minimald/src/exec/process.rs: task is the entrypoint
- crates/minimald-rpc/src/exec.rs: old request, one release
- crates/minimald/src/box_actor/host.rs: launch runs the spec argv; drop
run_by_exec - crates/minimald/src/box_runtime/launcher.rs: entrypoint launches the argv, not the shell
cargo nextest run -p minimald daemon_never_stops_for_idle_or_client_losscargo nextest run -p minimald until_complete_ends_on_entrypoint_return_without_client
Widened by the maintainer (2026-11-03): the launch flip needs box_actor/host.rs (run_by_exec: true) and box_runtime/launcher.rs; both files' comments name this task as the one that removes the interim flag.
Split by the maintainer (2026-11-03): relaying the task's exit code and inputs through the in-box helper (env.rs, env_min_helper.sh) is T62 (#2953). This task waits on it, then switches the launch to the entrypoint.
Waits on:
- T9 — End a box when its entrypoint returns, never for idleness or client loss #2401
- T40 — Split the daemon's exec dispatch into files by concern #2398
- T62 — Relay a task's exit code and inputs through the in-box min helper #2953
Plan block
### T43 — Run a task as a task box that returns its exit code
slice: S2
kind: task
covers: BOX-015, BOX-038
size: L
est: 440 code, 300 tests
executor: agent
difficulty: needs care
model: strongest
diagnostics: daemon log names each task box and its code
observability: one span per task run
layers:
- client:
- crates/minimal/src/task.rs: task box from spec; exit code
- crates/minimal/src/cmd/boxes/create.rs: shared create path
- crates/minimal/src/cmd/boxes/lifecycle.rs: run keeps its box
test: cargo nextest run -p minimal task_run_returns_the_entrypoint_exit_code
- daemon:
- crates/minimald/src/exec/run.rs: old task path, one release
- crates/minimald/src/exec/process.rs: task is the entrypoint
- crates/minimald-rpc/src/exec.rs: old request, one release
- crates/minimald/src/box_actor/host.rs: launch runs the spec argv; drop run_by_exec
- crates/minimald/src/box_runtime/launcher.rs: entrypoint launches the argv, not the shell
test: cargo nextest run -p minimald daemon_never_stops_for_idle_or_client_loss
test: cargo nextest run -p minimald until_complete_ends_on_entrypoint_return_without_client
produces: none
consumes: none
proof: `min task run` returns the exit code and keeps the box.
depends on:
- blocked by #2401
- blocked by #2398
- blocked by #2953
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
mitodrummer commentedon Nov 2, 2026
From the #2841 (T42) review:
SandboxLauncher::launch'sArgvbranch (crates/minimald/src/box_runtime/launcher.rs) sets noSHELL/PS1and skips the per-attach environment that the shell branch delivers throughATTACH_ENV_BASH_RC. Today nothing reaches it in production, becauserun_by_execis always true. When this task makes the task the box's entrypoint and removesrun_by_exec, give an argv entrypoint the attach environment too, through the process env rather than a bash rcfile.fix(minimald): refuse a launch whose stored spec cannot be read
build(deps): bump sysinfo to 0.40 (#2866)
T42 — Start every box's entrypoint from its spec through one launcher (…
minimal-foundry commentedon Nov 3, 2026
Done. #2999 merged.
branch
agent/2405-run-a-task-as-a-task-box-that-returns-its-exit-c· epic #2236 · PR #2999e27591d0d6c9b59e28b4947281d59e198d6d059989a800f5041df1012d778d14d5697b4e858022689137bd32Updated 2026-11-06T01:31:47.488Z.
docs(specs): drop min task run --keep from spec 28 (gominimal#3063)