Skip to content

chore: Merge 4.71.1 into master#7094

Open
diegolmello wants to merge 3 commits intomasterfrom
patch-4.71.1
Open

chore: Merge 4.71.1 into master#7094
diegolmello wants to merge 3 commits intomasterfrom
patch-4.71.1

Conversation

@diegolmello
Copy link
Copy Markdown
Member

@diegolmello diegolmello commented Apr 2, 2026

Proposed changes

Issue(s)

How to test or reproduce

Screenshots

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • Improvement (non-breaking change which improves a current function)
  • New feature (non-breaking change which adds functionality)
  • Documentation update (if none of the other choices apply)

Checklist

  • I have read the CONTRIBUTING doc
  • I have signed the CLA
  • Lint and unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works (if applicable)
  • I have added necessary documentation (if applicable)
  • Any dependent changes have been merged and published in downstream modules

Further comments

Summary by CodeRabbit

  • Bug Fixes

    • Improved reliability of media capture and selection on Android (adjusted action-sheet handling).
  • Chores

    • App version updated to 4.71.1 across platforms.
    • Updated axios dependency to a newer release.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 2, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e0583259-52ba-4648-a40d-c9233552db8f

📥 Commits

Reviewing files that changed from the base of the PR and between 08eab9e and dc7a300.

📒 Files selected for processing (5)
  • android/app/build.gradle
  • ios/RocketChatRN.xcodeproj/project.pbxproj
  • ios/RocketChatRN/Info.plist
  • ios/ShareRocketChatRN/Info.plist
  • package.json
✅ Files skipped from review due to trivial changes (4)
  • android/app/build.gradle
  • ios/RocketChatRN/Info.plist
  • ios/RocketChatRN.xcodeproj/project.pbxproj
  • ios/ShareRocketChatRN/Info.plist
🚧 Files skipped from review as they are similar to previous changes (1)
  • package.json
📜 Recent review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: format

Walkthrough

Bumps app version from 4.70.1 to 4.71.1 across Android, iOS, and package.json; updates axios from ~0.28.1 to 0.30.3; and increases an Android media action delay from 250ms to 550ms in the message composer.

Changes

Cohort / File(s) Summary
Version & metadata
android/app/build.gradle, ios/RocketChatRN.xcodeproj/project.pbxproj, ios/RocketChatRN/Info.plist, ios/ShareRocketChatRN/Info.plist, package.json
Updated app version/marketing version strings from 4.70.14.71.1 in Android and iOS build/Info.plist files and package.json.
Dependency
package.json
Changed axios from ~0.28.1 to exact 0.30.3.
Media action timing
app/containers/MessageComposer/components/Buttons/ActionsButton.tsx
Increased Android workaround delay after hideActionSheet() from 250ms → 550ms before invoking takePhoto, takeVideo, and chooseFromLibrary.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: Merge 4.71.1 into master' clearly summarizes the primary change—a version release merge to the main branch.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@diegolmello diegolmello changed the base branch from master to develop April 2, 2026 13:09
@diegolmello diegolmello changed the base branch from develop to master April 2, 2026 13:13
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
app/containers/MessageComposer/components/Buttons/ActionsButton.tsx (1)

57-59: Extract the repeated 550ms delay into a shared helper/constant.

At Line 59, Line 70, and Line 81, the same timeout value is duplicated. Centralizing this avoids drift and makes future tuning safer.

♻️ Suggested refactor
+import { Platform } from 'react-native';
 import React, { useContext } from 'react';
@@
 export const ActionsButton = () => {
 	'use memo';
+	const MEDIA_ACTION_DELAY_MS = Platform.OS === 'android' ? 550 : 0;
@@
+	const runAfterActionSheetClose = (callback: () => void) => {
+		hideActionSheet();
+		setTimeout(callback, MEDIA_ACTION_DELAY_MS);
+	};
@@
 					onPress: () => {
-						hideActionSheet();
-						// This is necessary because the action sheet does not close properly on Android
-						setTimeout(() => {
-							takePhoto();
-						}, 550);
+						runAfterActionSheetClose(takePhoto);
 					}
@@
 					onPress: () => {
-						hideActionSheet();
-						// This is necessary because the action sheet does not close properly on Android
-						setTimeout(() => {
-							takeVideo();
-						}, 550);
+						runAfterActionSheetClose(takeVideo);
 					}
@@
 					onPress: () => {
-						hideActionSheet();
-						// This is necessary because the action sheet does not close properly on Android
-						setTimeout(() => {
-							chooseFromLibrary();
-						}, 550);
+						runAfterActionSheetClose(chooseFromLibrary);
 					}

Also applies to: 68-70, 79-81

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/containers/MessageComposer/components/Buttons/ActionsButton.tsx` around
lines 57 - 59, Extract the repeated 550ms magic number into a shared constant
and use it for all setTimeout calls in ActionsButton.tsx; specifically, define a
descriptive constant (e.g., PHOTO_CAPTURE_DELAY_MS) at the top of the
component/module and replace the inline 550 values used in the setTimeout calls
that invoke takePhoto() (and any other timeouts in this file) with that constant
so all delays are centralized and easy to adjust.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@app/containers/MessageComposer/components/Buttons/ActionsButton.tsx`:
- Around line 57-59: Extract the repeated 550ms magic number into a shared
constant and use it for all setTimeout calls in ActionsButton.tsx; specifically,
define a descriptive constant (e.g., PHOTO_CAPTURE_DELAY_MS) at the top of the
component/module and replace the inline 550 values used in the setTimeout calls
that invoke takePhoto() (and any other timeouts in this file) with that constant
so all delays are centralized and easy to adjust.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9ec38554-b8cf-428d-b5e6-3bb3c81de732

📥 Commits

Reviewing files that changed from the base of the PR and between b755414 and 6215a1b.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (6)
  • android/app/build.gradle
  • app/containers/MessageComposer/components/Buttons/ActionsButton.tsx
  • ios/RocketChatRN.xcodeproj/project.pbxproj
  • ios/RocketChatRN/Info.plist
  • ios/ShareRocketChatRN/Info.plist
  • package.json
📜 Review details
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2026-03-31T11:59:31.061Z
Learnt from: Rohit3523
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6875
File: android/build.gradle:3-8
Timestamp: 2026-03-31T11:59:31.061Z
Learning: In the RocketChat/Rocket.Chat.ReactNative repository, the React Native upgrade helper (https://react-native-community.github.io/upgrade-helper/?from=0.79.4&to=0.81.5) recommends kotlinVersion = "2.1.20", compileSdkVersion = 36, targetSdkVersion = 36, and buildToolsVersion = "36.0.0" in android/build.gradle for the RN 0.79.4 → 0.81.5 upgrade. These are the sanctioned values for this upgrade path and should not be flagged as compatibility concerns.

Applied to files:

  • android/app/build.gradle
  • package.json
  • ios/RocketChatRN.xcodeproj/project.pbxproj
📚 Learning: 2026-03-31T11:58:54.608Z
Learnt from: Rohit3523
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6875
File: android/gradle/wrapper/gradle-wrapper.properties:3-3
Timestamp: 2026-03-31T11:58:54.608Z
Learning: In the RocketChat/Rocket.Chat.ReactNative repository, the React Native upgrade helper (https://react-native-community.github.io/upgrade-helper/) recommends gradle-8.14.3-bin for the React Native 0.79.4 → 0.81.5 upgrade. This is the sanctioned Gradle version for RN 0.81.5 even though it is above Kotlin 2.1.20's "fully supported" Gradle range (≤8.11); Kotlin 2.1.20 docs explicitly allow using newer Gradle versions with a caveat that deprecation warnings may appear.

Applied to files:

  • android/app/build.gradle
  • package.json
📚 Learning: 2026-02-05T13:55:00.974Z
Learnt from: Rohit3523
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6930
File: package.json:101-101
Timestamp: 2026-02-05T13:55:00.974Z
Learning: In this repository, the dependency on react-native-image-crop-picker should reference the RocketChat fork (RocketChat/react-native-image-crop-picker) with explicit commit pins, not the upstream ivpusic/react-native-image-crop-picker. Update package.json dependencies (and any lockfile) to point to the fork URL and a specific commit, ensuring edge-to-edge Android fixes are included. This pattern should apply to all package.json files in the repo that declare this dependency.

Applied to files:

  • package.json
📚 Learning: 2026-03-30T15:49:30.957Z
Learnt from: Rohit3523
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6875
File: app/containers/RoomItem/Actions.tsx:12-12
Timestamp: 2026-03-30T15:49:30.957Z
Learning: In RocketChat/Rocket.Chat.ReactNative, `react-native-worklets` version 0.6.1 does NOT export a built-in Jest mock (e.g., no `react-native-worklets/lib/module/mock`). The correct Jest mock approach for this version is to add a manual mock in `jest.setup.js`: `jest.mock('react-native-worklets', () => ({ scheduleOnRN: jest.fn((fn, ...args) => fn(...args)) }))`.

Applied to files:

  • package.json
🔇 Additional comments (6)
ios/RocketChatRN.xcodeproj/project.pbxproj (1)

2938-2938: NotificationService marketing version bump is consistent.

Both configurations were updated to 4.71.1, which keeps Debug/Release in sync for the extension target.

Also applies to: 2991-2991

ios/ShareRocketChatRN/Info.plist (1)

29-29: Share extension short version update looks good.

CFBundleShortVersionString is correctly bumped to 4.71.1.

android/app/build.gradle (1)

93-93: Android versionName bump is correct and minimal.

versionName is updated cleanly to 4.71.1 without unrelated build config churn.

ios/RocketChatRN/Info.plist (1)

31-31: Main iOS short version update is good.

CFBundleShortVersionString is correctly set to 4.71.1.

package.json (2)

3-3: Package version bump is aligned with the release patch.

version updated to 4.71.1 is correct.


54-54: axios 0.30.3 is correctly resolved and has no compatibility concerns in this codebase.

The lockfile properly resolves to version 0.30.3. The only axios usage in the codebase is a simple axios.head() call in app/containers/message/Urls.tsx, which is unaffected by this release. Version 0.30.3 is a security-only patch addressing a proto key DoS vulnerability—it introduces no changes to HEAD request handling or cancellation APIs. No legacy cancellation token patterns (CancelToken, isCancel) exist in the code, eliminating that concern entirely.

@diegolmello diegolmello temporarily deployed to approve_e2e_testing April 2, 2026 13:21 — with GitHub Actions Inactive
@diegolmello diegolmello changed the title Patch 4.71.1 chore: Merge 4.71.1 into master Apr 2, 2026
@diegolmello diegolmello temporarily deployed to official_android_build April 2, 2026 13:24 — with GitHub Actions Inactive
@diegolmello diegolmello had a problem deploying to experimental_android_build April 2, 2026 13:24 — with GitHub Actions Error
@diegolmello diegolmello had a problem deploying to experimental_ios_build April 2, 2026 13:24 — with GitHub Actions Error
@diegolmello diegolmello temporarily deployed to official_ios_build April 2, 2026 13:24 — with GitHub Actions Inactive
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@ios/RocketChatRN/Info.plist`:
- Around line 30-33: Remove the orphaned value entry "<string>????</string>"
that remains after removing the deprecated CFBundleSignature key so the plist is
well-formed; look for the CFBundleShortVersionString/CFBundleURLTypes block and
delete the stray <string>????</string> line (no replacement) to restore valid
key/value pairing in Info.plist.

In `@ios/ShareRocketChatRN/Info.plist`:
- Around line 28-31: The plist contains an orphaned <string>1</string> between
CFBundleShortVersionString and KeychainGroup and has removed the required
CFBundleVersion; remove the stray standalone <string>1</string> and restore a
CFBundleVersion entry (e.g. add a <key>CFBundleVersion</key> with a
<string>$(CURRENT_PROJECT_VERSION)</string>) so the extension has a proper build
number; check around CFBundleShortVersionString and KeychainGroup to insert the
CFBundleVersion key/value in the same style as the main app's Info.plist.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4faa66e2-2f8b-4344-a544-b263ea02977f

📥 Commits

Reviewing files that changed from the base of the PR and between 6215a1b and 08eab9e.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (6)
  • android/app/build.gradle
  • app/containers/MessageComposer/components/Buttons/ActionsButton.tsx
  • ios/RocketChatRN.xcodeproj/project.pbxproj
  • ios/RocketChatRN/Info.plist
  • ios/ShareRocketChatRN/Info.plist
  • package.json
✅ Files skipped from review due to trivial changes (2)
  • android/app/build.gradle
  • ios/RocketChatRN.xcodeproj/project.pbxproj
🚧 Files skipped from review as they are similar to previous changes (2)
  • app/containers/MessageComposer/components/Buttons/ActionsButton.tsx
  • package.json
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: ESLint and Test / run-eslint-and-test
  • GitHub Check: format
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2026-03-31T11:59:31.061Z
Learnt from: Rohit3523
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6875
File: android/build.gradle:3-8
Timestamp: 2026-03-31T11:59:31.061Z
Learning: In the RocketChat/Rocket.Chat.ReactNative repository, the React Native upgrade helper (https://react-native-community.github.io/upgrade-helper/?from=0.79.4&to=0.81.5) recommends kotlinVersion = "2.1.20", compileSdkVersion = 36, targetSdkVersion = 36, and buildToolsVersion = "36.0.0" in android/build.gradle for the RN 0.79.4 → 0.81.5 upgrade. These are the sanctioned values for this upgrade path and should not be flagged as compatibility concerns.

Applied to files:

  • ios/ShareRocketChatRN/Info.plist

@diegolmello diegolmello temporarily deployed to approve_e2e_testing April 2, 2026 13:55 — with GitHub Actions Inactive
@diegolmello diegolmello deployed to official_android_build April 2, 2026 13:57 — with GitHub Actions Active
@diegolmello diegolmello requested a deployment to experimental_android_build April 2, 2026 13:57 — with GitHub Actions Waiting
@diegolmello diegolmello deployed to official_ios_build April 2, 2026 13:57 — with GitHub Actions Active
@diegolmello diegolmello requested a deployment to experimental_ios_build April 2, 2026 13:57 — with GitHub Actions Waiting
@diegolmello diegolmello deployed to upload_official_ios April 2, 2026 14:14 — with GitHub Actions Active
@diegolmello diegolmello deployed to upload_official_android April 2, 2026 14:28 — with GitHub Actions Active
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

Android Build Available

Rocket.Chat 4.71.1.108464

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

iOS Build Available

Rocket.Chat 4.71.1.108465

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants