Repository navigation
Closed
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largeA standard model: work that needs care, or routine work that is largesize: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 |
|---|---|---|---|---|---|
| Clone, push and gh from a box with no token in it | L | needs care | standard | an agent | 750 (330 code, 420 tests) |
A grant box has the root in both trust-store forms, and a box with no grant has none.
Covers:
- BEP-011
Layers:
- carry:
- crates/boxes/src/lib.rs:
Record.root_certificate, the proxy's root certificate PEM besidesealed_deliveries, so every host launch of the box reads it, after a daemon restart included (stale layers found by the coder on 2026-10-22; the record fixtures are struct-literal additions) - crates/minimald/src/box_manager.rs: the record build copies
config.root_certificatefrom the create request - crates/minimald/src/box_manager/tests.rs: the record test
- crates/minimald/src/box_runtime/launcher.rs: the launch hands the record's root certificate to
EnvArgs, soEnv::buildwrites the box's bundle copy and hashed directory cargo nextest run -p minimald record_carries_the_root_certificate_to_the_launch
- crates/boxes/src/lib.rs:
- trust:
- crates/minimald/src/env.rs: the root in the box's own bundle copy and hashed directory, per BEP-011, never the package store's copy
- crates/minimald/src/box_runtime.rs: the trust variables of BEP-011
- crates/minimald/src/box_runtime/tests.rs: the trust-variable tests
- scripts/session-e2e.sh: adds three cases
./scripts/session-e2e.sh bep_root_ca_present_in_box_trust_store./scripts/session-e2e.sh bep_root_ca_absent_from_box_without_credentialed_upstream./scripts/session-e2e.sh bep_trust_env_points_at_bundle_and_root
- spec:
- crates/boxes/src/core/bep.rs: the warning for a spec that sets a trust variable
cargo nextest run -p boxes spec_trust_env_shadows_platform_with_warning
Waits on:
- T13 — Refuse GitHub grants at activation that the box or the un-enrolled host cannot honour #2264
- T14 — Mint a sealed sign-in reference for each GitHub grant and register the box with the proxy #2273
Plan block
### T16 — Put the interception root in the box's trust store
slice: S0
kind: task
covers: BEP-011
size: L
est: 330 code, 420 tests
executor: agent
difficulty: needs care
model: standard
diagnostics: a box spec that sets one of the three trust variables itself keeps its value and activation prints "This box sets <variable> itself, so tools that read it will not trust the proxy's certificate." on stderr, pinned by spec_trust_env_shadows_platform_with_warning
observability: one debug log line per box naming whether the root was injected
layers:
- carry:
- crates/boxes/src/lib.rs: `Record.root_certificate`, the proxy's root certificate PEM beside `sealed_deliveries`, so every host launch of the box reads it, after a daemon restart included (stale layers found by the coder on 2026-10-22; the record fixtures are struct-literal additions)
- crates/minimald/src/box_manager.rs: the record build copies `config.root_certificate` from the create request
- crates/minimald/src/box_manager/tests.rs: the record test
- crates/minimald/src/box_runtime/launcher.rs: the launch hands the record's root certificate to `EnvArgs`, so `Env::build` writes the box's bundle copy and hashed directory
test: cargo nextest run -p minimald record_carries_the_root_certificate_to_the_launch
- trust:
- crates/minimald/src/env.rs: the root in the box's own bundle copy and hashed directory, per BEP-011, never the package store's copy
- crates/minimald/src/box_runtime.rs: the trust variables of BEP-011
- crates/minimald/src/box_runtime/tests.rs: the trust-variable tests
- scripts/session-e2e.sh: adds three cases
test: ./scripts/session-e2e.sh bep_root_ca_present_in_box_trust_store
test: ./scripts/session-e2e.sh bep_root_ca_absent_from_box_without_credentialed_upstream
test: ./scripts/session-e2e.sh bep_trust_env_points_at_bundle_and_root
- spec:
- crates/boxes/src/core/bep.rs: the warning for a spec that sets a trust variable
test: cargo nextest run -p boxes spec_trust_env_shadows_platform_with_warning
produces: none
consumes:
- crates/minimald-rpc/src/lib.rs
- crates/boxes/src/core/bep.rs
proof: A grant box has the root in both trust-store forms, and a box with no grant has none.
depends on:
- blocked by #2264
- blocked by #2273
- blocked by #2488
Generated by Claude Code
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:standardA standard model: work that needs care, or routine work that is largeA standard model: work that needs care, or routine work that is largesize:L500 to 900 net lines; one PR, and the ceiling500 to 900 net lines; one PR, and the ceiling
Activity
[-]T16 — Put the interception root in the box's trust store and point the box at the proxy[/-][+]T16 — Put the interception root in the box's trust store[/+]minimal-foundry commentedon Oct 22, 2026
Done. #2495 merged.
branch
agent/2274-put-the-interception-root-in-the-box-s-trust-sto· epic #1501 · PR #249538770fb40839351741220e3d7fa1b8f8a6fd1f33Updated 2026-10-23T03:17:40.555Z.
norrietaylor commentedon Oct 22, 2026
Plan amendment by the babysitter (2026-10-22), after the runtime's no-op above.
The no-op names two gaps. The second, that nothing carries a root certificate to the daemon, is T42 #2488's
carrylayer:BoxConfigincrates/minimald-rpc/src/lib.rsgains the sealed deliveries and the root certificate there, and this task's trust layer consumes that file. So this task now waits on T42:blocked by #2488in the plan block here andblocked by T42in the epic's plan comment, and the GitHub-native blocked-by edge is added.The first gap, that the proxy does not issue or publish the root certificate (deferred to #2437 by T2), has no task in the epic yet.
needs-humanstays until the epic owner decides who owns #2437; the babysitter has put that decision to them.Generated by Claude Code
norrietaylor commentedon Oct 22, 2026
The root-certificate gap now has an owner: #2437 is T43 in the epic plan (issue, publish and hand the root certificate to each grant box), and this task waits on it:
blocked by #2437is the GitHub-native edge beside#2488. The epic owner decided this on 2026-10-22;needs-humanis removed so the runtime re-dispatches this task once T42 and T43 land.Generated by Claude Code
norrietaylor commentedon Oct 22, 2026
Layers amended on 2026-10-22 after the coder's second no-op, under the epic's stale-layers rule. The no-op is right:
BoxConfig.root_certificatearrives on the create request since T43 landed, but nothing carried it intoboxes::Record, so no launch could read it, andEnv::buildhad no caller in the layers that could hand it the root. The plan block and this body now carry acarrylayer ahead oftrust:crates/boxes/src/lib.rs:Record.root_certificatebesidesealed_deliveries, so every host launch reads it, after a daemon restart included. The record fixtures are struct-literal additions, which the layer-exception rule accepts.crates/minimald/src/box_manager.rsand itstests.rs: the record build copiesconfig.root_certificate, pinned byrecord_carries_the_root_certificate_to_the_launch.crates/minimald/src/box_runtime/launcher.rs: the launch hands the record's root toEnvArgs, soEnv::buildwrites the bundle copy and the hashed directory.crates/minimald/src/box_runtime/tests.rsjoins thetrustlayer for the trust-variable tests. The test estimate rises to 420 for the added test line.needs-humanis removed so the runtime re-dispatches the task; every blocker is closed.Generated by Claude Code