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 |
|---|---|---|---|---|---|
| Address boxes and read machine output | L | needs care | strongest | an agent | 600 (300 code, 300 tests) |
Any
min boxverb finds a box by id, name or provider/host/name, and says which hosts hold a name it cannot pick between.
Covers:
- BCLI-002
- BCLI-064
Layers:
- client:
- crates/minimal/src/cmd/boxes/address.rs (new): resolves an id, a name or provider/host/name over every local host, with the ambiguity, unreachable-host and unknown-box refusals
- crates/minimal/src/cmd/boxes.rs: declares the address module
- crates/minimal/src/cmd/boxes/show.rs: resolves its argument through the address module
- crates/minimal/src/cmd/boxes/lifecycle.rs: stop and remove resolve through the address 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_address_accepts_id_name_and_qualifiedcargo nextest run -p minimal ambiguous_name_across_hosts_exit2_lists_candidatescargo nextest run -p minimal retained_name_across_hosts_exit2_lists_host_and_statecargo nextest run -p minimal unqualified_name_with_unreachable_host_exit7_names_hostcargo nextest run -p minimal unknown_box_address_exit4_names_address
Waits on:
Plan block
### T4 — Resolve a box address across the local hosts
slice: S1
kind: task
covers: BCLI-002, BCLI-064
size: L
est: 300 code, 300 tests
executor: agent
difficulty: needs care
model: strongest
diagnostics: when a name matches boxes on two hosts, the command prints "<name> matches boxes on more than one host:" with one line per box naming its host and state, then "Name one as provider/host/name."; when nothing matches, it prints "No box named <address>." and exits 4, pinned by ambiguous_name_across_hosts_exit2_lists_candidates and unknown_box_address_exit4_names_address
observability: the command's existing tracing span records the verb, the box id it resolved and the outcome
layers:
- client:
- crates/minimal/src/cmd/boxes/address.rs (new): resolves an id, a name or provider/host/name over every local host, with the ambiguity, unreachable-host and unknown-box refusals
- crates/minimal/src/cmd/boxes.rs: declares the address module
- crates/minimal/src/cmd/boxes/show.rs: resolves its argument through the address module
- crates/minimal/src/cmd/boxes/lifecycle.rs: stop and remove resolve through the address 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_address_accepts_id_name_and_qualified
test: cargo nextest run -p minimal ambiguous_name_across_hosts_exit2_lists_candidates
test: cargo nextest run -p minimal retained_name_across_hosts_exit2_lists_host_and_state
test: cargo nextest run -p minimal unqualified_name_with_unreachable_host_exit7_names_host
test: cargo nextest run -p minimal unknown_box_address_exit4_names_address
produces:
- crates/minimal/src/cmd/boxes/address.rs
consumes: none
proof: Any `min box` verb finds a box by id, name or provider/host/name, and says which hosts hold a name it cannot pick between.
depends on:
- blocked by #2889
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 4, 2026
Residual from BCLI T5 (PR #2960, arch's C1): wire
output::record_box_id(crates/minimal/src/cmd/output.rs~315, no caller yet) from this task's box resolution, so the rootcmdspan'sbox_id(setEmptyatcmd/mod.rs~56) holds the resolved box id, never the text the user typed. Note thatROOT_SPANis one process-wide slot (output.rs~303). Recording from concurrent runs in one process, as tests do, would overwrite each other.minimal-foundry commentedon Nov 4, 2026
Done. #2987 merged.
branch
agent/2895-resolve-a-box-address-across-the-local-hosts· epic #2879 · PR #2987d04a4e8b637d492559a134200fd54204ab0945f3c9aeba80aabe58f5Updated 2026-11-04T20:13:42.793Z.