Skip to content

Wait for Apple screenshot placements and report rejected states - #55

Merged
zigdanis merged 1 commit into
masterfrom
t3code/fix-app-store-placement-verification
Oct 10, 2026
Merged

zigdanis merged 1 commit into
masterfrom
t3code/fix-app-store-placement-verification

Conversation

@zigdanis

@zigdanis zigdanis commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

The App Store screenshot upload created the 2.1.0 draft and four processed English images, then stopped at placement verification with a generic state error on three attempts. Russian images and cleanup of inherited size sets have not run; the live placement state was not captured.

Wait up to five minutes only for Apple’s documented ASSET_PROCESSING placement state. Every read still validates exact image properties and order; failed or unexpected parent states stop immediately with the actual state. Inventory receipts also expose placement_state, and the final editable-version check remains required.

Validation: 53 script tests pass, including processing-to-ready, timeout without old-set cleanup, failed/reviewed state rejection, order/asset mismatch, inventory state reporting, and final parent-state rejection. No app or capture inputs changed, so simulator screenshots do not apply to this uploader-only change; the accepted screenshots and animation remain in merged PR #54. Independent correctness and acceptance reviews passed with no findings; macOS CI is pending. The actual live failure cause remains unconfirmed until the improved diagnostic runs with the protected master credentials.

Summary by CodeRabbit

  • Bug Fixes
    • Submission processing now waits for assets that are still being processed, rather than treating them as immediately ready.
    • Assets in unsupported or failed states continue to be rejected, and processing that exceeds the wait limit returns a clear timeout message.
    • Status reports now include each asset’s placement state, making pending items easier to identify.

Note

Wait for Apple screenshot placements to become ready and report rejected states

  • Adds wait_for_placements polling to app-store-metadata.py. It rereads placements for up to 5 minutes, rechecking ordering and asset verification on each poll, with a 5-second sleep while processing
  • verify_placements now accepts processing as temporary pending, but raises an error naming the placement ID and state for failed or other non-editable states
  • Uploads poll after ordering requests and after removing obsolete phone groups, before recording groups as verified
  • Inventory output reports placement state and image asset state as separate fields
  • Tests cover processing-to-editable transitions, terminal states, timeout behavior, and revalidation during polling. Risk: uploads that previously succeeded immediately now wait up to 5 minutes for placement processing and fail with a timeout if processing persists

Macroscope summarized 4c02c82.

@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: zigdanis/GrowingUp/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: fcbe2aee-f84e-4fe4-8c94-ade3125880ff

📥 Commits

Reviewing files that changed from the base of the PR and between 20323ee and 4c02c82.


📒 Files selected for processing (2)
  • scripts/app-store-metadata.py
  • scripts/tests/test_app_store_metadata.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.



📝 Walkthrough

Walkthrough

Placement verification now treats ASSET_PROCESSING as pending and polls for readiness. Upload processing waits after ordering and during final verification. Inventory screenshot records now include placement state.

Changes

Screenshot placement readiness

Layer / File(s) Summary
Placement state checks and polling
scripts/app-store-metadata.py, scripts/tests/test_app_store_metadata.py
verify_placements reports processing placements as pending and rejects other unexpected states. wait_for_placements polls every five seconds for up to 300 seconds. Tests cover state sequences, failures, and timeouts.
Upload verification and inventory
scripts/app-store-metadata.py, scripts/tests/test_app_store_metadata.py
Upload processing waits after ordering and during final verification. Inventory receipts include placement state. Tests cover final version state, placement order, asset references, and image dimensions.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant UploadFlow
  participant wait_for_placements
  participant api
  UploadFlow->>wait_for_placements: Wait for placement readiness
  loop While placements are processing
    wait_for_placements->>api: Read placement states
    api-->>wait_for_placements: Return current placement states
  end
  wait_for_placements-->>UploadFlow: Return ready placements or raise timeout
Loading

Merge Risk: ⚪ Minimal · up to 4c02c

The uploader now waits for Apple's processing state and reports rejected states clearly. No merge-blocking risk was found in the supplied changes.

Pre-merge checks | Passed 4 | Failed 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 5.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 20 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly identifies the main change: waiting for Apple screenshot placements and reporting rejected states.
Description check Passed The description explains the behavior change, verification coverage, visual-evidence rationale, pending macOS CI, and remaining diagnostic limitation. It omits the template headings, but it includes t…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.


  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR

🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR


  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zigdanis
zigdanis marked this pull request as ready for review October 9, 2026 18:58
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T19:01:31.040145Z 4c02c82 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@zigdanis
zigdanis merged commit 1a4a1cd into master Oct 10, 2026
11 checks passed
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