Skip to content

Conversation

@KevLehman
Copy link
Member

@KevLehman KevLehman commented Jan 21, 2026

Proposed changes (including videos or screenshots)

Issue(s)

https://rocketchat.atlassian.net/browse/CORE-1715

Steps to test or reproduce

Further comments

Summary by CodeRabbit

  • Chores
    • Standardized logging across the app: replaced raw error and string logs with structured log objects (consistent fields such as msg, err, and contextual keys). Logging variable names were standardized. No user-facing behavior, control flow, or public API changes; changes only affect log payloads and observability.

✏️ Tip: You can customize this high-level summary in your review settings.

@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Jan 21, 2026

Looks like this PR is not ready to merge, because of the following issues:

  • This PR is targeting the wrong base branch. It should target 8.2.0, but it targets 8.1.0

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link

changeset-bot bot commented Jan 21, 2026

⚠️ No Changeset found

Latest commit: d7e49bb

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 21, 2026

Walkthrough

Standardizes server logging by renaming catch variables to err and converting unstructured/string/raw-error logs into structured object payloads (e.g., { err }, { msg, ... }) across many core and EE modules; no control-flow, API signature, or behavior changes.

Changes

Cohort / File(s) Summary
API / Team
apps/meteor/app/api/server/lib/eraseTeam.ts
Catch var → err; error logged as { err }
Scheduler
apps/meteor/app/apps/server/bridges/scheduler.ts
Exceptions logged as structured objects; unknown startup type logged with { msg, type }
File Upload & Requests
apps/meteor/app/file-upload/server/lib/FileUpload.ts, apps/meteor/app/file-upload/server/lib/requests.ts
Error/log calls standardized to { err }
Importers
apps/meteor/app/importer-pending-files/server/PendingFileImporter.ts, apps/meteor/app/importer-slack/server/SlackImporter.ts
Catch vars → err; logs use { msg, ... } and { err }; missed-types now structured
Integrations & Script Engine
apps/meteor/app/integrations/server/lib/ScriptEngine.ts, apps/meteor/app/integrations/server/lib/isolated-vm/isolated-vm.ts, apps/meteor/app/integrations/server/lib/triggerHandler.ts
Script/result and HTTP error logs converted to structured objects; catch vars standardized
User Identity / Username
apps/meteor/app/lib/server/functions/saveUserIdentity.ts, apps/meteor/app/lib/server/functions/setUsername.ts
Error logs wrapped as { err }; catch-var renames only
Livechat
apps/meteor/app/livechat/server/lib/rooms.ts, apps/meteor/app/livechat/server/lib/stream/agentStatus.ts, apps/meteor/app/livechat/server/sendMessageBySMS.ts
Catch vars → err; dynamic fields moved into structured log fields
Mail & Notification Queue
apps/meteor/app/mail-messages/server/functions/unsubscribe.ts, apps/meteor/app/notification-queue/server/NotificationQueue.ts
Positional/debug logs replaced with structured { msg, ... }; errors as { err }
SAML (core, parsers & generators)
apps/meteor/app/meteor-accounts-saml/server/lib/{SAML,Utils,ServiceProvider,settings}.ts, .../parsers/*, .../generators/*, methods/samlLogout.ts, loginHandler.ts
SAMLUtils.log/error signatures narrowed; SAML logs converted to structured objects; catch vars standardized
Push
apps/meteor/app/push/server/push.ts
Many string logs replaced by { msg, ... }; removed direct error.stack logging; no behavior changes
Slack Bridge
apps/meteor/app/slackbridge/server/{RocketAdapter.js,SlackAdapter.js,slackbridge.js}
Numerous debug/error logs converted to structured { msg, ... }; catch vars standardized
WebDAV / Nextcloud
apps/meteor/app/nextcloud/server/addWebdavServer.ts, apps/meteor/app/webdav/server/methods/uploadFileToWebdav.ts
Catch vars → err; errors logged as { err }; status-based handling unchanged
Metrics & Marketplace
apps/meteor/app/metrics/server/lib/collectMetrics.ts, ee/server/apps/marketplace/{fetchMarketplaceApps.ts,fetchMarketplaceCategories.ts}
Error logs switched to structured objects including status/response where applicable
LDAP / Server core
apps/meteor/server/lib/ldap/{Connection.ts,Manager.ts}, apps/meteor/ee/server/lib/ldap/Manager.ts, apps/meteor/server/database/utils.ts
Extensive internal catch-param renames to err and { err } logging; no public API changes
Server services & features
assorted apps/meteor/server/services/*, apps/meteor/server/features/EmailInbox/EmailInbox.ts, modules and methods (e.g., sendForgotPasswordEmail.ts)
Catch vars standardized; debug/error logs now structured across services
Omnichannel / Twilio
apps/meteor/server/services/omnichannel-integrations/providers/twilio.ts, apps/meteor/server/services/omnichannel/queue.ts
Minor log string adjustments; some messages converted to structured payloads
Enterprise: Livechat, Media Calls, Omnichannel
ee/.../livechat-enterprise/*, ee/packages/media-calls/src/*, ee/packages/omnichannel-services/src/OmnichannelTranscript.ts
Logs converted to structured objects with contextual fields; catch vars standardized
Client & Core packages
packages/omni-core/src/visitor/create.ts, packages/ui-client/src/lib/callbacks/Callbacks.ts
Template/plain string logs replaced by structured { msg, ... } debug logs

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • sampaiodiego
  • ggazzo

Poem

🐰 In catch blocks neat I hop and sing,
I tuck each err into a tidy string.
Msgs and fields in columns bright,
Logs now tell their tale at night.
Hooray — structured carrots for every thing! 🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: Adapt logs to object format (final!)' clearly summarizes the main change across all files—converting log calls to use structured object format instead of raw strings or multiple parameters.
Linked Issues check ✅ Passed The PR implements structured logging changes across the codebase to adapt logs to object format, which aligns with CORE-1715's objective to adapt server logs to new format.
Out of Scope Changes check ✅ Passed All changes are consistently focused on converting error handling and logging calls to structured object format; no unrelated functional changes or scope creep detected.

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/logs-iguess

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.

@codecov
Copy link

codecov bot commented Jan 21, 2026

Codecov Report

❌ Patch coverage is 23.30097% with 79 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.79%. Comparing base (cb094ce) to head (d7e49bb).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #38289      +/-   ##
===========================================
+ Coverage    70.77%   70.79%   +0.02%     
===========================================
  Files         3158     3158              
  Lines       109363   109355       -8     
  Branches     19674    19634      -40     
===========================================
+ Hits         77401    77422      +21     
+ Misses       29931    29904      -27     
+ Partials      2031     2029       -2     
Flag Coverage Δ
e2e 60.31% <ø> (-0.01%) ⬇️
e2e-api 48.12% <15.21%> (+0.04%) ⬆️
unit 71.93% <30.00%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

📦 Docker Image Size Report

➡️ Changes

Service Current Baseline Change Percent
sum of all images 0B 0B 0B
account-service 0B 0B 0B
authorization-service 0B 0B 0B
ddp-streamer-service 0B 0B 0B
omnichannel-transcript-service 0B 0B 0B
presence-service 0B 0B 0B
queue-worker-service 0B 0B 0B
rocketchat 0B 0B 0B

📊 Historical Trend

---
config:
  theme: "dark"
  xyChart:
    width: 900
    height: 400
---
xychart
  title "Image Size Evolution by Service (Last 30 Days + This PR)"
  x-axis ["11/18 22:53", "11/19 23:02", "11/21 16:49", "11/24 17:34", "11/27 22:32", "11/28 19:05", "12/01 23:01", "12/02 21:57", "12/03 21:00", "12/04 18:17", "12/05 21:56", "12/08 20:15", "12/09 22:17", "12/10 23:26", "12/11 21:56", "12/12 22:45", "12/13 01:34", "12/15 22:31", "12/16 22:18", "12/17 21:04", "12/18 23:12", "12/19 23:27", "12/20 21:03", "12/22 18:54", "12/23 16:16", "12/24 19:38", "12/25 17:51", "12/26 13:18", "12/29 19:01", "12/30 20:52", "01/22 18:09 (PR)"]
  y-axis "Size (GB)" 0 --> 0.5
  line "account-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.00]
  line "authorization-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.00]
  line "ddp-streamer-service" [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.00]
  line "omnichannel-transcript-service" [0.14, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.00]
  line "presence-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.00]
  line "queue-worker-service" [0.14, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.00]
  line "rocketchat" [0.35, 0.35, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.00]
Loading

Statistics (last 30 days):

  • 📊 Average: 1.5GiB
  • ⬇️ Minimum: 1.4GiB
  • ⬆️ Maximum: 1.6GiB
  • 🎯 Current PR: 0B
ℹ️ About this report

This report compares Docker image sizes from this build against the develop baseline.

  • Tag: pr-38289
  • Baseline: develop
  • Timestamp: 2026-01-22 18:09:02 UTC
  • Historical data points: 30

Updated: Thu, 22 Jan 2026 18:09:02 GMT

@KevLehman KevLehman marked this pull request as ready for review January 22, 2026 16:08
@KevLehman KevLehman requested review from a team as code owners January 22, 2026 16:08
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 61 files

Copy link
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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
apps/meteor/app/slackbridge/server/slackbridge.js (1)

152-159: Consider masking API token in debug logs.

Similar to the bot/app tokens above, SlackBridge_APIToken is also sensitive and should not be logged in plain text.

Proposed fix
 		settings.watch('SlackBridge_APIToken', (value) => {
 			if (value !== this.apiTokens) {
 				this.apiTokens = value;
 				this.debouncedReconnectIfEnabled();
 			}
 
-			classLogger.debug({ msg: 'Setting: SlackBridge_APIToken', value });
+			classLogger.debug({ msg: 'Setting: SlackBridge_APIToken', value: value ? '[REDACTED]' : '' });
 		});
apps/meteor/app/slackbridge/server/SlackAdapter.js (1)

226-233: Fix misleading event label for member join.

The log message says OnSlackEvent-CHANNEL_LEFT for a member_joined_channel event, which is confusing during troubleshooting.

Suggested fix
-			slackLogger.debug({ msg: 'OnSlackEvent-CHANNEL_LEFT', event });
+			slackLogger.debug({ msg: 'OnSlackEvent-MEMBER_JOINED_CHANNEL', event });
apps/meteor/app/meteor-accounts-saml/server/lib/parsers/Response.ts (1)

420-441: Redact attribute payloads in logs to avoid leaking user data.
Logging raw attribute statements and values can expose PII (email, name, identifiers). Prefer logging counts or attribute names only.

🔐 Suggested redaction
-		SAMLUtils.log({ msg: 'Attribute Statement found, mapping attributes to profile.', attributeStatement });
-		const attributes = attributeStatement.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:assertion', 'Attribute');
-		SAMLUtils.log({ msg: 'Attributes will be processed', count: attributes.length });
+		const attributes = attributeStatement.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:assertion', 'Attribute');
+		SAMLUtils.log({ msg: 'Attribute Statement found, mapping attributes to profile.', attributeCount: attributes.length });
...
-					SAMLUtils.log({ msg: 'Mapping attribute to profile', attribute: key, value });
+					SAMLUtils.log({
+						msg: 'Mapping attribute to profile',
+						attribute: key,
+						valueType: Array.isArray(value) ? 'array' : 'string',
+						valueCount: Array.isArray(value) ? value.length : value ? 1 : 0,
+					});
🤖 Fix all issues with AI agents
In `@apps/meteor/app/meteor-accounts-saml/server/lib/parsers/Response.ts`:
- Around line 20-23: The current validate method in Response.ts calls
SAMLUtils.log with the full SAML response XML (SAMLUtils.log({ msg: 'Validating
SAML Response', xml })), which can leak PII; update the validate function to
stop emitting raw xml and instead log a safe summary (e.g., length,
RelayState/correlation id, and a hash like SHA256 of the xml) or a redacted
snippet that removes assertion/attribute elements; replace the SAMLUtils.log
call to include only these safe fields and any existing relayState extraction so
callers of validate and the SAMLUtils.log usage are updated accordingly.

In `@apps/meteor/app/slackbridge/server/slackbridge.js`:
- Around line 132-149: The debug logs currently print raw secret values in the
settings.watch callbacks for SlackBridge_BotToken, SlackBridge_AppToken, and
SlackBridge_SigningSecret; update those log statements in the callbacks (the
handlers that set this.botTokens, this.appTokens, this.signingSecrets and call
this.debouncedReconnectIfEnabled()) to avoid printing the raw value — either
omit the value entirely or log a masked placeholder (e.g., show only last 4
chars or “(redacted)”) and keep the same descriptive message so you still know
which setting changed without exposing the secret in classLogger.debug.
🧹 Nitpick comments (11)
apps/meteor/server/services/omnichannel-integrations/providers/twilio.ts (1)

263-265: Keep structured logging for consistency.

This log is now a plain string while the PR standardizes structured payloads. Consider logging an object (e.g., { msg, authTokenConfigured, siteUrlConfigured }) to preserve consistency and add context.

ee/packages/media-calls/src/server/CallDirector.ts (1)

242-244: Add context fields to the structured error log.

The new structured log is fine, but it drops key context (e.g., call id / agent role). Including them will make the error actionable without changing behavior.

♻️ Suggested update
-			logger.error({ msg: 'Unable to transfer calls without a reference to the opposite agent.' });
+			logger.error({
+				msg: 'Unable to transfer calls without a reference to the opposite agent.',
+				callId: call._id,
+				agentRole: agent.role,
+				agentType: agent.actor.type,
+			});
apps/meteor/server/services/nps/getAndCreateNpsSurvey.ts (1)

65-66: Consider adding a msg property for consistency.

Line 42 includes a descriptive msg in the structured log. Adding one here would improve log searchability and debugging clarity.

♻️ Suggested improvement
 	} catch (err) {
-		SystemLogger.error({ err });
+		SystemLogger.error({ msg: 'Failed to get or create NPS survey', err });
 		return false;
 	}
apps/meteor/app/livechat/server/lib/rooms.ts (1)

254-259: Add room context to the error log.
Logging only { err } makes triage harder; include roomId/departmentId (and optionally a static msg) for correlation.

♻️ Suggested tweak
-		livechatLogger.error({ err });
+		livechatLogger.error({
+			msg: 'Failed to return room as inquiry',
+			roomId: room._id,
+			departmentId,
+			err,
+		});
apps/meteor/app/webdav/server/methods/uploadFileToWebdav.ts (1)

42-42: Consider simplifying the redundant type guard.

The typeof err === 'object' check is redundant since instanceof Error already safely returns false for primitives and null without throwing.

Suggested simplification
-			if (typeof err === 'object' && err instanceof Error && err.name === 'error-invalid-account') {
+			if (err instanceof Error && err.name === 'error-invalid-account') {
apps/meteor/ee/server/apps/communication/rest.ts (1)

1218-1220: Minor inconsistency: catch variable not renamed.

Other catch blocks in this PR rename e to err for consistency. Here the catch variable remains e while the log uses err: e. Consider renaming for uniformity.

Suggested change
-				} catch (e) {
-					orchestrator.getRocketChatLogger().warn({ msg: 'Could not fetch cluster status for app', appId: app.getID(), err: e });
+				} catch (err) {
+					orchestrator.getRocketChatLogger().warn({ msg: 'Could not fetch cluster status for app', appId: app.getID(), err });
 				}
apps/meteor/app/importer-pending-files/server/PendingFileImporter.ts (1)

160-168: Inconsistent error variable naming.

The outer catch block at line 160 still uses error while other catch blocks in this file use err. This is inconsistent with the PR's goal of standardizing to err.

Proposed fix
-		} catch (error) {
+		} catch (err) {
 			// If the cursor expired, restart the method
-			if (this.isCursorNotFoundError(error)) {
+			if (this.isCursorNotFoundError(err)) {
 				this.logger.info('CursorNotFound');
 				return this.startImport(importSelection);
 			}
 
 			await super.updateProgress(ProgressStep.ERROR);
-			throw error;
+			throw err;
 		}
apps/meteor/app/slackbridge/server/slackbridge.js (1)

111-113: Inconsistent error variable naming.

The catch block uses error but logs it as err: error. For consistency with other files in this PR, consider renaming the catch variable to err.

Proposed fix
-		} catch (error) {
-			connLogger.error({ msg: 'An error occurred during disconnection', err: error });
+		} catch (err) {
+			connLogger.error({ msg: 'An error occurred during disconnection', err });
 		}
ee/packages/omnichannel-services/src/OmnichannelTranscript.ts (1)

164-257: Consider structuring the MAX_PAYLOAD_EXCEEDED log for consistency.

The rest of this block uses structured logs; keeping this branch consistent will improve log parsing.

Suggested tweak
-						this.log.error(
-							`File is too big to be processed by NATS. See NATS config for allowing bigger messages to be sent between services`,
-						);
+						this.log.error({
+							msg: 'File too large for NATS payload',
+							errorCode: 'MAX_PAYLOAD_EXCEEDED',
+						});
apps/meteor/server/lib/ldap/Connection.ts (1)

420-423: Consider structuring this debug log for consistency.

This is a minor alignment with the rest of the object-based logging in this file.

Suggested tweak
-			searchLogger.debug('LDAP Group Filter is enabled but no group member format is set.');
+			searchLogger.debug({ msg: 'LDAP Group Filter is enabled but no group member format is set.' });
apps/meteor/app/meteor-accounts-saml/server/lib/Utils.ts (1)

53-56: Consider redacting sensitive fields in providerList debug logs.
Structured logs will serialize the full object; if it includes certs/keys or other secrets, debug logs could leak them. Prefer logging only safe fields (e.g., provider names/count) or explicitly redacting sensitive properties.

@KevLehman KevLehman added this to the 8.2.0 milestone Jan 22, 2026
@KevLehman KevLehman added the stat: QA assured Means it has been tested and approved by a company insider label Jan 22, 2026
@dionisio-bot dionisio-bot bot added stat: ready to merge PR tested and approved waiting for merge stat: QA assured Means it has been tested and approved by a company insider and removed stat: QA assured Means it has been tested and approved by a company insider labels Jan 22, 2026
@KevLehman KevLehman changed the title chore: Adapt logs to object format (final?) chore: Adapt logs to object format (final!) Jan 22, 2026
@dionisio-bot dionisio-bot bot added stat: ready to merge PR tested and approved waiting for merge stat: QA assured Means it has been tested and approved by a company insider and removed stat: ready to merge PR tested and approved waiting for merge stat: QA assured Means it has been tested and approved by a company insider labels Jan 22, 2026
@dionisio-bot dionisio-bot bot removed stat: ready to merge PR tested and approved waiting for merge stat: QA assured Means it has been tested and approved by a company insider labels Jan 22, 2026
@dionisio-bot dionisio-bot bot added stat: ready to merge PR tested and approved waiting for merge stat: QA assured Means it has been tested and approved by a company insider and removed stat: ready to merge PR tested and approved waiting for merge stat: QA assured Means it has been tested and approved by a company insider labels Jan 22, 2026
@KevLehman KevLehman closed this Jan 22, 2026
@dionisio-bot dionisio-bot bot removed stat: ready to merge PR tested and approved waiting for merge stat: QA assured Means it has been tested and approved by a company insider labels Jan 22, 2026
@KevLehman KevLehman reopened this Jan 22, 2026
@KevLehman KevLehman added the stat: QA assured Means it has been tested and approved by a company insider label Jan 22, 2026
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Jan 22, 2026
@kodiakhq kodiakhq bot merged commit 150f662 into develop Jan 22, 2026
44 checks passed
@kodiakhq kodiakhq bot deleted the chore/logs-iguess branch January 22, 2026 18:30
Kaustubh1204 pushed a commit to Kaustubh1204/Rocket.Chat that referenced this pull request Jan 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stat: QA assured Means it has been tested and approved by a company insider stat: ready to merge PR tested and approved waiting for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants