Skip to content

Josunday002/admin repair and hole policy - #351

Merged
miss-yusrah merged 2 commits into
Stellar-TrustBridge:mainfrom
josunday002:josunday002/admin-repair-and-hole-policy
Aug 31, 2026
Merged

Josunday002/admin repair and hole policy#351
miss-yusrah merged 2 commits into
Stellar-TrustBridge:mainfrom
josunday002:josunday002/admin-repair-and-hole-policy

Conversation

@josunday002

Copy link
Copy Markdown

closes #320
closes #321
closes #322
closes #323

Counters can theoretically drift from records/chunks with no on-chain
way to detect or fix it short of redeploying — only the fuzz suite
would catch it, not mainnet. Adds repair_index(apply), admin-only,
which recomputes count/verified by walking the chunked index and each
record, and reports drift via dry run (apply=false) before an explicit
apply=true writes the correction. Never runs automatically on any
other call. Covered by tests/repair_index.rs against a deliberately
drifted fixture; documented in docs/SECURITY.md.
Existing compaction/removal tests are all scenario-based, so there is
no general check that the flat index, the chunked index, and stored
records actually agree. Adds a property test that reads the flat
index and every chunk directly out of storage (bypassing
get_all_registered, which would silently hide a mismatch) and asserts
membership holds in both directions across register/remove/compact
sequences, including a chunk-boundary case. Documents the hole policy
in docs/REGISTRY_INVARIANTS.md: membership holes are never allowed,
capacity (chunk under-fill) holes are expected and compact_index only
repacks density, not membership.
@drips-wave

drips-wave Bot commented Aug 29, 2026

Copy link
Copy Markdown

@josunday002 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@miss-yusrah
miss-yusrah merged commit 1f020a6 into Stellar-TrustBridge:main Aug 31, 2026
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants