Repository navigation
Conversation
|
|
…pending-merges-on-delete
|
I found bug while following Tests step, which also happens on production
Screen.Recording.2026-09-22.at.7.54.04.PM.mov |
|
@mkhutornyi 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] |
|
@mkhutornyi This PR is ready for review. I was not able to reproduce your issue |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppios.moviOS: mWeb SafariMacOS: Chrome / Safariweb.mov |
|
This was already tested during Onyx PR review |
|
🚧 mountiny 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/mountiny in version: 9.5.5-0 🚀
|
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.5.5-2 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Bumps
react-native-onyxfrom3.0.115to3.0.116. The bump contains one Onyx PR:Onyx.mergefrom resurrecting a key that a concurrent deletion removed, bringing back the key's pre-deletion contents.Onyx.mergecaptures the key's value with an async read and applies its delta when that read resolves;Onyx.set/Onyx.multiSetcancel merges queued before them, but the collection writers (setCollection,mergeCollection,partialSetCollection) did not, so a merge already in flight wrote the stale snapshot back with its delta on top. The abort guard also could not distinguish "my queue was cancelled" from "a new merge queued after the deletion", which resurrected the data on a second path. This is the residual half of the race fixed in fix: prevent Onyx.merge from clobbering concurrent Onyx.update writes react-native-onyx#817, and it is the user-visible cause of deleted split expenses reappearing offline ([Due for payment 2026-08-31] Expense - Deleted unreported split reappears when user turns to offline mode. #97400).No E/App source changes,
package.json/package-lock.jsononly.Fixed Issues
$ #98073
PROPOSAL:
Tests
Offline tests
QA Steps
Same as Tests. Steps 5 to 8 are the regression check for #97400. Steps 9 and 10 are the regression check for the clear() change.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)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: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
Nagranie.z.ekranu.2026-10-7.o.10.41.47.mov