You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
T33 — Exit codes follow the architecture's table #2923
### T33 — Exit codes follow the architecture's table
slice: S8
kind: task
covers: BCLI-034
size: S
est: 100 code, 60 tests
executor: agent
difficulty: routine
model: light
diagnostics: each refusal keeps the message the task that added it prints; this task changes only the exit code, pinned by exit_code_table
observability: the command's existing tracing span records the verb, the box id it resolved and the outcome
layers:
- client:
- crates/minimal/src/main.rs: maps each outcome to the exit code the architecture's table names
- crates/minimal/src/tests.rs: the in-process minimald test harness gains this layer's tests
test: cargo nextest run -p minimal exit_code_table
produces: none
consumes: none
proof: Every command ends with the exit code the architecture's table gives its outcome.
depends on:
- blocked by #2922
From the pre-merge review of BCLI T2 (#2961). min box stop on a box that is already stopped or exited forwards the daemon's raw text, "session <uuid> is stopped, not running, so there is nothing to stop" (box_manager.rsstop_box_answer_inner, through box_rpc_error), with exit 1. The architecture's table gives "an operation the target's state does not admit… naming the state" exit 2, and the message should name what the user typed, not "session ". The daemon's other reap refusals ("still being created", resume pending) behave the same way. The not-found path also exits 1 where BCLI-064 wants 4 (shared with box show).
Activity
mitodrummer commentedon Nov 4, 2026
From the pre-merge review of BCLI T2 (#2961).
min box stopon a box that is already stopped or exited forwards the daemon's raw text, "session<uuid>is stopped, not running, so there is nothing to stop" (box_manager.rsstop_box_answer_inner, throughbox_rpc_error), with exit 1. The architecture's table gives "an operation the target's state does not admit… naming the state" exit 2, and the message should name what the user typed, not "session ". The daemon's other reap refusals ("still being created", resume pending) behave the same way. The not-found path also exits 1 where BCLI-064 wants 4 (shared withbox show).