Stellar Index v0.37.0
[v0.37.0] — 2026-08-17
Tested against Stellar protocol v23. No migration. Completeness-verdict
reliability + coverage hardening from the live-audit durable-confidence plan
(the "why does aquarius/defindex keep going red" thread).
Added
- Comprehensive per-source projection reconciliation + a static
catalogue-completeness invariant (#96). The projection axis previously
reconciled only a subset of protocol tables; it now carries reconTargets for
the 1:1 tables it was missing (aquarius admin / protocol-fee / kill-switches /
liquidity / reserves-sync / rewards, soroswap_liquidity, phoenix
initialize/admin), with the genuine per-token fan-out tables (aquarius
reserves/liquidity, sdex_offer_events) explicitlynoReconcile-waived rather
than left silently unvalidated. A new AST-walking invariant test asserts every
decoderEventKindthat routes to a persisted table is either
reconciled-by-kind/census or explicitly waived — so a future decoder kind can
no longer silently fall out of the reconcile's EXPECTED sum (the exact class of
the defindexstrategy.harvestundercount that produced a phantom
976-mismatch false-red).
Fixed
- The nightly completeness-verdict driver no longer times out and freezes the
alphabetical tail.run-compute-completeness.shre-invoked
compute-completeness -chper source AND per 25k chunk, and every invocation
re-ran the load-heaviest step — the globalDistinctTopicShapesrecognition
scan (~60s over full history, identical regardless of-source/-from). A
source pinned far below tip (aquarius, recognition-capped near its genesis)
walked hundreds of chunks, so that one scan ran hundreds of times per night —
the 3h52m timeout (Result=timeout) that left the alphabetical tail's verdicts
days stale. A newcompute-completeness -ch -passmode proves recognition +
substrate ONCE at full range for the whole catalogue and reconciles each
source's projection incrementally from its own watermark; the wrapper now makes
one such call. This also (a) clears the low-tip substrate flap — a full-tip
substrate proof advances the tip and is never blocked by the CS-083 write guard
— and (b) finally gives every catalogue source a verdict, including the
never-seededblend_emitter/blend_backstop/sorocredit(they reconcile from
genesis on the first pass). INV-5, the projection dirty-window mechanism, the
substrate/projection fail-closed claims and CS-083 are all preserved unchanged.