fix(mosaic): wire constrained recovery runtime boundaries
This commit is contained in:
@@ -12,31 +12,40 @@ mutator remains behind the verified lease gate.
|
||||
## Wrapper procedure
|
||||
|
||||
1. The runtime supplies the exact validated normative-fragment construction and the current
|
||||
compaction/request epochs, then invokes:
|
||||
compaction/request epochs.
|
||||
- **Claude:** invoke only this direct command shape (no shell composition):
|
||||
|
||||
```bash
|
||||
python3 "$MOSAIC_HOME/tools/lease-broker/recover-context.py" begin \
|
||||
--construction "$MOSAIC_CONTEXT_REFRESH_CONSTRUCTION" \
|
||||
--compaction-epoch "$MOSAIC_COMPACTION_EPOCH" \
|
||||
--request-epoch "$MOSAIC_REQUEST_EPOCH"
|
||||
```
|
||||
```bash
|
||||
python3 "$MOSAIC_HOME/tools/lease-broker/recover-context.py" begin \
|
||||
--construction "$MOSAIC_CONTEXT_REFRESH_CONSTRUCTION" \
|
||||
--compaction-epoch "$MOSAIC_COMPACTION_EPOCH" \
|
||||
--request-epoch "$MOSAIC_REQUEST_EPOCH"
|
||||
```
|
||||
|
||||
The command delegates to the shipped WI-5 broker transition: revoke first, build the canonical
|
||||
`B_payload`/`H_payload`, enter `PENDING_DELIVERY`, and mint a fresh one-time challenge. It prints
|
||||
Claude's all-tools gate maps this exact recovery executable and validated argument shape to
|
||||
`mosaic_context_recover`; ordinary `Bash` remains gated.
|
||||
|
||||
- **Pi:** call the registered `mosaic_context_recover` tool with `phase: "begin"`,
|
||||
`construction`, `compactionEpoch`, and `requestEpoch`. It is the exact broker-exempt tool name;
|
||||
Pi `bash` and every other tool remain gated.
|
||||
|
||||
Both forms delegate to the shipped WI-5 broker transition: revoke first, build the canonical
|
||||
`B_payload`/`H_payload`, enter `PENDING_DELIVERY`, and mint a fresh one-time challenge. They print
|
||||
the terminal receipt envelope to deliver exactly as returned.
|
||||
|
||||
2. The current assistant message copies that one terminal receipt verbatim. It does not compute a
|
||||
hash, add prose, quote a prior receipt, or present a caller-supplied receipt/challenge.
|
||||
3. At `message_end`, the trusted runtime `ReceiptObserver` seam invokes:
|
||||
3. The production trusted-observer transport records that finalized assistant entry before completion:
|
||||
- **Claude** selects the latest assistant entry at its `Stop` hook.
|
||||
- **Pi** records only finalized assistant content at `message_end` (never
|
||||
`after_provider_response`).
|
||||
|
||||
```bash
|
||||
python3 "$MOSAIC_HOME/tools/lease-broker/recover-context.py" complete
|
||||
```
|
||||
|
||||
Completion supplies no receipt or challenge argument. The broker observes the exact latest
|
||||
assistant entry, commits evidence, consumes its own fresh challenge, and promotes VERIFIED last.
|
||||
If observation is absent, malformed, stale, or duplicated, recovery remains UNVERIFIED and a
|
||||
retry begins a new cycle.
|
||||
Then invoke completion with the same adapter form: Claude runs
|
||||
`python3 "$MOSAIC_HOME/tools/lease-broker/recover-context.py" complete`; Pi calls
|
||||
`mosaic_context_recover` with `phase: "complete"`. Completion supplies no receipt or challenge
|
||||
argument. The broker observes the exact latest assistant entry, commits evidence, consumes its own
|
||||
fresh challenge, and promotes VERIFIED last. If observation is absent, malformed, stale, or
|
||||
duplicated, recovery remains UNVERIFIED and a retry begins a new cycle.
|
||||
|
||||
## Scope and honesty
|
||||
|
||||
|
||||
Reference in New Issue
Block a user