refactor: remove invariant panic paths - #107
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe ledger reader now builds bare block responses for absent details. Replication uses dedicated block, superblock, and reset messages, with direct validation and transaction batching. Transaction parsing now restricts legacy/V0 header handling and uses default address-table lookup frames for legacy and V1 transactions. The message-header constructor and related tests use a legacy/V0-specific name. Merge Risk: ⚪ Minimal · up to This refactor removes production invariant panic paths without identified changes to public behavior or persisted formats. No actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What changed
Remove production invariant panics from ledger block reads, replication control handoff, and Legacy/v0 transaction framing. Replication now uses one flat ordered handoff and one decode-to-message path, while transaction framing reuses a single empty address-lookup representation.
Closes #96
Impact
Public ledger and transaction-view APIs, persisted formats, and replication wire behavior are unchanged. Internal invariant drift no longer aborts production through
unreachable!.Reviewer notes
Ingest must flush every preceding transaction batch before handing Control a block, superblock, or reset. Legacy/v0 header parsing remains the boundary that determines whether address-table bytes are present.