Skip to content

chore(deps): migrate Vitest tooling to patched v4.1.12 [security] - #2250

Merged
KyleAMathews merged 12 commits into
mainfrom
renovate/npm-vitest-vulnerability
Oct 28, 2026
Merged

KyleAMathews merged 12 commits into
mainfrom
renovate/npm-vitest-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Vitest and its mocker need v4.1.11 or later to cover both GHSA-5xrq-8626-4rwp and GHSA-82fw-gwwq-j7x9. Upgrade Vitest, its UI, and Istanbul coverage to v4.1.12, and use the compatible @fast-check/vitest 0.4.1 integration.

Merge current main and migrate test infrastructure for Vitest 4:

  • Use constructible functions for ShapeStream and AbortController mocks, including their reset paths.
  • Specify callable mock types and portable exported test-helper types.
  • Type the React source-replacement fixture for both concrete Collection utility types it renders; keep every runtime assertion.
  • Replace the removed GlobalSetupContext type with TestProject.
  • Limit DB coverage inputs to JavaScript/TypeScript source extensions so Istanbul does not parse ARCHITECTURE.md as JavaScript.

Production code is unchanged. Oracle models, legal histories, comparisons, seeds, and run budgets are unchanged; these edits restore execution of the same tests under the patched runner. The original constructor failures were setup failures, not product-law counterexamples. This change makes no new behavior or coverage claim.

Validation:

  • Frozen pnpm install and full package build passed.
  • All 15,613 DB runtime tests passed; the migrated DB test types passed tsc --noEmit.
  • Electric's 1,150 runtime tests passed, and its complete TypeScript check passed after adding portable helper annotations.
  • All 193 PowerSync tests and all 400 Query tests passed; Query TypeScript passed.
  • The Browser multi-tab Electric oracle passed 293 tests and retained its two expected failures.
  • The exact CI framework build/test sequence passed all seven suites: 1,514 tests, no type errors, and one existing TODO. The migrated Browser witness is checked separately above.
  • All 19 IndexedDB package tests passed.
  • The oracle lint-rule and script property-test suites passed.
  • Workspace dependency consistency, pre-commit checks, and pnpm lint:changed passed.

Based on current main, including the merged Angular, UUID, Vite, and Zod security updates. Strict frozen installation with pnpm repeat-install optimization disabled and direct comparison of all 45 workspace dependency specifiers passed. All 15,664 DB tests with no type errors and all 193 PowerSync tests passed for the combined Zod 4/Vitest 4 tree.

CI on the updated head is the final merge gate, including the full Browser suite and real-host E2E checks.

@changeset-bot

changeset-bot Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 2fd93bd

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

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d653bb58-37d6-4ee8-88fa-dbb201c4de02

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@socket-security

socket-security Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​@​vitest/​ui@​3.2.4 ⏵ 4.1.1299 +110075 -698100
Addednpm/​vitest@​4.1.12981007998100
Updatednpm/​@​vitest/​coverage-istanbul@​3.2.4 ⏵ 4.1.1299 +110081 +1499 +2100
Updatednpm/​@​fast-check/​vitest@​0.2.4 ⏵ 0.4.110010010086100

View full report

@pkg-pr-new

pkg-pr-new Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
More templates

@tanstack/angular-db

npm i https://pkg.pr.new/TanStack/db/@tanstack/angular-db@2250

@tanstack/browser-db-sqlite-persistence

npm i https://pkg.pr.new/TanStack/db/@tanstack/browser-db-sqlite-persistence@2250

@tanstack/capacitor-db-sqlite-persistence

npm i https://pkg.pr.new/TanStack/db/@tanstack/capacitor-db-sqlite-persistence@2250

@tanstack/cloudflare-durable-objects-db-sqlite-persistence

npm i https://pkg.pr.new/TanStack/db/@tanstack/cloudflare-durable-objects-db-sqlite-persistence@2250

@tanstack/convex-db-collection

npm i https://pkg.pr.new/TanStack/db/@tanstack/convex-db-collection@2250

@tanstack/db

npm i https://pkg.pr.new/TanStack/db/@tanstack/db@2250

@tanstack/db-ivm

npm i https://pkg.pr.new/TanStack/db/@tanstack/db-ivm@2250

@tanstack/db-sqlite-persistence-core

npm i https://pkg.pr.new/TanStack/db/@tanstack/db-sqlite-persistence-core@2250

@tanstack/electric-db-collection

npm i https://pkg.pr.new/TanStack/db/@tanstack/electric-db-collection@2250

@tanstack/electron-db-sqlite-persistence

npm i https://pkg.pr.new/TanStack/db/@tanstack/electron-db-sqlite-persistence@2250

@tanstack/expo-db-sqlite-persistence

npm i https://pkg.pr.new/TanStack/db/@tanstack/expo-db-sqlite-persistence@2250

@tanstack/node-db-sqlite-persistence

npm i https://pkg.pr.new/TanStack/db/@tanstack/node-db-sqlite-persistence@2250

@tanstack/offline-transactions

npm i https://pkg.pr.new/TanStack/db/@tanstack/offline-transactions@2250

@tanstack/powersync-db-collection

npm i https://pkg.pr.new/TanStack/db/@tanstack/powersync-db-collection@2250

@tanstack/preact-db

npm i https://pkg.pr.new/TanStack/db/@tanstack/preact-db@2250

@tanstack/query-db-collection

npm i https://pkg.pr.new/TanStack/db/@tanstack/query-db-collection@2250

@tanstack/react-db

npm i https://pkg.pr.new/TanStack/db/@tanstack/react-db@2250

@tanstack/react-native-db-sqlite-persistence

npm i https://pkg.pr.new/TanStack/db/@tanstack/react-native-db-sqlite-persistence@2250

@tanstack/react-router-with-db

npm i https://pkg.pr.new/TanStack/db/@tanstack/react-router-with-db@2250

@tanstack/rxdb-db-collection

npm i https://pkg.pr.new/TanStack/db/@tanstack/rxdb-db-collection@2250

@tanstack/solid-db

npm i https://pkg.pr.new/TanStack/db/@tanstack/solid-db@2250

@tanstack/svelte-db

npm i https://pkg.pr.new/TanStack/db/@tanstack/svelte-db@2250

@tanstack/tauri-db-sqlite-persistence

npm i https://pkg.pr.new/TanStack/db/@tanstack/tauri-db-sqlite-persistence@2250

@tanstack/trailbase-db-collection

npm i https://pkg.pr.new/TanStack/db/@tanstack/trailbase-db-collection@2250

@tanstack/vue-db

npm i https://pkg.pr.new/TanStack/db/@tanstack/vue-db@2250

commit: 2fd93bd

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 238 kB

ℹ️ View Unchanged
Filename Size
packages/db/dist/esm/client.js 5.39 kB
packages/db/dist/esm/collection-options-brand.js 219 B
packages/db/dist/esm/collection-options.js 258 B
packages/db/dist/esm/collection/change-events.js 1.76 kB
packages/db/dist/esm/collection/changes.js 3.06 kB
packages/db/dist/esm/collection/cleanup-queue.js 828 B
packages/db/dist/esm/collection/config-errors.js 547 B
packages/db/dist/esm/collection/events.js 504 B
packages/db/dist/esm/collection/health-tree.js 698 B
packages/db/dist/esm/collection/index.js 6.32 kB
packages/db/dist/esm/collection/indexes.js 2.3 kB
packages/db/dist/esm/collection/lifecycle.js 5.59 kB
packages/db/dist/esm/collection/mutations.js 2.95 kB
packages/db/dist/esm/collection/state.js 7.69 kB
packages/db/dist/esm/collection/subscription.js 9.9 kB
packages/db/dist/esm/collection/sync.js 6.51 kB
packages/db/dist/esm/collection/validate-config.js 1.17 kB
packages/db/dist/esm/deferred.js 207 B
packages/db/dist/esm/error-message.js 642 B
packages/db/dist/esm/errors.js 7.27 kB
packages/db/dist/esm/event-emitter.js 1.06 kB
packages/db/dist/esm/index.js 4.79 kB
packages/db/dist/esm/indexed-db-wrapper.js 1.91 kB
packages/db/dist/esm/indexed-db.js 3.81 kB
packages/db/dist/esm/indexes/auto-index.js 924 B
packages/db/dist/esm/indexes/base-index.js 1.92 kB
packages/db/dist/esm/indexes/basic-index.js 1.93 kB
packages/db/dist/esm/indexes/btree-index.js 1.62 kB
packages/db/dist/esm/indexes/index-registry.js 916 B
packages/db/dist/esm/indexes/reverse-index.js 1.01 kB
packages/db/dist/esm/live-query-adapter.js 845 B
packages/db/dist/esm/live-query-observer-client.js 2.17 kB
packages/db/dist/esm/live-query-observer.js 3.3 kB
packages/db/dist/esm/live-query-options.js 2.02 kB
packages/db/dist/esm/live-query-primitives.js 406 B
packages/db/dist/esm/live-query-window-binding.js 1.56 kB
packages/db/dist/esm/live-query-window-controller.js 4.02 kB
packages/db/dist/esm/local-only.js 1.02 kB
packages/db/dist/esm/local-storage.js 4.58 kB
packages/db/dist/esm/optimistic-action.js 359 B
packages/db/dist/esm/paced-mutations.js 1.11 kB
packages/db/dist/esm/proxy.js 3.51 kB
packages/db/dist/esm/query/builder/clone-query.js 854 B
packages/db/dist/esm/query/builder/functions.js 1.61 kB
packages/db/dist/esm/query/builder/group-keys.js 157 B
packages/db/dist/esm/query/builder/include-functions.js 229 B
packages/db/dist/esm/query/builder/index.js 7.72 kB
packages/db/dist/esm/query/builder/query-ir.js 312 B
packages/db/dist/esm/query/builder/ref-proxy-identity.js 292 B
packages/db/dist/esm/query/builder/ref-proxy.js 1.67 kB
packages/db/dist/esm/query/builder/wrapper-identity.js 221 B
packages/db/dist/esm/query/compiler/evaluators.js 2.51 kB
packages/db/dist/esm/query/compiler/expressions.js 603 B
packages/db/dist/esm/query/compiler/find-aggregate.js 328 B
packages/db/dist/esm/query/compiler/group-by.js 4.42 kB
packages/db/dist/esm/query/compiler/grouping.js 161 B
packages/db/dist/esm/query/compiler/index.js 10.4 kB
packages/db/dist/esm/query/compiler/joins.js 3.42 kB
packages/db/dist/esm/query/compiler/lazy-targets.js 1.11 kB
packages/db/dist/esm/query/compiler/order-by.js 2.8 kB
packages/db/dist/esm/query/compiler/parent-routes.js 319 B
packages/db/dist/esm/query/compiler/query-equivalence.js 568 B
packages/db/dist/esm/query/compiler/route-metadata.js 1.24 kB
packages/db/dist/esm/query/compiler/select.js 1.5 kB
packages/db/dist/esm/query/effect.js 5.79 kB
packages/db/dist/esm/query/equality-conjunct.js 486 B
packages/db/dist/esm/query/equality-value-identity.js 736 B
packages/db/dist/esm/query/expression-helpers.js 1.61 kB
packages/db/dist/esm/query/ir-stable-identity.js 4.29 kB
packages/db/dist/esm/query/ir.js 2.26 kB
packages/db/dist/esm/query/join-conditions.js 257 B
packages/db/dist/esm/query/live-query-collection.js 391 B
packages/db/dist/esm/query/live/bucket-facade-adapter.js 3.17 kB
packages/db/dist/esm/query/live/collection-config-builder.js 8.52 kB
packages/db/dist/esm/query/live/collection-registry.js 264 B
packages/db/dist/esm/query/live/collection-subscriber.js 2.68 kB
packages/db/dist/esm/query/live/graph-scheduler.js 305 B
packages/db/dist/esm/query/live/includes-runtime.js 212 B
packages/db/dist/esm/query/live/internal.js 145 B
packages/db/dist/esm/query/live/materialized-pipeline.js 1.94 kB
packages/db/dist/esm/query/live/ordered-source-loader.js 6.52 kB
packages/db/dist/esm/query/live/public-key-reduction.js 970 B
packages/db/dist/esm/query/live/subset-demand-controller.js 2.44 kB
packages/db/dist/esm/query/live/utils.js 1.35 kB
packages/db/dist/esm/query/optimizer.js 2.95 kB
packages/db/dist/esm/query/pooled-live-query.js 5.14 kB
packages/db/dist/esm/query/pooled-source.js 219 B
packages/db/dist/esm/query/query-once.js 359 B
packages/db/dist/esm/query/runtime-reference-identity.js 630 B
packages/db/dist/esm/query/subset-dedupe.js 493 B
packages/db/dist/esm/scheduler.js 1.23 kB
packages/db/dist/esm/SortedMap.js 1.77 kB
packages/db/dist/esm/strategies/commit-completion.js 156 B
packages/db/dist/esm/strategies/debounceStrategy.js 658 B
packages/db/dist/esm/strategies/queueStrategy.js 523 B
packages/db/dist/esm/strategies/serial-pacer.js 486 B
packages/db/dist/esm/strategies/throttleStrategy.js 738 B
packages/db/dist/esm/sync-persistence.js 626 B
packages/db/dist/esm/sync-receipt.js 211 B
packages/db/dist/esm/transaction-commit-work.js 351 B
packages/db/dist/esm/transactions.js 4.57 kB
packages/db/dist/esm/utils.js 1.77 kB
packages/db/dist/esm/utils/array-utils.js 270 B
packages/db/dist/esm/utils/browser-polyfills.js 304 B
packages/db/dist/esm/utils/btree.js 3.02 kB
packages/db/dist/esm/utils/callbacks.js 219 B
packages/db/dist/esm/utils/comparison.js 1.95 kB
packages/db/dist/esm/utils/cursor.js 753 B
packages/db/dist/esm/utils/error.js 262 B
packages/db/dist/esm/utils/get-or-create.js 155 B
packages/db/dist/esm/utils/index-optimization.js 2.58 kB
packages/db/dist/esm/utils/source-record.js 140 B
packages/db/dist/esm/utils/type-guards.js 230 B
packages/db/dist/esm/utils/uuid.js 530 B
packages/db/dist/esm/virtual-props.js 413 B
packages/react-db/dist/esm/DbProvider.js 317 B
packages/react-db/dist/esm/development.js 190 B
packages/react-db/dist/esm/HydrationBoundary.js 263 B
packages/react-db/dist/esm/index.js 330 B
packages/react-db/dist/esm/live-query-internals.js 282 B
packages/react-db/dist/esm/source-id-bindings.js 339 B
packages/react-db/dist/esm/useLiveInfiniteQuery.js 1.52 kB
packages/react-db/dist/esm/useLiveQuery.js 3.41 kB
packages/react-db/dist/esm/useLiveQueryEffect.js 504 B
packages/react-db/dist/esm/useLiveSuspenseQuery.js 1.37 kB
packages/react-db/dist/esm/usePacedMutations.js 429 B

compressed-size-action::db-and-react-package-size

@renovate
renovate Bot force-pushed the renovate/npm-vitest-vulnerability branch from 2eee691 to 4358c4a Compare October 25, 2026 05:32
@KyleAMathews KyleAMathews changed the title chore(deps): update dependency vitest to v4 [security] chore(deps): migrate Vitest tooling to patched v4.1.12 [security] Oct 28, 2026
@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Incremental update benchmark

Comparing 68b0ab48c (this PR) against 685e36422 (base). Write times are per-write medians over 100 iterations (20 warmup writes). Cold hydrate is one timed first load of each query.

Overall median write time vs base: 0.96× · cold hydrate time: 0.99× (geometric mean of per-case ratios; lower is faster).

Writes: 0 regression(s), 2 improvement(s) (threshold: ±20% and >0.05ms).

Cold hydrate: No significant changes (threshold: ±50% and >5ms).

Per-case flags are noisy on shared runners. Read the geometric means first.

Writes

Query Δ median write time (geomean) Best case Worst case Flags
list: newest 50 open -3.8% -30.3% +75.7% —
list + author -4.5% -30.5% +13.9% —
list + comment count -2.9% -25.0% +10.4% 1 🟢
list + 3 recent comments -5.7% -23.3% +9.4% 1 🟢
issue detail + comments -2.9% -15.6% +5.1% —

Cold hydrate

Query Δ cold hydrate time (geomean) Best case Worst case Flags
list: newest 50 open -5.9% -32.8% +18.8% —
list + author +0.9% -30.0% +37.4% —
list + comment count -5.2% -22.7% +12.1% —
list + 3 recent comments +2.0% -20.2% +60.4% —
issue detail + comments +11.1% -26.3% +66.1% —

Each row aggregates the 14.4 scale/index/write-mode configurations of that query; per-configuration tables below.

100 rows/collection | source indexes: none | synced writes — geomean 0.91×, cold 0.91×, 1 change(s)
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.174ms 0.175ms +0.9% 0.316ms 0.315ms -0.5% 15.309ms 14.645ms -4.3%
list: newest 50 open 0.494ms 0.477ms -3.4% 0.880ms 0.828ms -6.0% 3.684ms 3.634ms -1.3%
list + author 0.220ms 0.181ms -17.6% 0.331ms 0.308ms -6.9% 10.850ms 8.916ms -17.8%
list + comment count 0.424ms 0.318ms -25.0% 0.539ms 0.477ms -11.5% 🟢 13.562ms 11.271ms -16.9%
list + 3 recent comments 0.201ms 0.205ms +2.1% 0.367ms 0.337ms -8.2% 11.744ms 9.789ms -16.6%
issue detail + comments 0.137ms 0.129ms -5.7% 0.255ms 0.198ms -22.5% 1.615ms 1.686ms +4.4%
100 rows/collection | source indexes: none | optimistic writes — geomean 0.94×, cold 0.97×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.119ms 0.116ms -2.4% 0.187ms 0.216ms +15.4% 2.793ms 2.441ms -12.6%
list: newest 50 open 0.070ms 0.070ms -0.6% 0.138ms 0.128ms -7.0% 1.863ms 1.831ms -1.7%
list + author 0.177ms 0.137ms -22.5% 0.265ms 0.246ms -7.3% 3.700ms 3.658ms -1.1%
list + comment count 0.243ms 0.217ms -10.8% 0.367ms 0.343ms -6.4% 3.648ms 4.089ms +12.1%
list + 3 recent comments 0.172ms 0.171ms -0.3% 0.289ms 0.237ms -18.2% 8.740ms 7.476ms -14.5%
issue detail + comments 0.095ms 0.098ms +2.5% 0.236ms 0.227ms -3.7% 1.135ms 1.135ms -0.0%
100 rows/collection | source indexes: manual | synced writes — geomean 1.02×, cold 1.08×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.131ms 0.134ms +2.6% 0.187ms 0.256ms +36.3% 3.148ms 3.176ms +0.9%
list: newest 50 open 0.341ms 0.356ms +4.2% 0.558ms 0.571ms +2.3% 1.737ms 1.733ms -0.3%
list + author 0.106ms 0.120ms +13.9% 0.210ms 0.219ms +4.4% 3.514ms 4.827ms +37.4%
list + comment count 0.231ms 0.218ms -5.9% 0.391ms 0.370ms -5.3% 3.085ms 3.422ms +10.9%
list + 3 recent comments 0.140ms 0.138ms -1.7% 0.258ms 0.208ms -19.3% 4.572ms 4.458ms -2.5%
issue detail + comments 0.094ms 0.095ms +1.3% 0.178ms 0.206ms +16.0% 0.555ms 0.595ms +7.3%
100 rows/collection | source indexes: manual | optimistic writes — geomean 1.01×, cold 1.20×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.082ms 0.081ms -1.1% 0.178ms 0.153ms -13.7% 1.359ms 1.519ms +11.8%
list: newest 50 open 0.067ms 0.064ms -5.0% 0.169ms 0.151ms -10.8% 1.043ms 0.886ms -15.1%
list + author 0.117ms 0.111ms -5.9% 0.221ms 0.165ms -25.2% 2.428ms 2.570ms +5.9%
list + comment count 0.183ms 0.198ms +8.3% 0.324ms 0.313ms -3.2% 2.861ms 3.200ms +11.9%
list + 3 recent comments 0.103ms 0.113ms +9.4% 0.178ms 0.229ms +28.9% 5.082ms 8.150ms +60.4%
issue detail + comments 0.083ms 0.086ms +3.9% 0.185ms 0.123ms -33.9% 0.423ms 0.703ms +66.1%
1,000 rows/collection | source indexes: none | synced writes — geomean 1.08×, cold 1.01×, 1 change(s)
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.059ms 0.104ms +75.7% 0.128ms 0.145ms +12.9% 6.149ms 7.200ms +17.1%
list: newest 50 open 0.981ms 0.982ms +0.1% 1.781ms 1.811ms +1.7% 8.205ms 6.846ms -16.6%
list + author 0.080ms 0.084ms +4.7% 0.168ms 0.184ms +9.5% 19.405ms 20.441ms +5.3%
list + comment count 0.176ms 0.194ms +10.4% 0.304ms 0.332ms +9.0% 10.307ms 9.590ms -7.0%
list + 3 recent comments 0.276ms 0.211ms -23.3% 0.323ms 0.333ms +3.1% 🟢 13.971ms 11.148ms -20.2%
issue detail + comments 0.138ms 0.142ms +2.8% 0.193ms 0.262ms +35.4% 1.195ms 1.699ms +42.3%
1,000 rows/collection | source indexes: none | optimistic writes — geomean 0.78×, cold 0.96×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.119ms 0.083ms -30.3% 0.224ms 0.168ms -24.9% 5.323ms 4.947ms -7.1%
list: newest 50 open 0.113ms 0.079ms -30.2% 0.155ms 0.105ms -32.2% 8.008ms 7.701ms -3.8%
list + author 0.151ms 0.105ms -30.5% 0.216ms 0.199ms -8.0% 19.316ms 16.826ms -12.9%
list + comment count 0.170ms 0.157ms -7.3% 0.232ms 0.216ms -7.0% 8.116ms 8.180ms +0.8%
list + 3 recent comments 0.098ms 0.082ms -16.1% 0.174ms 0.108ms -37.9% 9.193ms 9.076ms -1.3%
issue detail + comments 0.085ms 0.072ms -15.6% 0.116ms 0.105ms -9.1% 1.181ms 1.195ms +1.2%
1,000 rows/collection | source indexes: manual | synced writes — geomean 0.92×, cold 1.00×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.059ms 0.054ms -7.8% 0.076ms 0.068ms -10.5% 1.013ms 0.966ms -4.7%
list: newest 50 open 0.321ms 0.289ms -10.2% 0.537ms 0.536ms -0.3% 0.851ms 0.779ms -8.5%
list + author 0.078ms 0.077ms -0.5% 0.115ms 0.100ms -13.6% 1.660ms 1.953ms +17.6%
list + comment count 0.200ms 0.183ms -8.6% 0.252ms 0.237ms -5.9% 2.998ms 2.666ms -11.1%
list + 3 recent comments 0.118ms 0.104ms -11.5% 0.163ms 0.154ms -5.5% 5.356ms 5.357ms +0.0%
issue detail + comments 0.080ms 0.073ms -8.3% 0.095ms 0.094ms -0.5% 0.438ms 0.475ms +8.5%
1,000 rows/collection | source indexes: manual | optimistic writes — geomean 0.94×, cold 1.01×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.068ms 0.067ms -1.0% 0.129ms 0.153ms +18.9% 0.744ms 0.744ms -0.1%
list: newest 50 open 0.053ms 0.051ms -2.5% 0.095ms 0.108ms +13.6% 0.837ms 0.994ms +18.8%
list + author 0.094ms 0.091ms -3.3% 0.133ms 0.116ms -12.3% 1.984ms 1.831ms -7.7%
list + comment count 0.184ms 0.181ms -1.9% 0.320ms 0.286ms -10.7% 2.769ms 2.412ms -12.9%
list + 3 recent comments 0.103ms 0.092ms -10.5% 0.136ms 0.142ms +4.4% 4.156ms 4.392ms +5.7%
issue detail + comments 0.090ms 0.076ms -15.6% 0.174ms 0.103ms -40.5% 0.416ms 0.429ms +3.3%
10,000 rows/collection | source indexes: none | synced writes — geomean 1.01×, cold 0.97×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.055ms 0.054ms -2.1% 0.075ms 0.072ms -4.0% 69.805ms 60.876ms -12.8%
list: newest 50 open 9.118ms 9.332ms +2.4% 9.839ms 10.031ms +2.0% 61.884ms 64.829ms +4.8%
list + author 0.129ms 0.146ms +12.9% 0.184ms 0.177ms -3.9% 188.120ms 221.525ms +17.8%
list + comment count 0.178ms 0.193ms +8.6% 0.225ms 0.338ms +49.9% 71.636ms 72.612ms +1.4%
list + 3 recent comments 0.118ms 0.108ms -8.4% 0.213ms 0.147ms -30.8% 77.032ms 78.030ms +1.3%
issue detail + comments 0.078ms 0.075ms -4.1% 0.099ms 0.103ms +4.1% 7.128ms 5.253ms -26.3%
10,000 rows/collection | source indexes: none | optimistic writes — geomean 0.98×, cold 0.96×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.084ms 0.075ms -10.1% 0.165ms 0.148ms -10.3% 64.306ms 49.903ms -22.4%
list: newest 50 open 0.046ms 0.044ms -4.1% 0.097ms 0.088ms -9.8% 62.114ms 50.032ms -19.5%
list + author 0.097ms 0.101ms +4.5% 0.142ms 0.161ms +13.0% 187.115ms 171.996ms -8.1%
list + comment count 0.206ms 0.201ms -2.1% 0.258ms 0.254ms -1.3% 76.664ms 70.119ms -8.5%
list + 3 recent comments 0.098ms 0.093ms -4.9% 0.129ms 0.115ms -10.5% 64.106ms 67.247ms +4.9%
issue detail + comments 0.091ms 0.096ms +5.1% 0.147ms 0.125ms -14.6% 5.513ms 8.047ms +46.0%
10,000 rows/collection | source indexes: manual | synced writes — geomean 0.99×, cold 0.97×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.067ms 0.066ms -1.7% 0.084ms 0.121ms +44.1% 2.805ms 1.885ms -32.8%
list: newest 50 open 1.009ms 1.007ms -0.2% 1.543ms 1.378ms -10.7% 2.004ms 1.846ms -7.9%
list + author 0.080ms 0.079ms -1.7% 0.115ms 0.176ms +52.3% 3.092ms 3.869ms +25.1%
list + comment count 0.207ms 0.201ms -3.3% 0.310ms 0.227ms -26.7% 4.719ms 3.648ms -22.7%
list + 3 recent comments 0.124ms 0.120ms -2.5% 0.181ms 0.174ms -3.6% 4.595ms 5.167ms +12.4%
issue detail + comments 0.088ms 0.092ms +4.9% 0.121ms 0.171ms +41.4% 0.608ms 0.742ms +22.1%
10,000 rows/collection | source indexes: manual | optimistic writes — geomean 0.97×, cold 0.92×
Query Base median PR median Δ median Base p95 PR p95 Δ p95 Base cold PR cold Δ cold
list: newest 50 open 0.120ms 0.087ms -27.7% 0.202ms 0.157ms -22.1% 2.671ms 2.544ms -4.8%
list: newest 50 open 0.058ms 0.058ms -0.3% 0.134ms 0.084ms -37.5% 1.644ms 1.627ms -1.0%
list + author 0.099ms 0.103ms +3.7% 0.177ms 0.185ms +4.5% 4.021ms 2.815ms -30.0%
list + comment count 0.223ms 0.243ms +8.9% 0.387ms 0.441ms +14.0% 3.849ms 3.376ms -12.3%
list + 3 recent comments 0.111ms 0.115ms +3.9% 0.154ms 0.164ms +6.0% 4.355ms 4.986ms +14.5%
issue detail + comments 0.102ms 0.099ms -2.6% 0.165ms 0.126ms -23.7% 0.690ms 0.615ms -10.8%

Runner: node v24.8.0, linux 7.0.0-1017-azure, AMD EPYC 9V74 80-Core Processor. Timings on shared CI runners are noisy; treat small deltas as indicative only.

@KyleAMathews
KyleAMathews merged commit e7bf648 into main Oct 28, 2026
26 checks passed
@KyleAMathews
KyleAMathews deleted the renovate/npm-vitest-vulnerability branch October 28, 2026 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant