Skip to content

test: make generation preparation responsiveness deterministic - #126

Merged
IchenDEV merged 1 commit into
mainfrom
codex/fix-preparation-responsiveness-test
Oct 16, 2026
Merged

IchenDEV merged 1 commit into
mainfrom
codex/fix-preparation-responsiveness-test

Conversation

@IchenDEV

Copy link
Copy Markdown
Owner

Outcome

Release v0.0.54 failed because its preparation responsiveness test could finish
copying before the heartbeat task ran. Replace the timing probe with the existing
worker entry/exit barrier. The MainActor must respond while real preparation is
held at that barrier; copied bytes and candidate cleanup are still checked.
Internal callbacks default to nil for existing production callers.

SDLC bundle and risk

  • Bundle: docs/sdlc/changes/2026-10-16-preparation-responsiveness-test/
  • Risk: medium, test reliability and an internal instrumentation seam.
  • Owner explicitly approved continuous design, execution, verification and merge
    after checks pass. A future production run requires separate approval.
  • Failed v0.0.53 and v0.0.54 tags remain unchanged. The v0.0.54 first failure and
    skipped production are preserved in the upstream signing bundle.

Verification

  • bash scripts/sdlc-checks.sh and bash scripts/ci-basic-checks.sh.
  • Protected swift test --skip-build --skip-update --disable-automatic-resolution
    after building outside the runtime policy with native SwiftPM sandboxing.
    1,143 unique XCTest cases, 17 conditional skips, zero failures; one Swift Testing
    case passed. Every started/finished identity matches frozen discovery.
  • Complete native-engine execution of the same 14 frozen bundles also passed.
    All 702 product files and 300 bundle files retain their hashes.
  • Forcing the entire worker onto MainActor caused exactly the intended
    assertion failure without hanging. Exact source restored, rebuilt and passed.
  • Release-style Developer ID app build, resource checks, DMG checksum and
    mounted-content verification passed. This local fixture is not notarized or published.
  • Independent local code/evidence/signature review passed.
  • Runtime privacy canaries, unchanged 19 dependency pins, and public-content
    credential/path scan passed. Raw logs remain private.

No UI change. Initial wrapper environment failures and the manifest prewarm
resolution are retained in the committed evidence, with native sandboxing and
privacy controls preserved.

Residual risk and rollback

PR CI and exact-main CI must pass before a new release tag. Production signing,
Apple notarization, Gatekeeper checks and publication remain separate release
outcomes. Revert this scoped commit through a PR to roll back; preserve the
responsiveness requirement and failed immutable tags.

Reviewer focus

The entry callback, actual preparation and deferred exit callback must remain in
the same detached closure. The MainActor snapshot must precede gate release.

@IchenDEV
IchenDEV merged commit 8dc9547 into main Oct 16, 2026
3 checks passed
@IchenDEV
IchenDEV deleted the codex/fix-preparation-responsiveness-test branch October 16, 2026 07:43
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