Repository navigation
Description
Task
| slice | size | difficulty | model | who | estimated lines |
|---|---|---|---|---|---|
| Clone, push and gh from a box with no token in it | M | needs care | standard | an agent | 320 (120 code, 200 tests) |
proxy_envsteering, the GitHub v1 host set (Gatehouse §6.10 Module host sets:github.com,api.github.com,uploads.github.com,codeload.github.com; pre-signed content hosts such asrelease-assets.githubusercontent.comstay ordinary egress) as the one module, a sealed reference to the device-flowmin auth loginsign-in, redemption with every check, the local audit log with its one-shotmin box audit <box>read, andmin box specshowing the CA and the upstream set. The demo box declaresgithub:user-token, the honest spelling of afullmember, so the slice also exercisesmin box spec'sfullmarker (BEP-038). Keychain references withmin secret,dnssteering, the browser sign-in flow,min box audit --followand--parent, audit segment rotation, signing-CA rotation, the PAC recipe andhost_ipcohort handling are later slices.
Covers:
- none
Layers:
- e2e:
- scripts/session-e2e.sh: one case: sign in, create the demo box, read
min box spec, clone and push, see the copied value refused on the host and in a second box, readmin box audit ./scripts/session-e2e.sh bep_first_slice_end_to_end./scripts/session-e2e.sh bep_git_and_gh_against_private_repo
- scripts/session-e2e.sh: one case: sign in, create the demo box, read
Waits on:
- T1 — Create the bep crate with the GitHub module and the sealed envelope #2258
- T2 — Hold the proxy's keys non-exportable in the host keychain and publish their public halves #2259
- T3 — Issue leaf certificates under a name-constrained root and a keychain-held signing CA #2265
- T4 — Decide redemption as one pure function over host key, attribution and member bounds #2260
- T5 — Refuse authorities outside both host sets, off-port connections, and expired or revoked values #2266
- T6 — Pin the request authority, re-check the box's egress, and admit only when every check passes #2268
- T7 — Verify signed handles against the client's registered key and the current rule #2270
- T8 — Parse requests strictly and forward a canonical head over HTTP/1.1 #2261
- T9 — Append hash-chained audit records the proxy alone writes #2262
- T10 — Accept only box connections and terminate TLS for the module's hosts over HTTP/1.1 #2271
- T11 — Validate the upstream before substituting, pass unsealed requests through, and stream responses #2272
- T12 — Sign in to GitHub with min auth and keep the sign-in in one keychain item #2263
- 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
- T15 — Show the root fingerprint, the upstream set, steering and the full marker in min box spec #2267
- T16 — Put the interception root in the box's trust store #2274
- T17 — Read one box's audit trail with min box audit #2269
- T18 — Run the proxy beside gvproxy so git and gh reach GitHub from a box #2275
- T40 — Point the box at the proxy #2334
- T41 — Wire the redemption decision and each box's declared egress into bep serve #2483
- T42 — Deliver each sealed value into its grant's environment variable in the box #2488
Plan block
### T19 — Clone, push and gh from a box with no token in it, end to end
slice: S0
kind: integration
covers: none
size: M
est: 120 code, 200 tests
executor: agent
difficulty: needs care
model: standard
diagnostics: `min box audit <box>` shows every admit of the run and the refusals of the copied value
observability: one connection span per request of the run, with the box id, the authority and the outcome
layers:
- e2e:
- scripts/session-e2e.sh: one case: sign in, create the demo box, read `min box spec`, clone and push, see the copied value refused on the host and in a second box, read `min box audit`
test: ./scripts/session-e2e.sh bep_first_slice_end_to_end
test: ./scripts/session-e2e.sh bep_git_and_gh_against_private_repo
produces: none
consumes: none
proof: `proxy_env` steering, the GitHub v1 host set (Gatehouse §6.10 Module host sets: `github.com`, `api.github.com`, `uploads.github.com`, `codeload.github.com`; pre-signed content hosts such as `release-assets.githubusercontent.com` stay ordinary egress) as the one module, a sealed reference to the device-flow `min auth login` sign-in, redemption with every check, the local audit log with its one-shot `min box audit <box>` read, and `min box spec` showing the CA and the upstream set. The demo box declares `github:user-token`, the honest spelling of a `full` member, so the slice also exercises `min box spec`'s `full` marker (BEP-038). Keychain references with `min secret`, `dns` steering, the browser sign-in flow, `min box audit --follow` and `--parent`, audit segment rotation, signing-CA rotation, the PAC recipe and `host_ip` cohort handling are later slices.
depends on:
- blocked by #2258
- blocked by #2259
- blocked by #2265
- blocked by #2260
- blocked by #2266
- blocked by #2268
- blocked by #2270
- blocked by #2261
- blocked by #2262
- blocked by #2271
- blocked by #2272
- blocked by #2263
- blocked by #2264
- blocked by #2273
- blocked by #2267
- blocked by #2274
- blocked by #2269
- blocked by #2275
- blocked by #2334
- blocked by #2483
- blocked by #2488
- blocked by #2437
Generated by Claude Code
Activity
11 remaining items
minimal-foundry commentedon Oct 24, 2026
Done. #2507 merged.
branch
agent/2276-clone-push-and-gh-from-a-box-with-no-token-in-it· epic #1501 · PR #2507Updated 2026-10-24T04:46:43.686Z.