Skip to content

docs: refresh submission-readiness docs; fix app-icon alpha blocker - #36

Merged
Adron merged 2 commits into
mainfrom
docs/submission-readiness-refresh
Sep 6, 2026
Merged

docs: refresh submission-readiness docs; fix app-icon alpha blocker#36
Adron merged 2 commits into
mainfrom
docs/submission-readiness-refresh

Conversation

@Adron

@Adron Adron commented Sep 6, 2026

Copy link
Copy Markdown
Member

Summary

Brings the three tracking docs back in line with the shipped code — all of them
overstated what was left to build — and fixes one real App Store submission
blocker found while auditing the assets.

What's included

  • fix(assets) (4f9e30d)AppIcon-1024.png shipped as RGBA. Every pixel was
    fully opaque, but upload validation rejects the presence of an alpha channel
    (ITMS-90717), so the first archive upload would have failed. Re-saved as RGB
    with the RGB pixel data unchanged; the dark-appearance variant keeps its alpha,
    which Apple expects.
  • the-gaps-access.md (bbfe693) — G1–G7 were fixed 2026-08-15 and merged
    2026-08-16 (PRs fix(access): subscriber-gate list-watcher management (G1) #17fix(access): route WatchersListView 401s through handleUnauthorized (G7) #23), but the doc still read as an open backlog. Added a
    closure callout, a per-gap status column, and file/line evidence verified against
    the current tree. The free-user gating path stays flagged as an open coverage
    hole — the only test account is a subscriber.
  • App-Store-Deployment.md — §0 still listed GitHub, tag discovery, offline
    sync, post-as-org, and doc inline images as unbuilt. Rewrote the shipped-phases
    table and feature summary, ticked Tier 0/Tier 1 (Phase 9 split into shipped code
    vs. its two open portal steps), converted the deferred-blockers table to
    statuses, added Associated Domains to the App ID / capability steps, and extended
    the smoke-test list.
  • the-gaps.md — the "remaining" row was stale:
    feat/github-oauth-universal-links is merged, supportsNativeAuth is true, and
    the entitlement is in the repo. Split into phases 17–19 plus the two genuinely
    open items (G11 presence, bare /lists/:id inbound), and updated asks A1/A2.
  • App-Store-Deployment-Checklist.md — rewritten around what's actually left,
    recording this session's verifications: privacy/support/terms URLs 200, AASA live
    with the correct appID and cached by Apple's CDN, Release signing config,
    exactly two entitlements, and no usage-description strings required (media comes
    only from out-of-process PhotosPicker).
  • Screenshot sizing correction — iPhone 15 Plus renders 1290×2796, not the
    1242×2688 the docs claimed for the 6.5" slot. A verified 6.5" simulator
    (iPhone 11 Pro Max on iOS 17.5) is named in both docs; both required capture
    sizes were confirmed against a running build.
  • New App-Store-Listing-Copy.md — subtitle, promotional text, description,
    keywords, What's New, review notes, age-rating answers, and a privacy nutrition
    label audited against APIClient request bodies (adds Photos/Videos and
    Search History, which the old table missed). Every field length-checked and
    free of billing language per Guideline 3.1.1.
  • README — GitHub sign-in is no longer hidden; the backend mobile OAuth branch
    shipped 2026-08-14.

Testing

  • xcodebuild -scheme InterlinedList -destination 'platform=iOS Simulator,id=302E002E-…' -parallel-testing-enabled NO -skip-testing:InterlinedListTests/E2EReadOnlyTests test823 tests, 0 failures, ** TEST SUCCEEDED **
  • Rebuilt after the icon change — ** BUILD SUCCEEDED **, asset catalog clean
  • App installed and launched on iPhone 16 Pro Max and the 6.5" simulator; capture
    confirmed at exactly 1320×2868 and 1242×2688
  • Live checks: /privacy, /help, /terms → 200; /.well-known/apple-app-site-association
    → 200 application/json with appID: BJA9558E4B.com.interlinedlist.app; Apple CDN copy → 200

Follow-ups (not in this PR)

  • Store screenshots still need capturing — the pipeline is verified, but driving the
    app past login needs simulator tap/type tooling that wasn't available in this
    session (use qa-screenshotter or capture by hand).
  • Everything else outstanding is off-machine: Apple portal (App ID + Push +
    Associated Domains → regen profile), APNs .p8, demo reviewer account, ASC record,
    build bump, archive → TestFlight → submit.

🤖 Generated with Claude Code

Adron and others added 2 commits September 5, 2026 22:59
The primary marketing icon shipped as RGBA. Every pixel was fully opaque, but
App Store upload validation rejects the *presence* of an alpha channel
(ITMS-90717), so this would have failed at the first archive upload.

- Re-saved AppIcon-1024.png as RGB; RGB pixel data is byte-for-byte unchanged,
  so the artwork is identical
- The dark-appearance variant keeps its alpha, which Apple expects for
  appearance-specific icons
- Asset catalog compiles clean; build verified green after the change

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFg1zPdWuasXD9ab6HJGHk
… copy

All three tracking docs had drifted behind the code, each in a way that
overstated what was left to build.

- the-gaps-access.md: G1-G7 were fixed 2026-08-15 and merged 2026-08-16
  (PRs #17-#23) but the doc still read as an open backlog. Added a closure
  callout, a per-gap status column, and file/line evidence verified against
  the current tree; kept the free-user gating path as an open coverage note
- App-Store-Deployment.md: section 0 still listed GitHub, tag discovery,
  offline sync, post-as-org, and doc inline images as unbuilt. Rewrote the
  shipped-phases table and feature summary, ticked Tier 0/Tier 1 (splitting
  Phase 9 into shipped code vs. the two open portal steps), converted the
  deferred-blockers table to statuses, added Associated Domains to the
  capability/App-ID steps, and extended the smoke-test list
- the-gaps.md: the remaining-work row was stale (feat/github-oauth-universal-
  links is merged, supportsNativeAuth is true, the entitlement is in the repo).
  Split it into phases 17-19 plus the two genuinely open items (G11 presence,
  bare /lists/:id inbound) and updated asks A1/A2
- App-Store-Deployment-Checklist.md: rewritten around what is actually left,
  recording this session's verifications - privacy/support/terms URLs 200,
  AASA live with the right appID and cached by Apple's CDN, Release signing
  config, exactly two entitlements, and that no usage-description strings are
  needed (media comes only from out-of-process PhotosPicker)
- Corrected the 6.5" screenshot device: iPhone 15 Plus renders 1290x2796, not
  1242x2688. A verified 6.5" simulator (iPhone 11 Pro Max on iOS 17.5) is named
  in both docs; both capture sizes were confirmed against a running build
- New App-Store-Listing-Copy.md: subtitle, promotional text, description,
  keywords, What's New, review notes, age-rating answers, and a privacy
  nutrition label audited against APIClient request bodies (adds Photos/Videos
  and Search History, which the old table missed). All fields length-checked
  and free of billing language per Guideline 3.1.1
- README: GitHub sign-in is no longer hidden; the backend mobile OAuth branch
  shipped 2026-08-14

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFg1zPdWuasXD9ab6HJGHk
@Adron
Adron merged commit fa662b2 into main Sep 6, 2026
1 check passed
@Adron
Adron deleted the docs/submission-readiness-refresh branch September 6, 2026 06:05
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