feat(antd): live network health on /health — write_ready, peer counts, last-store age (V2-1027) - #241
Draft
Nic-dorman wants to merge 1 commit into
Draft
feat(antd): live network health on /health — write_ready, peer counts, last-store age (V2-1027)#241Nic-dorman wants to merge 1 commit into
Nic-dorman wants to merge 1 commit into
Conversation
…, last-store age (V2-1027) Both health surfaces (REST /health, gRPC HealthService.Check) were static snapshots of startup state: a daemon with zero peers reported status:ok while every store failed (ant-sdk#232). They now report: - write_ready: max(routing_table_size, connected_peers) >= threshold — best-effort write-path floor; the max() is load-bearing (client-mode routing tables under-report, see V2-1036) - connected_peers / routing_table_size / rebootstrap_threshold - last_store_ok_secs_ago, stamped on every successful store-type operation across all 7 REST + 7 gRPC write paths (null until the first success this process) All fields additive on both wire surfaces; status:ok semantics are untouched so existing liveness probes keep working. antd-rust models updated in the same change (it regenerates from the shared proto and cannot lag); the other 15 SDKs are V2-1040. MERGE GATE: do not merge before the matching saorsa-core recovery fix lands (WithAutonomi/saorsa-core#153 / V2-1036). Without it a degraded client can report write_ready:false indefinitely with no runtime remedy (the repair path could never heal), and REBOOTSTRAP_THRESHOLD in state.rs mirrors the saorsa-core const that #153 makes public. Verified live: peerless daemon (write_ready:false, rt 0), mainnet (write_ready:true, 5 peers), and a full devnet decay reproduction of the reporter's incident — timeline and evidence on V2-1027. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
MERGE GATE — draft until WithAutonomi/saorsa-core#153 (V2-1036) merges. Without the recovery fix, a degraded client can report
write_ready:falseindefinitely with no runtime remedy (the repair path never heals), andREBOOTSTRAP_THRESHOLDinstate.rsmirrors the saorsa-core const that #153 makes public.What
Both health surfaces (REST
/health, gRPCHealthService.Check) were static snapshots of startup state: a daemon with zero peers reportedstatus:okwhile every store failed (#232). They now report live network state:write_ready:max(routing_table_size, connected_peers) >= threshold— best-effort write-path floor; themax()is load-bearing (client-mode routing tables under-report, see V2-1036)connected_peers/routing_table_size/rebootstrap_thresholdlast_store_ok_secs_ago: stamped on every successful store-type operation across all 7 REST + 7 gRPC write paths (nulluntil the first success this process)All fields are additive on both wire surfaces;
status:oksemantics are untouched so existing liveness probes keep working. antd-rust models are updated in the same change (it regenerates from the shared proto and cannot lag); the other 15 SDKs are V2-1040.Verification
write_ready:false, rt 0), mainnet (write_ready:true, 5 peers), and a full devnet decay reproduction of the reporter's incident — timeline and evidence on V2-1027Follow-ups
network_health()becomes a pass-through and drops the mirrored const🤖 Generated with Claude Code