Conversation
|
Warning Review limit reached
More reviews will be available in 46 minutes and 22 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe ChangesLive Activity Entitlement and Plugin Config
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
plugins/withCheckInLiveActivity.js (1)
1-1: ⚡ Quick winRename this plugin file to lowercase-hyphenated form.
plugins/withCheckInLiveActivity.jsviolates the repository path convention; rename it to something likeplugins/with-check-in-live-activity.jsand update the plugin path inapp.config.ts.As per coding guidelines,
**/*: Directory and file names should be lowercase and hyphenated (e.g., user-profile, chat-screen).🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/withCheckInLiveActivity.js` at line 1, Rename the file `plugins/withCheckInLiveActivity.js` to `plugins/with-check-in-live-activity.js` to follow the repository convention of using lowercase-hyphenated names for files and directories. After renaming the file, update the import or require statement in `app.config.ts` that references this plugin to point to the new lowercase-hyphenated filename instead of the camelCase version.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@plugins/withCheckInLiveActivity.js`:
- Line 302: The early return at line 431 when a widget target already exists
skips the DEVELOPMENT_TEAM and ProvisioningStyle signing patches that are
located at lines 516-572, causing existing widget targets to retain stale
signing settings instead of applying the updated teamId from app.config.ts.
Refactor the code to separate the widget target creation check from the signing
patches application - the early return should only prevent duplicate target
creation, but move the DEVELOPMENT_TEAM and ProvisioningStyle patches outside or
after the creation check so that the signing settings are applied to both newly
created and existing widget targets.
- Line 1: The plugin currently prevents writing the invalid
com.apple.developer.live-activity entitlement going forward, but existing
projects may still have this stale key in their native entitlements file. Add a
cleanup mod using the withInfoPlist function (which is already imported) that
actively removes the com.apple.developer.live-activity key from the Info.plist
during prebuild to ensure old projects get cleaned up when running the plugin,
preventing the archive-breaking issues documented around lines 310–314. Execute
this cleanup before any other modifications to the entitlements.
---
Nitpick comments:
In `@plugins/withCheckInLiveActivity.js`:
- Line 1: Rename the file `plugins/withCheckInLiveActivity.js` to
`plugins/with-check-in-live-activity.js` to follow the repository convention of
using lowercase-hyphenated names for files and directories. After renaming the
file, update the import or require statement in `app.config.ts` that references
this plugin to point to the new lowercase-hyphenated filename instead of the
camelCase version.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 94b513c3-9e10-450c-b7c9-3de1e5a73d2c
📒 Files selected for processing (2)
app.config.tsplugins/withCheckInLiveActivity.js
💤 Files with no reviewable changes (1)
- app.config.ts
| @@ -1,4 +1,4 @@ | |||
| const { withDangerousMod, withInfoPlist, withEntitlementsPlist, withXcodeProject } = require('expo/config-plugins'); | |||
| const { withDangerousMod, withInfoPlist, withXcodeProject } = require('expo/config-plugins'); | |||
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Find stale Live Activity entitlement keys in native entitlement files and confirm plugin cleanup coverage.
# Expected after the fix: no *.entitlements file contains com.apple.developer.live-activity; the plugin may only mention it in comments/deletion logic.
fd -e entitlements -x sh -c 'echo "== $1 =="; rg -n "com\.apple\.developer\.live-activity" "$1" || true' sh {}
fd -i 'withCheckInLiveActivity.js' -x sh -c 'echo "== $1 =="; rg -n -C3 "withEntitlementsPlist|com\.apple\.developer\.live-activity|NSSupportsLiveActivities" "$1"' sh {}Repository: Resgrid/Unit
Length of output: 961
🏁 Script executed:
head -5 plugins/withCheckInLiveActivity.jsRepository: Resgrid/Unit
Length of output: 211
🏁 Script executed:
find . -name "*.entitlements" -type f 2>/dev/null | head -20Repository: Resgrid/Unit
Length of output: 38
Add cleanup logic to remove stale invalid entitlements.
The current change prevents writing com.apple.developer.live-activity going forward, but projects that ran earlier plugin versions may still have this key in their native entitlements. Since lines 310–314 document that this key is invalid and archive-breaking, add a mod to actively delete it during prebuild to clean up existing projects:
Proposed cleanup
-const { withDangerousMod, withInfoPlist, withXcodeProject } = require('expo/config-plugins');
+const { withDangerousMod, withEntitlementsPlist, withInfoPlist, withXcodeProject } = require('expo/config-plugins');
@@
config = withInfoPlist(config, (config) => {
config.modResults.NSSupportsLiveActivities = true;
return config;
});
+
+ config = withEntitlementsPlist(config, (config) => {
+ delete config.modResults['com.apple.developer.live-activity'];
+ return config;
+ });🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@plugins/withCheckInLiveActivity.js` at line 1, The plugin currently prevents
writing the invalid com.apple.developer.live-activity entitlement going forward,
but existing projects may still have this stale key in their native entitlements
file. Add a cleanup mod using the withInfoPlist function (which is already
imported) that actively removes the com.apple.developer.live-activity key from
the Info.plist during prebuild to ensure old projects get cleaned up when
running the plugin, preventing the archive-breaking issues documented around
lines 310–314. Execute this cleanup before any other modifications to the
entitlements.
|
Approve |
Summary by CodeRabbit