Skip to content

Streaming recovery-slice reader under a budget (WI-152) - #14

Merged
thedancingdeveloper merged 1 commit into
mainfrom
wi-152-recovery-reader
Oct 23, 2026
Merged

thedancingdeveloper merged 1 commit into
mainfrom
wi-152-recovery-reader

Conversation

@thedancingdeveloper

Copy link
Copy Markdown
Collaborator

Adds the public RecoveryReader. It streams RecvSlic packets from any Read within a row or byte budget, caps each volume at 512 MiB, and reports a truncated read separately from a complete one. load_recovery_blocks is now a thin wrapper. Behaviour change: recovery packets that fail their MD5 check are now dropped. Reviewed CLEAN at 9ece4d1.

🤖 Generated with Claude Code

Parse RecoverySlice packets from any Read (file, network body, &[u8])
for one recovery set, accumulating rows across volumes under a row or
byte budget that keeps the lowest exponents in packet order. Packets
outside the budget stream past unbuffered; reads per volume are capped
(512 MiB default). Kept packets are MD5-checked. Each volume reports
seen/kept/corrupt counts and whether it was read to the end (Complete)
or not (Truncated, CapReached, Io), so callers never conclude a set is
unrepairable from a volume they failed to finish.

load_recovery_blocks is now a thin wrapper over the reader.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@thedancingdeveloper
thedancingdeveloper enabled auto-merge (rebase) October 23, 2026 10:00
@thedancingdeveloper
thedancingdeveloper merged commit 57203a2 into main Oct 23, 2026
3 checks passed
@thedancingdeveloper
thedancingdeveloper deleted the wi-152-recovery-reader branch October 23, 2026 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant