Skip to content

Require complete evidence finalization before reporting success - #15

Draft
hideouts-io wants to merge 1 commit into
mainfrom
codex/evidence-finalization-20261027
Draft

hideouts-io wants to merge 1 commit into
mainfrom
codex/evidence-finalization-20261027

Conversation

@hideouts-io

@hideouts-io hideouts-io commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Problem

Evidence collection could report completion after required device metadata, checksum, or manifest writing failed. The app journal could also record a finalized partial or failed case as succeeded.

Change

  • Publish the case manifest only after writing the device record and complete SHA-256 list. Fail with the retained case location on collisions, unreadable or unlisted files, and required write failures; preserve existing files.
  • Include the final manifest bytes in SHA256SUMS, reject unsafe checksum paths, and preserve verification of an empty export bundle.
  • Propagate finalization errors and incomplete outcomes through the CLI, app status, and operation journal.
  • Repair the preexisting owned-command cancellation test fixture: its blocking shell read deferred the TERM trap under full-suite scheduling. A signal-interruptible wait retains the test-controlled release and child-exit assertions.

Verification

  • swift build --build-tests -j 4 -Xswiftc -warnings-as-errors --quiet — passed.
  • swift test -j 4 -Xswiftc -warnings-as-errors --filter EvidenceFinalizationTests — 9 tests passed, using task-owned real filesystem cases.
  • nice -n 10 swift test -j 4 -Xswiftc -warnings-as-errors --quiet — 275 tests passed after the fixture repair. The prior cancellation-test failure reproduced in an unchanged worktree and was traced to the shell fixture.
  • nice -n 10 xcodebuild -quiet -project iOSDeveloperToolkit.xcodeproj -scheme iOSDeveloperToolkit -configuration Debug -destination 'platform=macOS,arch=arm64' -derivedDataPath /tmp/idt-evidence-finalization-20261027-derived -jobs 4 build-for-testing — passed; app and UI-test bundles compiled.
  • The documented global SWIFT_TREAT_WARNINGS_AS_ERRORS=YES Xcode override was attempted but stops in third-party SwiftNIO targets because -warnings-as-errors conflicts with their -suppress-warnings flag. The project-configured app build above passed.

Coverage and privacy

Native UI tests were not run locally while the desktop was in use. No physical device or user evidence was used or uploaded; tests used synthetic task-owned files. At exact head f5281c6aa8d23984ca873341ef8d8193995a6445, hosted CI passed 275 Swift package tests, CLI smoke, app build, 16 UI tests, layout, real simulator, release packaging, and Dependency review. Swift CodeQL analysis and uploads passed without extraction diagnostics; it extracted all 78 Sources/ Swift files, 24/25 app files, and 3/27 test files, including all changed production Swift files. The limited test-file extraction is not a claim of complete Swift coverage. Native UI behavior on the owner desktop and physical acquisition/custody remain validation gates. This PR remains draft.

Publish the evidence manifest only after device metadata and complete checksums succeed. Propagate retained partial cases and incomplete outcomes through the CLI and UI journal.

Repair the existing owned-command cancellation test fixture so its TERM trap runs before the test-controlled release under full-suite scheduling.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant