Repository navigation
Open
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 careplan:integrationOwns the seam of a slice; its proof is the slice's observableOwns the seam of a slice; its proof is the slice's observablesize: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 |
|---|---|---|---|---|---|
| One minimal.toml for every box | L | needs care | strongest | an agent | 540 (300 code, 240 tests) |
declare a session and a task entry with shared defaults in one minimal.toml, keep an old
[session]table working with a hint, and start both boxes from their expanded specs.
Covers:
- none
Layers:
- client:
- crates/minimal/src/cmd/boxes/create.rs: sends the expanded entry
- crates/minimal/src/task.rs: sends the expanded entry
- crates/minimal/src/tests.rs: tests
cargo nextest run -p minimal expanded_session_and_task_entries_start_both_boxes
- daemon:
- crates/boxes/src/daemon/composer.rs: composes from the spec
- crates/boxes/src/wire/request.rs: carries the expanded entry
cargo nextest run -p boxes daemon_composes_from_received_spec_keeping_absent_lists_apart
Waits on:
- T15 — Read the type tables as box entries #2409
- T16 — Fold the layers into one expanded spec, the same bytes every run #2410
- T17 — Read the legacy tables for one release with a hint #2411
- T47 — Give a project with no session entry an implicit default #2412
- T44 — Move the repository's own config off the legacy tables #2416
- T18 — Accept every Box Spec section and refuse unknown keys #2413
- T19 — Take the network mode and egress keys in their canonical shape #2414
- T20 — End an until-complete box at its timeout, and rerun activation hooks on resume when asked #2415
- gominimal/arch#100
Plan block
### T21 — One minimal.toml for every box, end to end
slice: S4
kind: integration
covers: none
size: L
est: 300 code, 240 tests
executor: agent
difficulty: needs care
model: strongest
diagnostics: daemon log names each box's entry
observability: one span from expansion to creation
layers:
- client:
- crates/minimal/src/cmd/boxes/create.rs: sends the expanded entry
- crates/minimal/src/task.rs: sends the expanded entry
- crates/minimal/src/tests.rs: tests
test: cargo nextest run -p minimal expanded_session_and_task_entries_start_both_boxes
- daemon:
- crates/boxes/src/daemon/composer.rs: composes from the spec
- crates/boxes/src/wire/request.rs: carries the expanded entry
test: cargo nextest run -p boxes daemon_composes_from_received_spec_keeping_absent_lists_apart
produces: none
consumes: none
proof: declare a session and a task entry with shared defaults in one minimal.toml, keep an old `[session]` table working with a hint, and start both boxes from their expanded specs.
depends on:
- blocked by #2409
- blocked by #2410
- blocked by #2411
- blocked by #2412
- blocked by #2416
- blocked by #2413
- blocked by #2414
- blocked by #2415
- blocked by gominimal/arch#100
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 careplan:integrationOwns the seam of a slice; its proof is the slice's observableOwns the seam of a slice; its proof is the slice's observablesize:L500 to 900 net lines; one PR, and the ceiling500 to 900 net lines; one PR, and the ceiling
Activity
fix(minimal): keep the legacy [session] scaffold in min init
agent-137 commentedon Nov 6, 2026
Follow-up from BCLI T20 (#2962, arch ruling 1029 C1). When this task makes box creation merge
[defaults.<type>], flipmin initto the entry shape:crates/minimal/src/cmd/project.rs, setINIT_ENTRY_SHAPEtotrue. Then remove the const and theentry_shapeparameter ofrun_init_flow, socmd_initandoffer_mfile_scaffoldalways write the entry shape (to_entry_shape).init_no_flags_writes_legacy_shapewith a test that baremin initwrites[defaults.session]and[boxes.dev]withtype = "session".Until then,
min initwrites the legacy[session]shape on purpose. An entry-shaped scaffold would lose its packages at session start.