Skip to content

Remove the apps' runtime receipt writers - #1106

Merged
shiny-code-app[bot] merged 2 commits into
mainfrom
work/1102-remove-receipt-writers
Nov 9, 2026
Merged

shiny-code-app[bot] merged 2 commits into
mainfrom
work/1102-remove-receipt-writers

Conversation

@shiny-code-app

@shiny-code-app shiny-code-app Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Why

The App Store proof round is gone (#1097, #1101). The apps still wrote runtime receipts and relayed them through CloudKit, but nothing reads them now. This removes that work from every app before the next TestFlight build.

Closes #1102

What changes

  • Mac app, refresh agent and widget, the iPhone, iPad and Vision Pro app and widget, the Watch app and complication, and the Apple TV app and Top Shelf no longer record receipts, open receipt relays or touch the receipt CloudKit record types.
  • The refresh agent drops its --sync-runtime-receipts utility argument.
  • The refresh runner no longer builds a receipt-only result. SnapshotRefreshRunEvidence, the ...WithEvidence methods and SnapshotRefreshOutcome.storedStatus are gone. storedSnapshot stays, because reset-expiry retry bookkeeping uses it.
  • Widget providers return their entries directly instead of a selection wrapper that carried receipt data.
  • Receipt-only location helpers, tests, doc sections and the runtimeReceiptTests route in .github/github.json are removed. The privacy doc no longer describes receipt uploads.

Kept, and why

  • CloudKit/ schema files and scripts/validate-cloudkit-companion-schema.sh are unchanged. Production CloudKit cannot drop deployed record types, and any change under CloudKit/ makes Ship's schema gate check Production live. docs/release.md now says the apps no longer write these types and the schema keeps them.
  • The embedded ContextPanelSurfaceManifest.json stays. The surface manifest checks and CI capture code still read it. Only the Swift loader that read it for receipts is gone.
  • Entitlements are unchanged. Every target that had CloudKit still uses it for companion sync.
  • Gallery launch arguments for the shared-view-simulator-references job are untouched.
  • The "receipt" wording in the runtime baseline docs, launch receipts and the Apple TV sync receipt is a different feature and stays.

Verification

  • swift build: pass, no new warnings.
  • swift test --filter ContextPanelCoreTests: 1322 tests pass.
  • Xcode Release builds, CODE_SIGNING_ALLOWED=NO, local Xcode 27: ContextPanel for macOS, ContextPanelCompanion for generic iOS Simulator and generic visionOS Simulator, ContextPanelWatch for generic watchOS Simulator, ContextPanelTV for generic tvOS Simulator. All pass. Warnings in the logs were there before this change.
  • context-panel-test-lanes.py run --lane fast-local-python and --lane routine-ci-python: pass. validate: pass.
  • scripts/context-panel-surface-manifest.py validate: pass.
  • scripts/validate-cloudkit-companion-schema.sh: pass.
  • JetBrains inspection (native PyCharm) on the changed Python file Tests/ScriptsTests/test_validation_gallery_target_graph.py: GREEN, 0 findings on changed lines.

Review

Reviewed by an OpenAI model through the catalog's model-review helper (author: Anthropic; the CLI did not report the exact model). It found no product behavior, concurrency or CI dependency problems. It found one low-severity issue: leftover receipt-session text in docs/architecture.md and docs/release.md. Fixed in the second commit.

Removed: the runtime receipt recorder, store, relay and CloudKit store, the validation session, receipt-only locations, the refresh-run evidence type, the refresh agent's receipt sync argument, and their tests and docs.

Net lines: -7,599 (code -5,148, tests -2,411, docs -40).

Nothing reads runtime receipts since the release proof round was replaced (#1101). The CloudKit schema keeps the two retired record types because Production cannot drop them.
@shiny-code-app

shiny-code-app Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Review result: weighed
Head: 344a557

Model review, weighed.

Reviewer: OpenAI model through the catalog's model-review helper (author: Anthropic; the CLI did not report the exact model). It read the full first commit against main; the second commit is the docs fix below.

Findings:

  1. Low: leftover receipt-session text in docs/architecture.md (bounded validation-session reads) and docs/release.md (missing runtime records as unknown evidence, runtime record constants). Acted on in 344a557: removed the stale sentences and kept the deployed-schema guidance.

No product behavior, concurrency or CI dependency problems reported. Nothing declined. Nothing open.

@shiny-code-app

shiny-code-app Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Ready for the merge train

Head: 344a557

@shiny-code-app

shiny-code-app Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor Author

Launchplane completed the merge-train step for this pull request.

Launchplane finished the merge-train step for this pull request.

Launchplane manages this comment and will update it as the train moves.

shiny-code-app Bot added a commit that referenced this pull request Nov 9, 2026
@shiny-code-app
shiny-code-app Bot merged commit 88c35fa into main Nov 9, 2026
10 checks passed
@shiny-code-app
shiny-code-app Bot deleted the work/1102-remove-receipt-writers branch November 9, 2026 03:21
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.

Remove the apps' runtime receipt writers left from the proof round

0 participants