fix(ci): recover incomplete Swift build caches#98818
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 1, 2026, 9:18 PM ET / 01:18 UTC. Summary PR surface: Config +13. Total +13 across 1 file. Reproducibility: no. high-confidence live reproduction was established in this review. Source inspection and the PR body make the failure path plausible because current main can restore a .build cache and then retry the same directory without validating the Sparkle artifact. Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the narrow CI cache repair only after maintainer review and targeted macos-swift recovery proof, or after maintainers explicitly accept the unproven reset branch with post-merge monitoring. Do we have a high-confidence way to reproduce the issue? No high-confidence live reproduction was established in this review. Source inspection and the PR body make the failure path plausible because current main can restore a .build cache and then retry the same directory without validating the Sparkle artifact. Is this the best way to solve the issue? Yes, this is a narrow CI-layer mitigation: rotating the cache namespace avoids the known-bad generation, and reset is limited to the missing Sparkle artifact condition. The remaining gap is after-fix proof from macos-swift or an equivalent real workflow run. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against a7a444e7ef1e. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Config +13. Total +13 across 1 file. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Land-ready proof for exact head
The normal PR router intentionally skipped macOS for a workflow-only change; the manual workflow dispatch forced the exact affected lane against the same commit. |
|
Merged via squash.
|
What Problem This Solves
The macOS Swift CI lane can restore an exact build cache whose Sparkle XCFramework is incomplete. The subsequent build fails before compilation because
Sparkle.xcframework/Info.plistis missing, and each built-in retry reuses the same broken local build directory.Why This Change Was Made
v2tov3, preventing reuse of the known-bad cache generation.swift package resetwhen the required Sparkle artifact is absent, then allows SwiftPM to rebuild normally.User Impact
No product behavior changes. macOS CI repairs an incomplete restored SwiftPM cache instead of failing all three build attempts.
Evidence
Sparkle.xcframework/Info.plisterror after restoring the same cache key.actionlint .github/workflows/ci.ymlpnpm test test/scripts/ci-workflow-guards.test.ts— 32 passedgit diff --checkAI-assisted: implementation and review used Codex. No transcript attached; the PR contains the complete durable rationale and validation evidence.