diff --git a/docs/route-continuity-cut.md b/docs/route-continuity-cut.md index f8c8306..bba4d5f 100644 --- a/docs/route-continuity-cut.md +++ b/docs/route-continuity-cut.md @@ -193,7 +193,7 @@ it for merge. - B2 also does not compile on top of B3, and after a one-line fix two tests fail, because the fixture target is now route-proof. -The rework runs after B3 merges and is rebased onto it. +The rework is a fresh branch from `583b2a7`, not a rebase of `1786ddf`. Its map is under B2 in section 4. **Rulings, 2026-09-30.** - **The ceiling never refuses a rollback.** Restoring the admitted or incumbent route is survival, not @@ -203,6 +203,27 @@ The rework runs after B3 merges and is rebased onto it. admitted generation, so a target with no admitted generation is charged too. That schema change is folded into the store-version bump that F1 needs: a v4 generation, with a typed lift from v3. +**Rulings, 2026-09-30 (operator, on the B2 rework map).** +- **Q-B2-1 (a):** the continuity restart log moves into `TargetSupervision`; the restart ceiling reads the + target's own log; the carry compensator is deleted. +- **Q-B2-2: fail at once.** A deploy refused by the route/actuation ceiling before the fence fails immediately, + with the reopen time in the error. +- **Q-R1 (a):** the route declaration is the challenge declaration. Every routed target answers the + stable-route challenge regardless of readiness class. R1 checks it before the fence; H1 gives Heimdall a + responder. Operator note: the question's first framing was confusing; the cause is that Heimdall has no + responder, not its class. +- **Q-B4: Idunn's own proof.** Routed providers by current route proof and not degraded; unrouted providers by + admission plus a live workload observation. One clause is **held open**: "a current Odin non-Ready word + still excludes a provider" is not ruled, pending the Odin-lifecycle authority audit (a separate Imagination + pass). Operator: "the last few rulings on Odin are making my authority sense tingle, it feels like Odin is + doing lifecycle work when that's very much Idunn's wheelhouse." B4 is blocked on that audit. + +**Cut status, 2026-09-30.** +- **Ready for Hands:** B2 (rework map in section 4); D1 (after B2); R1 (after B2). +- **In progress** on `hands/idunn-w1-t1-t2`: W1, T1, T2. +- **Blocked:** B4, on the Odin-lifecycle authority audit; H1 (Heimdall repo), on CultLib C1. + + Heads read for this map: | Repo | Ref | Notes | @@ -571,6 +592,97 @@ it. This is a CultLib foundation merge, so the operator should rule on it. Depends on it: C1 and the StreamPixels gitlink in C2. +**Q-B2-1. Does the continuity restart log move into `TargetSupervision` too?** + +**RULED (a) by the operator, 2026-09-30.** + +Options: +- (a) Move it. `ContinuityBackoff`'s own doc (`:907-908`) already says it "belongs to the target, not the + generation". On the generation it survives only through the copy in `from_transaction` (`:2074-2076`). + Moving it deletes that carry and key 20. The mint CAS pins the target record instead of racing the + generation, which is the F3 shape. One record holds both of a target's meters. +- (b) Keep it on the generation, reshaped to the sliding log in place. The route meter still needs + `TargetSupervision` for first deploys, so the meters split across two records and the carry stays. + +Outcome: the continuity restart log lives in `TargetSupervision`; the restart ceiling reads the target's own +log; the carry compensator in `from_transaction` is deleted. + +Depends on it: B2 (see the B2 rework map in section 4). + +**Q-B2-2. When the route ceiling refuses a first or forward deploy before the fence, does `idunn up` fail or +wait?** + +**RULED: fail at once, by the operator, 2026-09-30.** + +Options: +- (a) Fail. The deploy is aborted pre-fence with "route actuation ceiling reached for ; reopens at +