You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-11-10] chore(deps): Upgrade NitroSQLite from 9.8.3 to 10.2.0 #102424
Prepared statements.db.prepare(query) prepares SQL once and runs it many times with new parameters. #294
Independent DB connections.open({ name, connection: 'independent' }) opens a separate native connection with its own queue, so a reader can run while a writer holds a transaction. #364
Performance improvements.
Async queries, batches, and file imports enter a per-connection native queue without waiting for the previous result to return through JavaScript. #369
Grouped batch parameters reuse a prepared statement, and query results skip an extra native row copy. #387
Each connection caches its 32 most recently used statements, async work runs on a dedicated worker thread per connection, and Android writes use fdatasync() and batch atomic writes where supported. #440
Node.js mock.react-native-nitro-sqlite/mock runs against better-sqlite3 for tests that need a real SQLite engine. #395
changed the title [-]chore(deps): Upgrade NitroSQLite from 9.8.2 to 10.0.0[/-][+]chore(deps): Upgrade NitroSQLite from 9.8.3 to 10.2.0[/+]on Oct 12, 2026
I updated the issue to target NitroSQLite v10.2.0.
Title: The title now reads "Upgrade NitroSQLite from 9.8.3 to 10.2.0". App main already uses 9.8.3, so the starting version changed too.
Why update: I added the 10.1 and 10.2 performance work and the Node.js mock.
Scope: I linked the Onyx PR and the new Mobile-Expensify lockfile PR, Mobile-Expensify#14179.
Upgrade notes: I added the two 10.2 breaking changes. A SQL string with more than one statement now throws. Query results are now plain objects, not Nitro HybridObjects.
@NicolasBonet all issues are addressed and benchmarks were positive! We have to wait for prior Onyx bump PRs #102135 & #103208 to be merged, after that i'm going to resolve conflicts, do a last check and then we're good to go!
[Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to the comment on the PR: N/A (upgrade the library)
Link to the comment on the Issue: N/A (upgrade the library)
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion: N/A
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
Regression Test Proposal
Test:
Open an existing chat.
Send a message.
Edit the message.
Force-close the app.
Reopen the app. Verify the edited message appears once and the previous chat history is still visible.
Activity
chrispader commentedon Oct 12, 2026
@MelvinBot could you assign an Expensify engineer and C+ on this issue and the related PRs?
chrispader commentedon Oct 12, 2026
@MelvinBot also update the issue to
v10.2.0MelvinBot commentedon Oct 12, 2026
I picked the engineer and C+ who handled the 9.8.x update. NicolasBonet was the engineer on chore(deps): Update NitroSQLite from 9.6.0 to 9.8.0, and ikevin127 reviewed its PR as C+.
react-native-onyx, so you need to request their reviews yourself.view run
[-]chore(deps): Upgrade NitroSQLite from 9.8.2 to 10.0.0[/-][+]chore(deps): Upgrade NitroSQLite from 9.8.3 to 10.2.0[/+]MelvinBot commentedon Oct 12, 2026
I updated the issue to target NitroSQLite
v10.2.0.mainalready uses9.8.3, so the starting version changed too.HybridObjects.view run
NicolasBonet commentedon Oct 19, 2026
@chrispader could you please let me know how much is pending to complete this?
chrispader commentedon Oct 19, 2026
I have still to address the latest review comments by @ikevin127 and @fabioh8010 and finalize my benchmark results for this Onyx change in Expensify/react-native-onyx#851 (review)
After the Onyx PR is merged, i'll ping you on the E/App PR 🙌🏼
NicolasBonet commentedon Oct 26, 2026
@chrispader same question for this week 😅
chrispader commentedon Oct 26, 2026
@NicolasBonet all issues are addressed and benchmarks were positive! We have to wait for prior Onyx bump PRs #102135 & #103208 to be merged, after that i'm going to resolve conflicts, do a last check and then we're good to go!
NicolasBonet commentedon Oct 26, 2026
Thank you @chrispader 🙏
13 remaining items
dmkt9 commentedon Nov 6, 2026
Contributor+ Checklist:
[Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to the comment on the PR: N/A (upgrade the library)
Link to the comment on the Issue: N/A (upgrade the library)
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion: N/A
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
Regression Test Proposal
Test:
Do we agree 👍 or 👎
chrispader commentedon Nov 9, 2026
@NicolasBonet https://github.com/Expensify/Mobile-Expensify/pull/14179 still needs to be merged 🙌🏼
melvin-bot commentedon Nov 9, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)melvin-bot commentedon Nov 9, 2026
Payment Summary
Resolving PRs:
[No QA] chore(deps): update Onyx to 3.0.121 and NitroSQLite to 10.2.0 #102422
Contributor: @chrispader does not require payment (Contractor)
Assignee: @dmkt9 requires payment (Needs manual offer from BZ)
BugZero Checklist (@mallenexpensify)
melvin-bot commentedon Nov 12, 2026
@mallenexpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
mallenexpensify commentedon Nov 13, 2026
Claude posting on behalf of Matt:
Ready. Job price: $175 (standard, no Help Wanted, assigned 2026-11-04).
No deploy blockers or regressions on the issue or the PR.
Next: press Caps+Y, then pay.
Evidence
PAYPREP v1mallenexpensify commentedon Nov 13, 2026
Payment Summary
Contributor+: @dmkt9 due $175 via Upwork
@dmkt9 can you please accept the job below? Please reply here and tag me once you have.
https://www.upwork.com/jobs/~022121383388879682509