Skip to content

Harden App Store release asset recovery#626

Merged
PrzemyslawKlys merged 4 commits into
mainfrom
fix/apple-screenshot-release-recovery
Jul 24, 2026
Merged

Harden App Store release asset recovery#626
PrzemyslawKlys merged 4 commits into
mainfrom
fix/apple-screenshot-release-recovery

Conversation

@PrzemyslawKlys

@PrzemyslawKlys PrzemyslawKlys commented Jul 24, 2026

Copy link
Copy Markdown
Member

What changed

  • use exact configured App Store version IDs during screenshot-only preparation instead of querying the version list again
  • give owned App Store Connect clients enough time for large screenshot uploads
  • retry transient failures only for idempotent App Store Connect reads, with a strict three-attempt bound
  • honor server-provided Retry-After delays within the retry budget and fail without an early retry when Apple requests a longer wait
  • reject conflicting screenshot and metadata version IDs before any remote change
  • update Magick.NET to 14.15.0 after NuGet began rejecting 14.14.0 for a newly published advisory

Why

CasaRay 1.4 exposed three real release failure modes: Apple intermittently returned 500 responses for version/status reads, Mac screenshot replacement exceeded the default 100-second HTTP timeout, and screenshot-only preparation queried an unnecessary endpoint even though the exact draft ID was configured. These changes let release automation recover safely without retrying uploads or submissions.

Validation

  • 54 focused App Store Connect, screenshot, CLI release, and submission tests pass
  • locked restores pass for PowerForge.Web, PowerForge.Web.Cli, and PowerForge.Tests
  • PowerForge.Web.Cli Release/net10.0 and PowerForge Release/net472 builds pass with zero warnings
  • NuGet reports no vulnerable direct or transitive packages for PowerForge.Web
  • live CasaRay Mac screenshot replacement completed all 10 files with exact checksum matches
  • live final status reconciled iOS/iPadOS and macOS 1.4 as WAITING_FOR_REVIEW after transient Apple 500 responses

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 798534c69e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread PowerForge/Services/AppStoreConnectClient.Http.cs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d804b1f6fa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread PowerForge/Services/AppStoreConnectClient.Http.cs Outdated
@PrzemyslawKlys
PrzemyslawKlys merged commit 8c02f99 into main Jul 24, 2026
6 checks passed
@PrzemyslawKlys
PrzemyslawKlys deleted the fix/apple-screenshot-release-recovery branch July 24, 2026 13:28
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