Compact external storage #23

Closed
opened 2026-10-11 19:10:50 +00:00 by phg · 2 comments
Owner

Parent

IODD Tool specification

What to build

Integrate the agreed small-file compaction workflow with the production external-storage adapter. Validate preservation and actual free-run outcomes using disposable virtual volumes and controlled failures.

Acceptance criteria

  • The native live Compact workflow applies the same declared objective, eligibility, threshold, work limits, preview, and confirmation as fixture compaction.
  • Only a freshly validated eligible target can execute, with approved IODD preparation where applicable, isolation and checked synchronization. Virtual integration and simulated preparation/failures verify these gates without hardware trials.
  • Independent content/metadata/ownership checks verify every affected and unaffected file after successful or safely stopped work.
  • Before/after largest-free-run and other chosen metrics establish real benefit or explicitly report no benefit/limited work.
  • No insufficient-space situation silently authorizes movement of unrelated data; integration with Create follows the resolved creation policy.
  • Removal, authorization/lifecycle failure, unsafe interruption, and failed remount have distinct outcomes with preserved recovery evidence.
  • The applicable independent image correctness/recovery gate and virtual macOS integration gate pass before writes are enabled, retaining reproducible software/geometry/outcome evidence.

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 Integrate the agreed small-file compaction workflow with the production external-storage adapter. Validate preservation and actual free-run outcomes using disposable virtual volumes and controlled failures. ## Acceptance criteria - [ ] The native live Compact workflow applies the same declared objective, eligibility, threshold, work limits, preview, and confirmation as fixture compaction. - [ ] Only a freshly validated eligible target can execute, with approved IODD preparation where applicable, isolation and checked synchronization. Virtual integration and simulated preparation/failures verify these gates without hardware trials. - [ ] Independent content/metadata/ownership checks verify every affected and unaffected file after successful or safely stopped work. - [ ] Before/after largest-free-run and other chosen metrics establish real benefit or explicitly report no benefit/limited work. - [ ] No insufficient-space situation silently authorizes movement of unrelated data; integration with Create follows the resolved creation policy. - [ ] Removal, authorization/lifecycle failure, unsafe interruption, and failed remount have distinct outcomes with preserved recovery evidence. - [ ] The applicable independent image correctness/recovery gate and virtual macOS integration gate pass before writes are enabled, retaining reproducible software/geometry/outcome evidence. ## Blocked by - [Recover interrupted operations in the app](https://git.s1q.dev/phg/iodd-tool/issues/19) - [Discover and analyze external host volumes](https://git.s1q.dev/phg/iodd-tool/issues/20) - [Set validation gates and the implementation handoff](https://git.s1q.dev/phg/iodd-tool/issues/6) ## 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 23:12:59 +00:00
Author
Owner

A feature-gated Compact core milestone is integrated and pushed on implement/iodd-tool-spec-7 at cc32d1fced51379036c90cdce7c4c130b194e261 (candidate 524b44a8f0fb7530ad2e463cd9b4dec9aac9fb05). The public retained host session now composes the existing reviewed Compact engine, with Codable results for the upcoming worker binding. Independent FAT32/exFAT tracers verify the literal largest free run growing from 10 to 12 clusters, two moves/1024 allocated bytes, full content/allocation/entry/directory metadata preservation, pinned ownership, sibling and partition-gap canaries, retained offline ownership and separate close/remount.

Independent review passed 26 test functions / 68 expanded cases, including all 16 existing Compact groups and selected shared creation, freshness, batch Stop and recovery checks. Canonical arm64 app/worker release builds, plist and macOS 15 minimum checks passed; the integrated tree equals the reviewed candidate.

Ticket #23 remains open. This milestone does not enable native Compact or qualify production writes. The implementer has resumed the remaining policy/layout/fault/recovery/UI/native qualification; #21 owns the shared production worker and its independent per-operation gates.

A feature-gated Compact core milestone is integrated and pushed on `implement/iodd-tool-spec-7` at `cc32d1fced51379036c90cdce7c4c130b194e261` (candidate `524b44a8f0fb7530ad2e463cd9b4dec9aac9fb05`). The public retained host session now composes the existing reviewed Compact engine, with Codable results for the upcoming worker binding. Independent FAT32/exFAT tracers verify the literal largest free run growing from 10 to 12 clusters, two moves/1024 allocated bytes, full content/allocation/entry/directory metadata preservation, pinned ownership, sibling and partition-gap canaries, retained offline ownership and separate close/remount. Independent review passed 26 test functions / 68 expanded cases, including all 16 existing Compact groups and selected shared creation, freshness, batch Stop and recovery checks. Canonical arm64 app/worker release builds, plist and macOS 15 minimum checks passed; the integrated tree equals the reviewed candidate. Ticket #23 remains open. This milestone does not enable native Compact or qualify production writes. The implementer has resumed the remaining policy/layout/fault/recovery/UI/native qualification; #21 owns the shared production worker and its independent per-operation gates.
Author
Owner

Resolved on 381442f, pushed and remote-confirmed on implement/iodd-tool-spec-7. Its entire tree matches reviewed candidate d514e5516f; all four native operation flags are enabled.

Independent Standards and Spec reviews found no issues. Canonical arm64 builds, macOS 15 minimum/plist, Developer ID hardening/timestamps and strict component signatures passed. The public safety cohort passed 2 functions / 3 cases (exit 0, 7.268 seconds). The later capture helper's exit 1 remains preserved separately, followed by read-only inventory completion. Signed development archive SHA-256: 5e428352dfc9848836891840f2e6bb6d5eb35030f3025bbd603ba038341afabb (2,847,620 bytes).

The dated ledger and adjacent JSON retain earlier evidence and exact source/artifact bindings. Later d514 observations below supplement that snapshot. The older 95eac full 259-function PASS, fixture union and failed 8cb/7fc full runs retain their separate scope; no binary equivalence, original-cause or flake conclusion is inferred.

Compact retains the agreed objective, threshold, move/byte limits, bounded-search/no-benefit outcomes and separate preparation, backup, review and confirmation. Fourteen finite FAT32/exFAT policy cases passed independent content/allocation/metadata/free-map/pinned/sibling/outside checks and safe cleanup. Target-unmet and limited-search results describe measured outcomes, not impossibility.

Current 0dc FAT32/exFAT Create refusal → separately reviewed Compact → fresh analysis → NEW explicit Create joins passed on macOS 27; mounted exFAT joined on 15. Exact d514 repeated one mounted 15 join: five Compact commits / 20,480 allocated bytes reached the explicitly reviewed 4097-cluster target, followed by fresh analysis/backup/preparation and separate Create. Full six-file preservation and independent VHD/footer/guest-zero/EOF/extent/QEMU checks passed. Native close 0, both original mounts restored, normal Quit, raw exFAT check 0/input unchanged and detach completed. ROOT verified all 84 exact-d514 references.

Both 0dc macOS 27 modeled first-write report failures preserved original failed output, regular journal/registry/events and actual exported bundle BEFORE replay. Same-owner fresh renewal and explicit matched recovery restored pristine whole backings before safe close/check/Quit/detach. These errors followed real writes and successful actual cache ioctls.

Stop coverage combines public-provider boundary/fault cases and thin actual exFAT GUI Stop. The giant-FAT attempt issued ZERO Stop inputs and stays unqualified; its 2048-event close gap and old 13548 Finish gap stay unverified. The EX byte-cap oracle after verified close is not labelled held. Current-worker death is not inferred from historical worker-loss composition. The same d514 archive also passed macOS 27's six-file File → fresh All/safe-close case (315 references).

Final frozen suites on both supported runtimes, whole-integration review, complete app smoke, supported manual/Homebrew lifecycle, notarization/stapling, immutable DMG and clean-user Gatekeeper/cask distribution remain in #24. This closes the operation implementation, not final release. Physical IODD, 4K, power-loss and performance qualification are neither claimed nor added as prerequisites.

Resolved on [381442f](https://git.s1q.dev/phg/iodd-tool/commit/381442f79cd5736fceaffa15d5f1edacb1ca8842), pushed and remote-confirmed on implement/iodd-tool-spec-7. Its entire tree matches reviewed candidate d514e5516fb159af36407eaf699800954a73d9c9; all four native operation flags are enabled. Independent Standards and Spec reviews found no issues. Canonical arm64 builds, macOS 15 minimum/plist, Developer ID hardening/timestamps and strict component signatures passed. The public safety cohort passed 2 functions / 3 cases (exit 0, 7.268 seconds). The later capture helper's exit 1 remains preserved separately, followed by read-only inventory completion. Signed development archive SHA-256: 5e428352dfc9848836891840f2e6bb6d5eb35030f3025bbd603ba038341afabb (2,847,620 bytes). The [dated ledger](https://git.s1q.dev/phg/iodd-tool/src/commit/381442f79cd5736fceaffa15d5f1edacb1ca8842/docs/validation/external-mutations.md) and adjacent JSON retain earlier evidence and exact source/artifact bindings. Later d514 observations below supplement that snapshot. The older 95eac full 259-function PASS, fixture union and failed 8cb/7fc full runs retain their separate scope; no binary equivalence, original-cause or flake conclusion is inferred. Compact retains the agreed objective, threshold, move/byte limits, bounded-search/no-benefit outcomes and separate preparation, backup, review and confirmation. Fourteen finite FAT32/exFAT policy cases passed independent content/allocation/metadata/free-map/pinned/sibling/outside checks and safe cleanup. Target-unmet and limited-search results describe measured outcomes, not impossibility. Current 0dc FAT32/exFAT Create refusal → separately reviewed Compact → fresh analysis → NEW explicit Create joins passed on macOS 27; mounted exFAT joined on 15. Exact d514 repeated one mounted 15 join: five Compact commits / 20,480 allocated bytes reached the explicitly reviewed 4097-cluster target, followed by fresh analysis/backup/preparation and separate Create. Full six-file preservation and independent VHD/footer/guest-zero/EOF/extent/QEMU checks passed. Native close 0, both original mounts restored, normal Quit, raw exFAT check 0/input unchanged and detach completed. ROOT verified all 84 exact-d514 references. Both 0dc macOS 27 modeled first-write report failures preserved original failed output, regular journal/registry/events and actual exported bundle BEFORE replay. Same-owner fresh renewal and explicit matched recovery restored pristine whole backings before safe close/check/Quit/detach. These errors followed real writes and successful actual cache ioctls. Stop coverage combines public-provider boundary/fault cases and thin actual exFAT GUI Stop. The giant-FAT attempt issued ZERO Stop inputs and stays unqualified; its 2048-event close gap and old 13548 Finish gap stay unverified. The EX byte-cap oracle after verified close is not labelled held. Current-worker death is not inferred from historical worker-loss composition. The same d514 archive also passed macOS 27's six-file File → fresh All/safe-close case (315 references). Final frozen suites on both supported runtimes, whole-integration review, complete app smoke, supported manual/Homebrew lifecycle, notarization/stapling, immutable DMG and clean-user Gatekeeper/cask distribution remain in [#24](https://git.s1q.dev/phg/iodd-tool/issues/24). This closes the operation implementation, not final release. Physical IODD, 4K, power-loss and performance qualification are neither claimed nor added as prerequisites.
phg closed this issue 2026-10-15 00:12:20 +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#23
No description provided.