Define analysis, defrag, and compaction success criteria #4
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#4
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
Context
The confirmed scope is a native Swift app for macOS 15+ on Apple Silicon, all external FAT32/exFAT disks including fixed media, and IODD mini/newer image-capable devices. Fixed VHD creation requires a valid container and verified complete-file contiguous allocation. Current work is planning and ticket publication only; implementation is a later effort. The public volume-operation API against disposable images is the confirmed main testing boundary.
Type: grilling
Mode: HITL
Question
How should the native app preserve the original analysis/defrag/compaction workflow while reporting truthful IODD compatibility and free-space outcomes?
Separate “fragmented” from “incompatible with the selected IODD profile”: an ISO with two extents can be fragmented yet eligible, while a fragmented VHD is ineligible under the supplied policy. Decide which files appear, how Defrag All selects/prioritizes work, and whether a profile changes eligibility or merely annotations. Define full extent counts/ranges, hidden/system/long-path coverage, anomalies, scan completeness, map aggregation, file selection, stale-snapshot handling, and post-operation rescans.
For Compact, preserve small-file compaction capability but choose an explicit objective: largest-free-run growth, a requested VHD-sized free run, or another measurable goal. Decide the 1 MiB parity threshold, user controls, work caps, no-benefit results, and previews/confirmation. Do not promise every allocation problem can be solved without temporary space or moving large files. Define per-file success/skip/failure/recovery outcomes and the relationship between cancel and the already chosen safe transaction boundaries.
Resolve these product policies with the user after the relevant source/engine decisions.
Blocked by
Record ownership
This Forgejo issue governs the live implementation prerequisite. The original local planning question and its history are retained; the implementation publication index links both records. This HITL decision remains open until the user resolves it. Publication does not resolve the original decision or approve production disk writes.
Interview checkpoint — candidate scope, compaction goal, and previews
phg agreed to all three recommendations in the first interview round on 12 October 2026:
The reference check confirms the original small-file threshold is inclusive logical size <= 1 MiB and the cap is 100 successful moves. These are evidence, not yet accepted native policies. Ordering, controls, analysis presentation, measurable outcomes, and the final shared-understanding check remain open. This checkpoint neither resolves the ticket nor authorizes implementation or disk writes.
Interview checkpoint — ordering, small-file controls, work limits, and staging
phg agreed to all four recommendations in the second interview round on 12 October 2026:
All seven interview choices so far are agreed. Analysis presentation and observable result semantics, followed by the final shared-understanding check, remain. This checkpoint does not resolve the ticket or authorize implementation or physical-media writes.
Interview checkpoint — analysis, stale results, outcomes, and read-only attributes
phg agreed to all four remaining recommendations on 12 October 2026:
All eleven interview choices are agreed. Only the final shared-understanding check remains before publishing the combined resolution, closing this decision and updating its map/context pointers. Planning-only scope is unchanged.
Resolution — analysis, defrag, and compaction success criteria
Confirmed by phg on 12 October 2026 through eleven agreed interview choices and the final shared-understanding check. This hosted resolution is the authoritative product contract; the map and retained local indexes link here.
Current scope remains planning and specification only. The supported volume envelope and IODD evidence rules remain Set the supported volume and device contract; the offline worker, ownership, verification, journal, cancellation, and recovery rules remain Choose the filesystem engine and recoverable mutation contract. No production implementation or physical-media writes are authorized here.
Analysis and coverage
File list, map, and IODD annotations
Defrag File and Defrag All
Compact candidates, goal, and work limits
Previews, outcomes, cancellation, and freshness
Remaining route and evidence
No additional decision ticket is needed. Exact presentation and user feedback belong in Validate the native analysis and VHD creation workflows; independent analysis/compaction oracles, threshold/cap/prefix/no-benefit cases, bounded resource/responsiveness expectations, release gates and staged implementation belong in Set validation gates and the implementation handoff. The former remains the next unblocked decision after this resolution.
Reference evidence is indexed by docs/reference-baseline.md and the retained application-behavior/disk-engine reports in the neighboring rea_fatdefrag checkout. Delegated read-only worker /root/analysis_compaction_reference confirmed the inclusive logical 1 MiB threshold, 100 successful-move limit, scan-order batching, leading-dot/long-path omissions, and capped/inaccurate map/count behavior. The original mutation paths were not successfully runtime-qualified. These observations explain the corrections; recovered implementation is not the production engine.
The interview checkpoint comments retain the choices. phg confirmed the combined contract before closure. The glossary records target free run separately from total free capacity and image virtual capacity.