Recover interrupted operations in the app #19
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#19
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
Reopen a fixture with interrupted work, discover recovery evidence, and guide the user to a verified safe result before permitting further mutations.
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 — verified image recovery and retained operation history implemented
Implemented on implement/iodd-tool-spec-7, completed commit 0683666, integration merge 58e8cf4, successfully pushed before this resolution.
Opening an image discovers and matches recovery evidence read-only, reports dirty/missing-evidence states, and offers explicit prepared/confirmed replay. The existing version-1 journal, durable commit direction, idempotent replay, checked retirement and internal registry remain authoritative. Foreign/cloned identities, corrupt/truncated evidence, conflicting contents/metadata and evidence outside the configured registry refuse while preserving unresolved evidence. Self-contained create-only bundle export/import does not grant authority from imported paths or offsets.
Defrag All and Compact retain independently reverified earlier-file results across restart and imported evidence. Complete context/workspace is reserved before writes; exceeding the 4096-row/1 MiB context bound refuses the whole plan. History distinguishes initial exclusions, unvisited candidates and unrecorded trailing skips. Corrupt newer evidence and unrelated later work cannot invent later outcomes or lend an old operation unproven global benefit. Legacy optional context remains replay-compatible. Premerge review also reproduced and fixed stale-refresh readiness and FAT32 completed-history metadata-verification regressions.
Final source checkpoint 5f819cb passes all 200 ordinary release tests in 895.115 seconds, exit 0, including 952 aggregate replay faults: 784 conclusive repeated recoveries and 168 specified evidence-preserving refusals. No filters or waivers apply to that complete run. Final branch/integration Sources, Tests, Package and all scripts match the qualified checkpoint. Fresh merge validation passes 21 tests / 87 cases in 15.241 seconds, release app/worker builds, arm64, plist and both binary macOS 15.0 checks. All 50 evidence hashes and three native artifact hashes match.
The frozen host-native FAT32 Defrag All and exFAT Compact workflows each pass actual bundle save/export, cloned-target import/refusal and moved-original import/explicit recovery after original journals become unavailable. All six app/harness sessions exit 0. Independent full logical/allocated identities, metadata, literal extents and nonrepairing checkers pass with unchanged checker input hashes. Compact staging correctly retains 512 committed allocated bytes with its measured 5120→5120 largest run and no invented growth. Both delayed-real-response model regressions pass. Owned apps and UI lock are released.
Reproducible qualification, evidence, artifact provenance and scope. Journals remain on the Mac internal disk; cross-Mac recovery requires separately saved intact matching evidence and nonconflicting target state. Disk-alone reconstruction and persistent foreign-OS quarantine are not promised. This is image recovery with private ad hoc native validation; external raw mutation/recovery remains #21–23 and final supported-runtime Developer ID/notarization/downloaded-artifact qualification remains #24. Earlier interrupted full runs and superseded native artifacts are explicitly excluded from final-source acceptance.