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:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Description
Task
| slice | size | difficulty | model | who | estimated lines |
|---|---|---|---|---|---|
| Conditions closed | M | needs care | standard | an agent | 300 (140 code, 160 tests) |
A store handle sealed as a store member round-trips through the envelope, redeems against the registered client key, and is refused under an unregistered one.
Covers:
- BEP-063
Layers:
- seal:
- crates/bep/src/seal.rs:
MemberKindgainsStore(serdestore), so a store handle travels sealed as{kind: "store", jws} - crates/bep/src/redeem.rs: a store member's handle is verified against the registered client key and resolved to the store reference it names
cargo nextest run -p bep a_store_member_round_trips_sealedcargo nextest run -p bep a_store_handle_with_an_unregistered_key_is_refused
- crates/bep/src/seal.rs:
Waits on:
- T27 — Mint store handles and keep the client's key registered across proxy restarts #2288
- assumes OQ3 (the mint reads the root's validity end from the published identity, and the root is generated with a fixed default validity in one constant that gominimal/arch#85's ruling replaces)
Implements the filed residual #2525; those issues close with this task and do not block it.
Plan block
### T60 — Carry a store handle sealed as a store member kind
slice: S9
kind: task
covers: BEP-063
size: M
est: 140 code, 160 tests
executor: agent
difficulty: needs care
model: standard
diagnostics: `min box audit <box>` shows a redemption of a store member with its store reference, and a store member whose handle fails verification as a refusal
observability: one debug line per store member redeemed naming the store reference, never the value
layers:
- seal:
- crates/bep/src/seal.rs: `MemberKind` gains `Store` (serde `store`), so a store handle travels sealed as `{kind: "store", jws}`
- crates/bep/src/redeem.rs: a store member's handle is verified against the registered client key and resolved to the store reference it names
test: cargo nextest run -p bep a_store_member_round_trips_sealed
test: cargo nextest run -p bep a_store_handle_with_an_unregistered_key_is_refused
produces: none
consumes: none
proof: A store handle sealed as a store member round-trips through the envelope, redeems against the registered client key, and is refused under an unregistered one.
depends on:
- blocked by T27
- assumes OQ3
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:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Activity
minimal-foundry commentedon Oct 25, 2026
Done. #2568 merged.
branch
agent/2540-carry-a-store-handle-sealed-as-a-store-member-ki· epic #1501 · PR #2568c7ecdf06Updated 2026-10-25T22:28:43.139Z.