Skip to content

Redesign subscription catalog and transaction runtime - #6

Merged
lynnswap merged 26 commits into
mainfrom
codex/readme-entitlement-catalog-quick-start
Jul 23, 2026
Merged

Redesign subscription catalog and transaction runtime#6
lynnswap merged 26 commits into
mainfrom
codex/readme-entitlement-catalog-quick-start

Conversation

@lynnswap

Copy link
Copy Markdown
Owner

Purpose

Introduce a typed, app-domain subscription catalog and complete the beta API redesign around TransactionStore, entitlement availability, transaction policy, and deterministic testing.

Changes

  • Add AutoRenewableSubscriptionGroup, AutoRenewableSubscriptionCatalog, StoreSubscriptions, and StoreSubscription for typed Product ID-to-entitlement declarations.
  • Rework TransactionStore around explicit entitlement availability, exact isEntitled(to:) queries, app-controlled overrides, optional delegate policies, and process-owned lifecycle/finish authority.
  • Strengthen reconciliation, restore, cancellation, failure ownership, reentrancy, and shutdown behavior with deterministic runtime coverage.
  • Add StoreTransactionKitTesting, including a synthetic purchase harness and manually advanced test clock.
  • Update the external consumer fixture, CI, README, and DocC for the new public contract.
  • Migrate the app-hosted StoreKit suite to Tier 1/Tier 2 monthly and yearly subscriptions, including a catalog-external subscription group for live unmanaged transaction handling.

Testing

  • Xcode 26.5 Swift package tests: 102 passed.
  • Xcode 27 Swift package tests: 78 production and 24 testing tests passed.
  • App-hosted StoreKit tests: 18/18 passed on Xcode 26.5 with iOS 18.6 and 18/18 passed on Xcode 27 with iOS 27.
  • App-hosted test bundle cross-builds passed for iOS, tvOS, watchOS, and visionOS.
  • External consumer fixture test passed.
  • Release build passed.
  • DocC archive passed with warnings treated as errors.
  • swift-format, actionlint, workflow SHA pinning, and git diff --check passed.

Screenshots

Not applicable; this changes framework APIs, documentation, and automated tests.

lynnswap added 26 commits July 17, 2026 22:49
Model group membership and entitlement mapping with a result-builder declaration, expose StoreSubscription naming in the consumer API, and align the README with the proposed beta contracts.
Expose entitlement readiness, delegate policy, and completed-action error context. Rename the refresh operation case to match the public API.
@lynnswap

Copy link
Copy Markdown
Owner Author

@codex review

@lynnswap
lynnswap merged commit 3b7fb4c into main Jul 23, 2026
5 checks passed
@lynnswap
lynnswap deleted the codex/readme-entitlement-catalog-quick-start branch July 23, 2026 05:30
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