Analyze a FAT32 image #8

Closed
opened 2026-10-11 19:10:39 +00:00 by phg · 1 comment
Owner

Parent

IODD Tool specification

What to build

Open a disposable FAT32 disk image in the native app and inspect its files, actual extents, volume statistics, and free runs through the public volume-operation API.

Acceptance criteria

  • A runnable native app for the confirmed platform opens a fixture image and shows its label, filesystem, supported geometry, total/used/free capacity, and largest free run.
  • A native accessible file table shows paths, logical sizes, and measured extent counts derived from actual FAT32 allocation.
  • Supported hidden, nested, long, and Unicode names are covered; empty and contiguous files have explicit outcomes.
  • Unsupported geometry, malformed chains, cross-links, and incomplete scans produce truthful diagnostics rather than a clean-volume claim.
  • Stable snapshot/file identities prevent a replaced fixture or stale result from being applied to the current selection.
  • Independent fixture manifests verify observable analysis results through the agreed operation boundary, and the fixture remains byte-for-byte unchanged.
  • Basic native About/menu/keyboard behavior makes the slice independently demoable; the later map and workflow slices can extend it.
  • Use the resolved target and engine contracts without selecting a new architecture in this ticket.

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.

## Parent [IODD Tool specification](https://git.s1q.dev/phg/iodd-tool/issues/7) ## What to build Open a disposable FAT32 disk image in the native app and inspect its files, actual extents, volume statistics, and free runs through the public volume-operation API. ## Acceptance criteria - [ ] A runnable native app for the confirmed platform opens a fixture image and shows its label, filesystem, supported geometry, total/used/free capacity, and largest free run. - [ ] A native accessible file table shows paths, logical sizes, and measured extent counts derived from actual FAT32 allocation. - [ ] Supported hidden, nested, long, and Unicode names are covered; empty and contiguous files have explicit outcomes. - [ ] Unsupported geometry, malformed chains, cross-links, and incomplete scans produce truthful diagnostics rather than a clean-volume claim. - [ ] Stable snapshot/file identities prevent a replaced fixture or stale result from being applied to the current selection. - [ ] Independent fixture manifests verify observable analysis results through the agreed operation boundary, and the fixture remains byte-for-byte unchanged. - [ ] Basic native About/menu/keyboard behavior makes the slice independently demoable; the later map and workflow slices can extend it. - [ ] Use the resolved target and engine contracts without selecting a new architecture in this ticket. ## Blocked by - [Choose the filesystem engine and recoverable mutation contract](https://git.s1q.dev/phg/iodd-tool/issues/2) ## Validation contract Completion requires the applicable independently checked software evidence in [Set validation gates and the implementation handoff](https://git.s1q.dev/phg/iodd-tool/issues/6). 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.
phg self-assigned this 2026-10-13 09:03:23 +00:00
Author
Owner

Resolution — FAT32 image analysis implemented

Implemented on implement/iodd-tool-spec-7, implementation commit 05fdb08, integration merge 766c42c.

The native app opens admitted FAT32 images and presents actual file extents, geometry, complete inventory/allocation/free runs, and exact accessible detail. Partial, unsupported, cancelled, stale and resource-limited analysis cannot establish verified global metrics or authorize mutation.

Validation: all 15 public-operation Swift Testing tests passed, including all 32 accepted sector/cluster pairs, names/metadata, malformed allocation and identity/cancellation cases. Independent Python allocation/content observations and fsck_msdos -n agree; full-image before/after SHA-256 matches. Native menus, chooser, all four table columns, keyboard selection and extent inspector were exercised on macOS 26.6.2 (25G83). The integration additionally passed all tests and the arm64 release app/plist build with Xcode 27.0 (27A266a), Swift 6.4.

Reproducible evidence and native screenshot. This completes the first partitionless image slice. The declared full-layout and native-device lifecycle qualification remains in ticket #20; baseline/current-stable release validation remains in the later gates. Those staged capabilities have explicit unavailable reasons.

## Resolution — FAT32 image analysis implemented Implemented on [implement/iodd-tool-spec-7](https://git.s1q.dev/phg/iodd-tool/src/branch/implement/iodd-tool-spec-7), implementation commit [05fdb08](https://git.s1q.dev/phg/iodd-tool/commit/05fdb080a877330ddb8fe5ad01358ef376f9d294), integration merge [766c42c](https://git.s1q.dev/phg/iodd-tool/commit/766c42ccc50bdca99249be30d3410280bc032b0c). The native app opens admitted FAT32 images and presents actual file extents, geometry, complete inventory/allocation/free runs, and exact accessible detail. Partial, unsupported, cancelled, stale and resource-limited analysis cannot establish verified global metrics or authorize mutation. Validation: all 15 public-operation Swift Testing tests passed, including all 32 accepted sector/cluster pairs, names/metadata, malformed allocation and identity/cancellation cases. Independent Python allocation/content observations and fsck_msdos -n agree; full-image before/after SHA-256 matches. Native menus, chooser, all four table columns, keyboard selection and extent inspector were exercised on macOS 26.6.2 (25G83). The integration additionally passed all tests and the arm64 release app/plist build with Xcode 27.0 (27A266a), Swift 6.4. [Reproducible evidence and native screenshot](https://git.s1q.dev/phg/iodd-tool/src/commit/766c42ccc50bdca99249be30d3410280bc032b0c/docs/validation/fat32-analysis.md). This completes the first partitionless image slice. The declared full-layout and native-device lifecycle qualification remains in ticket #20; baseline/current-stable release validation remains in the later gates. Those staged capabilities have explicit unavailable reasons.
phg closed this issue 2026-10-13 09:44:54 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
phg/iodd-tool#8
No description provided.