Conversation
…verrides (#3279) ## Summary Implements Android SDK support for khepri#18819 which adds a `visible` field and `overrides` to the `Package` and `PartialPackage` schema, allowing packages to be hidden by Rules. - Adds `visible: Boolean?` and `overrides: List<ComponentOverride<PartialPackageComponent>>` to `PackageComponent` - Adds `PartialPackageComponent` with `visible: Boolean?` (mirrors khepri's `PartialPackage`) - Adds `PresentedPackagePartial` following the existing partial component pattern - `PackageComponentStyle` now implements `PackageContext` and carries package-level `visible`, `overrides`, and `offerEligibility` - New `PackageComponentState` evaluates overrides at render time (window size, selection, offer eligibility, custom variables) - `PackageComponentView` gates rendering on the resolved package-level visibility - `containsUnsupportedCondition` updated to check package-level overrides ## Test plan - [x] Unit tests: deserialization of new `visible` and `overrides` fields (`PackageComponentTests`) - [x] Unit tests: `StyleFactory` correctly populates `visible` and `overrides` on `PackageComponentStyle` (`StyleFactoryTests`) - [x] Unit tests: `containsUnsupportedCondition` detects unsupported conditions in package overrides (`ContainsUnsupportedConditionTests`) - [x] UI tests: package hidden when `visible=false`, shown when `visible=true`, and toggled via `selected_package` override condition (`VisibilityConditionTests`) - [x] Snapshot tests: need to be regenerated after merging (run `bundle exec fastlane generate_snapshots_RCUI`) ## Related - Backend PR: RevenueCat/khepri#18819 - iOS implementation adds the same feature in `PaywallPackageComponent.swift` + `PackageComponentViewModel.swift` 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Changes paywall rendering behavior by conditionally hiding `PackageComponent`s based on new rule evaluation, which could affect purchase UI visibility if misconfigured; coverage is improved with new unit/UI tests. > > **Overview** > Adds package-level visibility control to paywalls by extending `PackageComponent` with an optional `visible` flag plus conditional `overrides` (via new `PartialPackageComponent`). > > On the UI side, introduces `PresentedPackagePartial` and a new `PackageComponentState` that evaluates package overrides at render time (screen size/selection/offer eligibility/custom variables) and updates `PackageComponentView` to skip rendering when the resolved visibility is false; `StyleFactory` now builds and carries these overrides/visibility (defaulting to visible) and `containsUnsupportedCondition` now considers package-level overrides. Tests are expanded to cover JSON deserialization, style creation defaults, unsupported-condition detection, and Compose visibility behavior for packages. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 0abf6ab. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Claude Sonnet 4.6 <[email protected]>
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit e224b09. Configure here.
| <html> | ||
| <head> | ||
| <meta http-equiv="refresh" content="0; url=https://sdk.revenuecat.com/android/9.28.1/index.html" /> | ||
| <meta http-equiv="refresh" content="0; url=https://sdk.revenuecat.com/android/9.29.0/index.html" /> |
There was a problem hiding this comment.
Docs index.html redirects to wrong version
Medium Severity
The docs/index.html redirect points to 9.29.0/index.html, but the CI deploy step syncs docs to the 9.29.1 path on S3. After deployment, visitors hitting the docs root will be redirected to the 9.29.0 documentation instead of the newly deployed 9.29.1 docs. The redirect URL needs to match the version being deployed.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit e224b09. Configure here.
…3302) This PR automatically updates the golden test files in `purchases/src/test/resources/backend_integration_tests_golden/` based on the latest backend integration test results. Generated from branch: `main` Please review the changes to ensure they are expected. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Only updates golden JSON fixtures used by backend integration tests; no production code changes. Risk is limited to potentially masking an unintended backend response change if the removed field was important to assert. > > **Overview** > Updates the `ProductionBackendIntegrationTest` golden response fixtures for both offerings and verified-offerings requests. > > The expected JSON now reflects a slightly smaller payload: `Content-Length` is updated and the `published_fonts` field is no longer present in the paywall components payload. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit b12023d. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
|
Nice, I think this can be closed now? |


RevenueCatUI SDK
Paywallv2
✨ New Features
Note
Medium Risk
Updates paywall rendering logic to conditionally hide/show package components based on new
visiblefields and override evaluation, which could affect paywall display in production. Version/doc release bumps are low risk, but UI behavior changes warrant careful review and testing across conditions.Overview
Bumps the SDK release to
9.29.1(version files, sample app dependency pins, docs S3 deploy path, and changelogs).Adds Paywallv2 package-level visibility:
PackageComponentnow supports avisibleflag plus conditionaloverridesviaPartialPackageComponent, and RevenueCatUI evaluates those overrides at runtime to hidePackageComponentViewwhen not visible.Extends style/state plumbing to carry package override metadata and offer eligibility, updates unsupported-condition detection for package overrides, and adds unit/UI tests plus refreshed backend-integration golden responses.
Reviewed by Cursor Bugbot for commit 86dea6f. Bugbot is set up for automated code reviews on this repo. Configure here.