Run Defrag All with accurate outcomes #17
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
phg/iodd-tool#17
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
IODD Tool specification
What to build
Preview and run the agreed set of fragmented files on a fixture volume, reporting each file and the true final state after completion or Stop.
Acceptance criteria
Blocked by
Validation contract
Completion requires the applicable independently checked software evidence in Set validation gates and the implementation handoff. A closed policy decision does not establish that implementation tests have passed. Use disposable images/virtual volumes and controlled faults; no hardware-trial or performance gate applies.
Scope
This ticket belongs to the later implementation effort. All planning decisions are resolved; current work covers tracker and documentation updates. The parent specification indexes the authoritative product and software-validation contracts. Forgejo governs live updates; retained local files record the handoff.
Resolution — reviewed Defrag All with accurate outcomes implemented
Implemented on implement/iodd-tool-spec-7, completed branch b6bc6e5, integration merge cbc9aef.
The public operation API and native image workflow freeze the full-volume movable fragmented candidate set, independently of display filters or IODD annotations, ordered by descending allocated bytes with stable pathname ties. Review discloses exact simulated destinations and no-change/pinned skips; one explicit backup acknowledgement applies to the reviewed operation. Execution regenerates the complete plan and revalidates each remaining file and allocation after earlier verified moves. Predictable nonmutating destination-space skips continue; actual I/O, stale identity/content, verification or recovery failures halt. Stop starts no later transaction after safe rollback/forward completion. Per-file completed/skipped/failed/cancelled/recovery/not-started results and authoritative evidence remain visible. A failed final rescan reports failed/unverified instead of false completion.
Final corrected source
b1c5ffepassed all 166 tests in 782.627 seconds with ordinary release optimization on pinned Xcode27.0/27A266a. This includes mixed skips/success, allocated-size/path ties and hidden/read-only files, pre/postcommit/between-file Stop, external changes, second-file recovery, closure I/O failure that still halts after retry, subsequent evidence-blocked batches and inherited geometry/fault/replay suites. Independent oracles verify full logical/allocation hashes, exFAT ValidDataLength, preserved metadata and literal destinations. The shared FAT32 copied-slack false-success and postcommit cancellation regressions are reproduced and fixed: new relocation journals bind complete allocation, while old nil-witness version-1 journals retain their prior compatibility.Integration preserves exact qualified Sources/Tests/package/build scripts. Fresh merged checks pass 10 tests/44 cases in 3.915 seconds; arm64 app/worker release builds, plist and macOS15.0 minimum checks pass. Corrected-source native FAT32/exFAT completion and actual Copying/Stop on a greater-than-4-GiB exFAT file pass independent content/allocation/VDL/literal-placement oracles and nonrepairing checkers with unchanged checker input hashes. All owned apps exited and the host GUI lock was released.
Reproducible validation, complete logs, both regression fixes and native evidence. This qualifies disposable image workflows. Native raw-write, complete recovery UI and final distribution gates remain their later tickets. Existing unresolved and default recovery evidence is preserved. The user-requested pause applies after the remaining current Compact ticket completes; no new frontier has been started.