Defragment a file on a FAT32 image #15
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#15
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
Select one fragmented file, review its relocation preview, confirm, and move it to one free run on a FAT32 image with a verified final result.
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 — FAT32 image defragmentation and shared recovery foundation implemented
Implemented on implement/iodd-tool-spec-7, implementation c605d71, integration merge 950e500.
The public preview/confirm/execute/Stop workflow moves complete FAT32 file allocation into the exact reviewed free run, verifies contents before publication, preserves source allocation until the checked durable commit, and updates required FAT copies, entry location and valid FSInfo hints. The reusable bounded journal driver owns full physical-unit before/after images, checked internal persistence, discovery registry, source-free creation support, logged rollback/forward replay and exact durable retirement. Recovery refuses foreign/corrupt/unsupported/ambiguous evidence and regenerates allowed writes from verified original metadata. Complete-but-unretired evidence remains actionable and preserved. Physical-unit-aware preview avoids shared pinned boundaries; stale-unit previews refuse before writes. Regular-image writes validate admitted length and bounds; owned open-description locks are explicitly released.
Validation: final production/test implementation8ad5ae5 passed83 tests in545.429s on Xcode27.0/27A266a, including1018 initial/replay/transfer fault cases, all32 FAT32 geometry pairs, imported geometry/authority corruption, completion retirement, directory persistence, external truncation and a deterministic inherited-descriptor regression. Evidence-only
c605d71and integration950e500 have identical verified Sources/Tests trees. Integration focused checks, arm64 release, minimumOS15 and plist checks pass. Native owned-image workflow passed explicit preparation+backup+review+Confirm, exact7–9 destination and fresh completed inventory; independent allocated/logical hashes, untouched-region SHA and nonrepairing fsck pass. Earlier exact9a22 public core also passed on actual guestmacOS15.7.7/24G720; that historical scope is recorded separately.Reproducible validation, complete logs and native screenshot. Qualification covers disposable regular images/internal recovery storage. Raw-device authentication/exclusion/remount and signed/notarized release gates remain their later tickets. Existing default recovery evidence is preserved.