test(bootstrap): integrate cache hygiene diagnostics - #198
Conversation
Testnet validation — every marker fires; one diagnostic-semantics findingFault-injection run on a dev testnet, 2026-08-10 (V2-894), using this branch @ The cache-hygiene results are on WithAutonomi/saorsa-core#149. This comment covers the diagnostics integrated here. Markers: all present and correctly fieldedEvery marker in the evidence dictionary fired with its documented fields, and the forwarding path (JSON logs → Elasticsearch) carried all of them — they are INFO/WARN, so nothing was dropped. The Finding 1 — a totally unreachable node reports
|
Linear issue
V2-884 — Age-bound and refresh the saorsa-core close-group bootstrap cache
Risk tier
This is a draft integration/testnet PR. It pins the exact saorsa-core #149 head so an ant-node binary can exercise that change, and adds logging-only ant-node bootstrap-state diagnostics.
Compatibility
Semver impact
Test evidence
saorsa-core, shared by ant-node and ant-protocol, at saorsa-core feat: commitment-bound quote pricing (ADR-0004) #149 heade74a1bf4085cbd175136b331a0ecfb9c7e423752.cargo check --all-targets --all-features— passed.cargo check --no-default-features— passed.cargo check --no-default-features --features logging— passed.cargo test --lib replication::— 565 passed, 0 failed.panic,unwrap_used,expect_useddenied) — passed.cargo fmt --all -- --checkandgit diff --check— passed.cargo build --release --no-default-features --features logging --bin ant-node— passed on macOS arm64. Local binary SHA-256:f09c794988f3abf0485703e0460761c79cdb7778c63282f03a18e1edbf6566ff.A Linux GNU release build and dev-testnet run remain required before rollout. Detailed matrix: V2-894.
Testnet evidence map
The patched saorsa-core emits:
bootstrap_source=cache|configuredandoutcome;periodic|post_bootstrap|shutdown);Bootstrap reachability summarywith cache/configured candidate and success counts.This PR additionally emits
Replication bootstrap state snapshotevery 60 seconds in logging builds with:drained;pending_peer_requests;pending_keys;capacity_rejected_sources;is_bootstrapping;snapshot_state=pending|drained_waiting_for_bootstrap_flag|healthy;uptime_secs.Snapshots stop after the first healthy sample to avoid permanent fleet log volume.
The saorsa-core fields directly verify #149. The ant-node fields do not prove cache refresh themselves; they separate a remaining replication-drain wedge from stale-cache or general connectivity failures.
New dependency
none. A temporary
[patch.crates-io]source override pins the existing saorsa-core dependency to #149’s exact Git revision.ADR
saorsa-core ADR-016 — Age-Bounded, Periodically Refreshed Close-Group Cache — Proposed; human acceptance pending.
Mitigation / rollback
Revert this integration commit or remove the crates.io patch and logging loop; no stored or wire data migration is required.