Repository navigation
[Payment due @ZhenjaHorbach] [No QA] Override tinypool to 2.1.2 to patch Dependabot alerts - #103756
Conversation
|
@ZhenjaHorbach Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Codecov Report✅ All modified and coverable lines are covered by tests. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-10-13.at.14.21.04.movAndroid: mWeb ChromeScreen.Recording.2026-10-13.at.14.21.04.moviOS: HybridAppScreen.Recording.2026-10-13.at.14.21.04.moviOS: mWeb SafariScreen.Recording.2026-10-13.at.14.21.04.movMacOS: Chrome / SafariScreen.Recording.2026-10-13.at.14.21.04.mov |
|
@MelvinBot |
|
The conflict is small: one line in the [No QA] Override @simple-git/argv-parser to 2.0.1 (GHSA-v5rq-49vh-5v5c) added I can only make code changes when directed by the PR author, an assignee, or an existing co-author. To have me implement this, the PR assignee or author should reply with a request tagging me. |
|
@MelvinBot |
|
I merged The only conflict was in the |
|
🎯 @ZhenjaHorbach, thanks for reviewing and testing this PR! 🎉 A payment issue will be created for your review once this PR is deployed to production. If payment is not needed (e.g., regression PR review fix etc), react with 👎 to this comment to prevent the payment issue from being created. |
|
🚧 JS00001 has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/JS00001 in version: 9.5.9-0 🚀
|
|
🚀 Deployed to production by https://github.com/cristipaval in version: 9.5.9-4 🚀
Bundle Size Analysis (Sentry): |
|
🤖 Payment issue created: #104115 |
Explanation of Change
Overrides
tinypool2.1.0 → 2.1.2 to patch two critical prototype-pollution → RCE advisories (GHSA-5gmw-xhrv-c9v3, GHSA-85c8-ppgw-ccpr).Usage: Dev-only, transitive.
oxfmt(our formatter) pinstinypool@2.1.0to run formatting in worker threads. It runs vianpm run fmt, the lefthook pre-commit hook, and theoxfmtCI workflow. Not shipped in the app bundle.Why an override:
oxfmtpinstinypoolexactly, and the firstoxfmtrelease with a patchedtinypoolis 0.67.0 (12 minors ahead), which risks formatting churn. 2.1.2 is a patch release containing only the two security fixes.Change Log
Full: tinylibs/tinypool@v2.1.0...v2.1.2
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/690938
PROPOSAL:
Tests
npm ci→ succeeds.npm ls tinypool→tinypool@2.1.2 overriddenunderoxfmt.npm run fmt→ completes, no unexpected diffs..tsfile with bad formatting, commit → lefthookoxfmthook reformats it.oxfmtCI check passes on this PR.Offline tests
N/A — dev tooling only.
QA Steps
None — dev-only dependency, no app changes. Title includes "[No QA]".
PR Author Checklist
Reviewer Checklist
### Fixed Issuessection aboveTestssectionQA stepssectiontoggleReportand notonIconClick).Avatar, I verified the components usingAvatarhave been tested & I retested again)/** comment above it */thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: HybridApp
Android: mWeb Chrome
iOS: HybridApp
iOS: mWeb Safari
MacOS: Chrome / Safari