regression: preserve gif animation and correct thumbnail after sharp bump - #41628
Conversation
|
Looks like this PR is ready to merge! 🎉 |
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAnimated GIF thumbnail generation now caps decoded pages using stored ChangesGIF thumbnail generation with page bounds
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (1)
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 |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## release-8.7.0 #41628 +/- ##
=================================================
+ Coverage 68.38% 68.45% +0.07%
=================================================
Files 4139 4142 +3
Lines 158311 158390 +79
Branches 28252 28285 +33
=================================================
+ Hits 108263 108431 +168
+ Misses 44916 44818 -98
- Partials 5132 5141 +9
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
sharp bumpsharp bump
KevLehman
left a comment
There was a problem hiding this comment.
pls add jira task before merging
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts (1)
44-44: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove the implementation comment.
Keep the descriptive constant name, but move this rationale to external documentation if it is needed. As per coding guidelines, TypeScript/JavaScript should avoid code comments in the implementation.
🤖 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 `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts` at line 44, Remove the implementation comment describing the per-frame GIF decode-cost bound, while preserving the descriptive constant name and its behavior unchanged.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 `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts`:
- Around line 337-338: Update the animated-thumbnail handling around the
transformer setup to explicitly define the behavior when totalPages exceeds
MAX_ANIMATED_THUMBNAIL_PAGES: either implement a clear oversized-animation
policy that avoids silent truncation, or document the truncation behavior and
add coverage confirming it. Keep normal animations within the existing page
limit behavior.
- Around line 335-336: Update FileUpload.getBuffer, used by the buffered GIF
path before sharp(buffer).metadata(), to reject when the storage stream emits an
error, the copy operation fails, or store.copy is unavailable; ensure all
failure paths settle the promise so createImageThumbnail reaches its existing
error handler instead of remaining pending.
---
Nitpick comments:
In `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts`:
- Line 44: Remove the implementation comment describing the per-frame GIF
decode-cost bound, while preserving the descriptive constant name and its
behavior unchanged.
🪄 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 Plus
Run ID: bb887375-dd13-4e76-9875-9af135e147a3
📒 Files selected for processing (1)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
📜 Review details
⏰ Context from checks skipped due to timeout. (5)
- GitHub Check: 📦 Build Packages
- GitHub Check: cubic · AI code reviewer
- GitHub Check: CodeQL-Build
- GitHub Check: Hacktron Security Check
- GitHub Check: CodeQL-Build
⚠️ CI failures not shown inline (5)
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js}
📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)
**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation
Files:
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
🧠 Learnings (3)
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In the Rocket.Chat repository, do not reference Biome lint rules in code review feedback. Biome is not used even if biome.json exists; only reference Biome rules if there is explicit, project-wide usage documented. For TypeScript files, review lint implications without Biome guidance unless the project enables Biome rules.
Applied to files:
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In this repository (RocketChat/Rocket.Chat), Biome lint rules are not used even if a biome.json exists. When reviewing TypeScript files (e.g., packages/ui-voip/src/providers/useMediaSession.ts), ensure lint suggestions do not reference Biome-specific rules. Rely on general ESLint/TypeScript lint rules and project conventions instead.
Applied to files:
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
📚 Learning: 2026-05-06T12:21:44.083Z
Learnt from: juliajforesti
Repo: RocketChat/Rocket.Chat PR: 40256
File: apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx:121-149
Timestamp: 2026-05-06T12:21:44.083Z
Learning: Field wrappers in rocket.chat/fuselage-forms (Field, FieldLabel, FieldRow, FieldError, FieldHint) auto-create htmlFor/id associations, aria-describedby, and role="alert" for errors. Do not manually set htmlFor, id, aria-describedby, or role attributes when using these wrappers. This automatic wiring does not apply to plain rocket.chat/fuselage components, which require explicit ID wiring per the accessibility docs. In code reviews, prefer using fuselage-forms wrappers for form fields and verify there is no unnecessary manual ID/aria wiring in files that use these wrappers. If a component uses plain fuselage components, ensure proper id wiring as per docs.
Applied to files:
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
🔇 Additional comments (2)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts (2)
24-24: LGTM!
333-334: LGTM!Also applies to: 339-343, 348-355
There was a problem hiding this comment.
All reported issues were addressed across 1 file (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts (1)
47-48: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove the implementation comments.
Based on coding guidelines, “Avoid code comments in the implementation.” Keep the helper self-explanatory or move this rationale to documentation/tests.
🤖 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 `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts` around lines 47 - 48, Remove the implementation comments describing FileUpload.getBuffer’s unsettled error behavior, leaving the surrounding helper implementation unchanged.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 `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts`:
- Around line 54-59: Update getBufferWithTimeout and the underlying
FileUpload.getBuffer copy pipelines so a timeout rejection also aborts or
destroys the active storage read. Propagate the cancellation signal or
equivalent cleanup through each store.copy implementation, including
AmazonS3/GCS, GridFS/FileSystem, and WebDAV paths, while preserving successful
reads and existing timeout behavior.
---
Nitpick comments:
In `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts`:
- Around line 47-48: Remove the implementation comments describing
FileUpload.getBuffer’s unsettled error behavior, leaving the surrounding helper
implementation unchanged.
🪄 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 Plus
Run ID: 96d8693e-83a0-4a72-882f-61a1c94d3024
📒 Files selected for processing (1)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
📜 Review details
⏰ Context from checks skipped due to timeout. (5)
- GitHub Check: 📦 Build Packages
- GitHub Check: cubic · AI code reviewer
- GitHub Check: CodeQL-Build
- GitHub Check: Hacktron Security Check
- GitHub Check: CodeQL-Build
⚠️ CI failures not shown inline (3)
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js}
📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)
**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation
Files:
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
🧠 Learnings (3)
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In the Rocket.Chat repository, do not reference Biome lint rules in code review feedback. Biome is not used even if biome.json exists; only reference Biome rules if there is explicit, project-wide usage documented. For TypeScript files, review lint implications without Biome guidance unless the project enables Biome rules.
Applied to files:
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In this repository (RocketChat/Rocket.Chat), Biome lint rules are not used even if a biome.json exists. When reviewing TypeScript files (e.g., packages/ui-voip/src/providers/useMediaSession.ts), ensure lint suggestions do not reference Biome-specific rules. Rely on general ESLint/TypeScript lint rules and project conventions instead.
Applied to files:
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
📚 Learning: 2026-05-06T12:21:44.083Z
Learnt from: juliajforesti
Repo: RocketChat/Rocket.Chat PR: 40256
File: apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx:121-149
Timestamp: 2026-05-06T12:21:44.083Z
Learning: Field wrappers in rocket.chat/fuselage-forms (Field, FieldLabel, FieldRow, FieldError, FieldHint) auto-create htmlFor/id associations, aria-describedby, and role="alert" for errors. Do not manually set htmlFor, id, aria-describedby, or role attributes when using these wrappers. This automatic wiring does not apply to plain rocket.chat/fuselage components, which require explicit ID wiring per the accessibility docs. In code reviews, prefer using fuselage-forms wrappers for form fields and verify there is no unnecessary manual ID/aria wiring in files that use these wrappers. If a component uses plain fuselage components, ensure proper id wiring as per docs.
Applied to files:
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
🔇 Additional comments (3)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts (3)
45-45: Make the oversized-GIF policy explicit.The cap still silently truncates GIFs with more than 100 frames: Sharp’s
pagesoption controls how many frames are extracted, so only the first 100 are emitted. (sharp.pixelplumbing.com) Reject/fallback oversized animations, or document and test intentional truncation.Also applies to: 356-357
24-24: LGTM!
367-374: LGTM!
There was a problem hiding this comment.
All reported issues were addressed across 1 file (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts (1)
333-352: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick winPropagate read-stream failures to Sharp.
image.pipe(transformer)does not close the destination when the storageReadableerrors without a destinationerrorlistener, which can keeptoBuffer()pending instead of rejecting the thumbnail operation. Forward the error totransformer.destroy(error)before piping, or usestream.pipeline.Proposed fix
+ image.once('error', (error) => transformer.destroy(error)); image.pipe(transformer);🤖 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 `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts` around lines 333 - 352, Update the stream handling in the thumbnail transformation around image and transformer so read-stream errors are propagated to Sharp, either by forwarding image errors to transformer.destroy(error) before piping or by using stream.pipeline. Ensure toBuffer() rejects promptly when storage reading fails while preserving the existing transformation and result mapping.
🧹 Nitpick comments (1)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts (1)
44-44: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove the added implementation comments. The surrounding code and identifiers can express these details without comments.
apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts#L44-L44: remove the frame-cap rationale comment.apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts#L335-L335: remove the Sharp construction comment.apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts#L343-L343: remove the output-height comment.apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts#L402-L402: remove the persisted-page-count comment.apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts#L640-L640: remove the buffer-error comment.As per coding guidelines, “Avoid code comments in the implementation.”
🤖 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 `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts` at line 44, Remove the implementation comments in FileUpload.ts at lines 44, 335, 343, 402, and 640, including the frame-cap rationale, Sharp construction, output-height, persisted-page-count, and buffer-error comments; leave the surrounding code unchanged.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.
Outside diff comments:
In `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts`:
- Around line 333-352: Update the stream handling in the thumbnail
transformation around image and transformer so read-stream errors are propagated
to Sharp, either by forwarding image errors to transformer.destroy(error) before
piping or by using stream.pipeline. Ensure toBuffer() rejects promptly when
storage reading fails while preserving the existing transformation and result
mapping.
---
Nitpick comments:
In `@apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts`:
- Line 44: Remove the implementation comments in FileUpload.ts at lines 44, 335,
343, 402, and 640, including the frame-cap rationale, Sharp construction,
output-height, persisted-page-count, and buffer-error comments; leave the
surrounding code unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 4efc13aa-8305-46a2-9c20-283b05438aa6
📒 Files selected for processing (2)
apps/meteor/server/lib/media/file-upload/lib/FileUpload.tspackages/core-typings/src/IUpload.ts
📜 Review details
⏰ Context from checks skipped due to timeout. (5)
- GitHub Check: 📦 Build Packages
- GitHub Check: cubic · AI code reviewer
- GitHub Check: CodeQL-Build
- GitHub Check: Hacktron Security Check
- GitHub Check: CodeQL-Build
⚠️ CI failures not shown inline (4)
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
GitHub Check: Dionisio QA: Some checks did not pass
Conclusion: failure
**Conclusion:** failure
### Steps
- ✅ **No merge conflicts**
- ❌ **QA assured** — This PR is missing the 'stat: QA assured' label
- ✅ **Mergeable**
- ✅ **Has milestone or project**
- ✅ **Valid PR title**
- ✅ **Correct target version**
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js}
📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)
**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation
Files:
packages/core-typings/src/IUpload.tsapps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
🧠 Learnings (3)
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In the Rocket.Chat repository, do not reference Biome lint rules in code review feedback. Biome is not used even if biome.json exists; only reference Biome rules if there is explicit, project-wide usage documented. For TypeScript files, review lint implications without Biome guidance unless the project enables Biome rules.
Applied to files:
packages/core-typings/src/IUpload.tsapps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
📚 Learning: 2026-02-26T19:25:44.063Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 38778
File: packages/ui-voip/src/providers/useMediaSession.ts:192-192
Timestamp: 2026-02-26T19:25:44.063Z
Learning: In this repository (RocketChat/Rocket.Chat), Biome lint rules are not used even if a biome.json exists. When reviewing TypeScript files (e.g., packages/ui-voip/src/providers/useMediaSession.ts), ensure lint suggestions do not reference Biome-specific rules. Rely on general ESLint/TypeScript lint rules and project conventions instead.
Applied to files:
packages/core-typings/src/IUpload.tsapps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
📚 Learning: 2026-05-06T12:21:44.083Z
Learnt from: juliajforesti
Repo: RocketChat/Rocket.Chat PR: 40256
File: apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx:121-149
Timestamp: 2026-05-06T12:21:44.083Z
Learning: Field wrappers in rocket.chat/fuselage-forms (Field, FieldLabel, FieldRow, FieldError, FieldHint) auto-create htmlFor/id associations, aria-describedby, and role="alert" for errors. Do not manually set htmlFor, id, aria-describedby, or role attributes when using these wrappers. This automatic wiring does not apply to plain rocket.chat/fuselage components, which require explicit ID wiring per the accessibility docs. In code reviews, prefer using fuselage-forms wrappers for form fields and verify there is no unnecessary manual ID/aria wiring in files that use these wrappers. If a component uses plain fuselage components, ensure proper id wiring as per docs.
Applied to files:
packages/core-typings/src/IUpload.tsapps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
🔇 Additional comments (2)
packages/core-typings/src/IUpload.ts (1)
20-27: LGTM!apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts (1)
24-24: LGTM!
There was a problem hiding this comment.
All reported issues were addressed across 2 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
Co-authored-by: Kevin Aleman <kaleman960@gmail.com>
Proposed changes (including videos or screenshots)
After the sharp update from 0.33 to 0.35.3 (#41537), thumbnail generation in
FileUpload.createImageThumbnailneeded two adjustments:false, so thumbnails were only keeping the first frame of GIFs. Passing{ animated: file.type === 'image/gif' }to the constructor preserves all frames (and their delay/loop metadata) for GIFs while leaving other formats unaffected.pageHeight ?? heightreports the correct per-frame size.Issue(s)
https://rocketchat.atlassian.net/browse/CORE-2494
Steps to test or reproduce
Further comments
Summary by CodeRabbit
Summary