Skip to content

fix(mft): restore OFFLINE path sorting (5/6 SORTED MATCH)#5

Merged
githubrobbi merged 1 commit intomainfrom
fix-f-drive-parity
Mar 16, 2026
Merged

fix(mft): restore OFFLINE path sorting (5/6 SORTED MATCH)#5
githubrobbi merged 1 commit intomainfrom
fix-f-drive-parity

Conversation

@githubrobbi
Copy link
Owner

Summary

Restores OFFLINE MFT processing to 5/6 SORTED MATCH state after regression from commit 90ee522.

What was broken

  • Commit 90ee522 removed ALL sort_directory_children() calls for C++ parity (Drive S fix)
  • This broke OFFLINE path — all 6 drives went from 5/6 SORTED MATCH to 0/6 output

Fix

  1. Re-added sort_directory_children() to OFFLINE paths:

    • persistence.rs (loading saved index)
    • merge.rs (post-processing)
    • builder.rs (already fixed by previous agent)
  2. Fixed verify_parity.rs to use --format custom for C++ footer parity

Result

  • ✅ Drive D: SORTED MATCH (7,065,330 lines)
  • ✅ Drive E: SORTED MATCH (2,929,497 lines)
  • ❌ Drive F: MISMATCH (Bug 3 - extension records, deferred)
  • ✅ Drive G: SORTED MATCH (15,071 lines)
  • ✅ Drive M: SORTED MATCH (1,908,783 lines)
  • ✅ Drive S: SORTED MATCH (8,278,080 lines)

5/6 SORTED MATCH restored ✅

🤖 Generated with Claude Code

… pass)

Commit 90ee522 removed all sort_directory_children() calls to match C++
LIVE behavior, but this broke OFFLINE mode (0/6 drives passing). OFFLINE
paths need sorting for deterministic output since MFT dump parsing order
differs from live IOCP traversal.

Changes:
- Restore sort_directory_children() before compute_tree_metrics() in all
  3 OFFLINE code paths: builder.rs, persistence.rs, merge.rs
- Add --format custom to verify_parity.rs to match C++ baseline footer

Verified: D, E, G, M, S all SORTED MATCH. F is known deferred (Bug 3).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@githubrobbi githubrobbi merged commit dce9abd into main Mar 16, 2026
5 of 6 checks passed
@githubrobbi githubrobbi deleted the fix-f-drive-parity branch March 16, 2026 16:52
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