This records work under A2 of the fixed completion contract. It does not add roadmap criteria. A2 is complete following the approved pin proof-time correction; see the integrated agent model and signed bridge.
The bundled chain mediators call importBatchByCids with ordinal
[height, index]; Gatekeeper appends the original operation-list index.
In the Solana mediator, index is the instruction index within each transaction,
not the transaction’s block position. Distinct transactions in the same block
can therefore produce the same complete [height, instruction, opidx] ordinal.
No malformed operation or forged receipt clock is needed for this collision.
This is a protocol-reachable synthetic case, not a claim of an observed production fork.
The signed fixture contains genesis G, update P, and two competing children A/B.
The generator chooses canonical CIDs with A < P < B. P, A, and B have distinct
transaction/batch references but the same Solana-style ordinal. Both nodes retain
exactly the same five events: gossip G/P and the three anchors. Only G/P delivery
order differs.
Before the fix, ordered G/P hints make P available before A’s anchor, so A wins. Reversed hints initially defer P; sorted chain events visit A (still deferred), then P, then B. On later passes, A cannot replace B at an equal ordinal. Ordinary imports, duplicate delivery, and restart preserve these different histories. TypeScript reproduced this with both proof formats, and Rust reproduced it with the same modern signed fixture. The committed shared suite validates both proof formats in both ports after the fix.
On 2026-09-20 the maintainer approved canonical operation CID as the tie-breaker for equally anchored competing operations, preserving ordinal precedence. Both present ordinals are compared first; equal ordinals compare complete canonical operation IDs in ASCII order. Repeated anchors of one operation and missing-position behavior are unchanged in this increment. This permits a later preferred sibling to replace the earlier branch and replay dependents.
tests/convergence/generate-tied-anchor-vectors.mjs deterministically generates
the real signed fixtures. Both ports run tied-anchor-vectors.json through their
ordinary importer, repeat delivery, and reconstructed storage, comparing selected
operation IDs, full selected events, and resolved data. Existing distinct-ordinal
cases continue to verify ordinal precedence.
The integrated Lean bridge checks RegistryCidRanks against ordinal-plus-CID
order and quotients identical registry/position/operation keys. It checks both
proof formats with combined registry/key changes, deletion, return and unanchored
migrations, missing predecessors, and late genesis. The source model separates
receipt identity from node-local bookkeeping. The linked integrated audit states
the authoritative clock/registration contracts and their signed runtime checks.
The maintainer chose to require chain positions after tracing actual event
producers. Bitcoin, Zcash, Ethereum, and Solana mediators all pass [height, index]
to importBatchByCids, which appends the batch operation index. Public peer/export
imports strip chain authority and become Hyperswarm hints. The missing-position
counterexamples used the permissive core importer; no bundled mediator producing
such receipts or production occurrence was demonstrated.
The 2026-09-20 read-only audit of the local running Rust/Redis node found 292
accepted chain receipts and 295 retained chain candidates across BTC, ZEC, ETH,
and SOL registries. None had missing, null, empty, non-array, negative, fractional,
or unsafe-integer ordinal components. The scan covered archon/dids/* and
archon/candidates, excluding local/Hyperswarm/pin; it is a live local audit, not
an assertion about every database worldwide.
Both importers now require a nonempty ordinal array of nonnegative safe integers for chain registry events, including before the CID importer appends an operation index. Replay excludes absent/null/empty ordinal candidates in existing typed journals; these remain retained but cannot enter accepted histories. Positioned recovery remains possible. No compatibility decoder is added for malformed stored field types that Rust could not previously load; the audit found none. This supersedes retaining missing-position chain evidence via CID ranking and choosing a time for repeated unpositioned receipts. No receipt-time fallback is needed for this excluded input class. The proof domain must derive positioned chain evidence from these validation rules, while retaining unpositioned gossip and tied chain positions. This eliminates the demonstrated missing-position counterexamples; it does not by itself finish A2–A4 or prove all receipt metadata irrelevant to authorization.