| Filename | Latest commit message | Latest commit date |
|---|---|---|
Soul found B1's rule sound and its transition unsafe. This makes the rule's
old inputs impossible to reintroduce a stuck state from.
- The control store's legacy lift owns the transition. A pre-B1 continuity
abort that issued an activation lifts with topology_reconciliation Pending,
so the one resolution demotes its own activation. A record already terminal
under the old rule is reopened at Starting, since a terminal record cannot
owe work. History lifts records as written. Before this, one resident
record of that shape failed validation and ControlSnapshot::read refused the
whole store, so Idunn could not boot.
- Supervision owns the Expected-only precondition. When its pre-restart
demotion fails it mints no continuity and writes next_restart_at_unix_millis
on the generation's ContinuityBackoff (attempts and window untouched), so it
neither restarts over an undemotable projection nor retries every tick.
- Boot reconciles once: a projected activation that exactly matches the
activation a failed continuity in history (or a resident terminal record)
issued is demoted. Nothing is adopted; an activation no admitted generation,
live transaction or failed issuer accounts for is reported and left alone.
New read-only CultCacheTopologyDriver::projected_activation.
- Unreadable history.cc fails closed. The continuity restart ceiling and the
consumed-command check no longer read an empty history; they stop, and the
fault is reported once while it lasts (ReportOnce). The undecodable-record
report is a pure function, pinned.
- docs/deployment-authority.md no longer says the projection never drifts.
Tests: legacy fixtures written by the
|
||
| .. | ||
| idunn-control-legacy | ||
| bifrost-release-authority-v1.payload.hex | ||
| README.md | ||
Bifrost release-authority wire fixture
bifrost-release-authority-v1.payload.hex is the exact MessagePack payload
emitted on 2026-07-16 by Bifrost's TypeScript CultCache writer
tools/bifrost-repository-release-authority.mjs for GameCult/Epiphany,
refs/heads/main, commit
0123456789abcdef0123456789abcdef01234567.
It is checked in because the TypeScript runtime emits a camelCase MessagePack
map while Rust DatabaseEntry derives tuple payloads. Idunn must prove it can
decode the producer's real wire shape rather than round-tripping a fixture it
serialized itself.