Skip to content

Coverage/targeted lanes 2026 03 05#64

Merged
miccy merged 22 commits intomainfrom
coverage/targeted-lanes-2026-03-05
Mar 5, 2026
Merged

Coverage/targeted lanes 2026 03 05#64
miccy merged 22 commits intomainfrom
coverage/targeted-lanes-2026-03-05

Conversation

@miccy
Copy link
Contributor

@miccy miccy commented Mar 5, 2026

This pull request introduces several improvements across the monorepo, focusing on streamlining build and clean scripts, updating dependencies, enhancing test coverage for the web package, and adding a new nightly CI workflow for browser WebSocket tests. Below are the most important changes grouped by theme:

Build & Clean Script Improvements:

  • Replaced all uses of the rimraf package in clean and build scripts across packages and examples with a custom Bun-based script (bun ../../scripts/rm.mts). This change standardizes cleanup operations and removes the dependency on rimraf. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
  • Updated the root clean and build scripts in package.json to use the Bun-based script and added a clean:ts script for TypeScript build cache cleanup. (package.jsonL60-R64, F65c6b61L5R5)

Test Coverage & CI Enhancements:

  • Added new scripts and thresholds for test coverage and coverage gating for the web package, and included a new coverage:lane:web script for streamlined lane-based coverage checks. [1] [2]
  • Added web to the list of filtered build targets in the CI workflow trigger to ensure web builds are included in CI runs.
  • Introduced a new GitHub Actions workflow (ws-browser-nightly.yaml) to run nightly browser-based WebSocket tests, including log and screenshot artifact uploads for debugging.

Dependency Updates:

  • Updated various dependencies to their latest versions in example projects, including Angular, Electron, Expo, Tauri, Svelte, Tanstack Router, and others for improved stability and compatibility. [1] [2] [3] [4] [5] [6]
  • Updated devDependencies and overrides in the root package.json, including removing rimraf and webpack, and adding new overrides for svgo and tar.

TypeScript Configuration Improvements:

  • Enhanced the TypeScript configuration in apps/relay/tsconfig.json to explicitly include Node.js types and type roots, improving type safety and compatibility.

These changes collectively improve developer experience, consistency, and reliability across the monorepo.

Summary by CodeRabbit

Poznámky k vydání

  • Nové funkce

    • Přidána automatizovaná testovací sada pro WebSocket v prohlížeči.
  • Opravy chyb

    • Vylepšeno zpracování chyb a stabilita serveru relaye.
    • Optimalizováno rozpoznávání běhového prostředí.
  • Chores

    • Aktualizovány závislosti (Angular, Electron, Expo, Svelte, TanStack, Tauri).
    • Modernizovány nástroje pro vytváření a čistění projektů.
    • Vylepšena infrastruktura testování.

miccy and others added 21 commits March 4, 2026 09:43
Source upstream commit: 7e0d6897615c493e1154a5670f32a1686f9ec1ce

Port scope: adapted (keeps fork dependency versions, adds runtime-compatible test assertions)
Source upstream commit: d6e35b1ac58f6665071ca0633a1444838123c0ed

Port scope: adapted (keeps fork script layout, applies build-script simplification and root clean:ts gate)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Miccy <code@miccy.dev>
@miccy miccy requested a review from Copilot March 5, 2026 13:12
@miccy miccy self-assigned this Mar 5, 2026
@miccy miccy added upstream Needs cherry-pick or merge from upstream fix Repair any bug update Update libs and deps labels Mar 5, 2026
@coderabbitai
Copy link

coderabbitai bot commented Mar 5, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1cc16df7-c7ba-4feb-953b-929ebb014755

📥 Commits

Reviewing files that changed from the base of the PR and between 2fff107 and 2a07ee0.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (54)
  • .github/workflows/ci.yaml
  • .github/workflows/ws-browser-nightly.yaml
  • apps/relay/package.json
  • apps/relay/tsconfig.json
  • examples/angular-vite-pwa/package.json
  • examples/react-electron/package.json
  • examples/react-expo/package.json
  • examples/react-nextjs/package.json
  • examples/react-vite-pwa/package.json
  • examples/svelte-vite-pwa/package.json
  • examples/tanstack-start/package.json
  • examples/tauri/package.json
  • examples/vue-vite-pwa/package.json
  • package.json
  • packages/astro/package.json
  • packages/bun/package.json
  • packages/common/package.json
  • packages/common/src/Buffer.ts
  • packages/common/src/Platform.ts
  • packages/common/src/Polyfills.ts
  • packages/common/src/Task.ts
  • packages/common/src/Type.ts
  • packages/common/src/local-first/Protocol.ts
  • packages/common/test/Polyfills.test.ts
  • packages/common/test/TreeShaking.test.ts
  • packages/common/test/WebSocket.test.ts
  • packages/common/test/_browserSetup.ts
  • packages/common/test/_globalSetup.ts
  • packages/common/test/local-first/DbWorkerProtocol.test.ts
  • packages/common/test/local-first/Sync.test.ts
  • packages/nodejs/package.json
  • packages/nodejs/src/Sqlite.ts
  • packages/nodejs/src/local-first/Relay.ts
  • packages/nodejs/test/Error.test.ts
  • packages/nodejs/test/Relay.test.ts
  • packages/nodejs/test/Sqlite.test.ts
  • packages/nodejs/test/setup.ts
  • packages/react-native/package.json
  • packages/react-web/package.json
  • packages/react-web/test/index.test.ts
  • packages/react/package.json
  • packages/svelte/package.json
  • packages/tanstack-start/package.json
  • packages/tauri/package.json
  • packages/vue/package.json
  • packages/web/package.json
  • packages/web/src/Platform.ts
  • packages/web/test/DbWorker.test.ts
  • packages/web/test/Platform.test.ts
  • packages/web/test/Sqlite.mocked.test.ts
  • packages/web/test/_browserSetup.ts
  • packages/web/vitest.config.ts
  • scripts/rm.mts
  • vitest.coverage.config.mts

📝 Walkthrough

Walkthrough

Tato PR zavádí rozsáhlé refaktorování, které nahrazuje rimraf vlastním bun skriptem rm.mts, implementuje komplexní polyfilly pro DisposableStack a AsyncDisposableStack, vylepšuje server Relay hardening, aktualizuje test infrastrukturu a přidává nový workflow pro WebSocket testování v prohlížeči.

Changes

Cohort / File(s) Souhrn
Build System Updates
.github/workflows/ci.yaml, package.json, packages/*/package.json, scripts/rm.mts
Náhrada rimraf bun skriptem rm.mts v build a clean skriptech napříč všemi balíčky; přidán web do coverage_lane voleb; nový TypeScript skript pro hromadné odstraňování souborů s retry logikou.
CI/CD Workflows
.github/workflows/ws-browser-nightly.yaml
Nový GitHub Actions workflow pro noční WebSocket browser testy; spouští Vitest s Playwright browsery, nahrává logy a screenshoty.
Polyfills Implementation
packages/common/src/Polyfills.ts, packages/common/test/Polyfills.test.ts, packages/common/test/_browserSetup.ts
Nová robustní implementace DisposableStack a AsyncDisposableStack polyfillů s runtime detektováním; obsáhlý test suite s 1518 řádky pokrývající edge cases; změna z automatického nahrávání na explicitní installPolyfills().
Platform & Type System
packages/common/src/Platform.ts, packages/common/src/Type.ts, packages/common/src/Buffer.ts, packages/common/src/local-first/Protocol.ts
Nové NodeBufferLike rozhraní a nodeBuffer export; ochrana Error.captureStackTrace proti runtime chybám; zlepšená base64 kódování přes Node.js Buffer.
Relay Server Hardening
packages/nodejs/src/local-first/Relay.ts, packages/nodejs/test/Relay.test.ts
Centralizovaná chyba upgrade handler; vylepšená HTTP upgrade chyba handing; nová shutdown sekvence s timeouty pro WebSocketServer a HTTP server; ochrana proti zacyklování.
Task & Async Management
packages/common/src/Task.ts, packages/nodejs/src/Sqlite.ts
Lokální register helper v AsyncDisposableStack.use; environment-driven SQLite runtime výběr s hasBunRuntime() detekcí.
Test Infrastructure
packages/common/test/WebSocket.test.ts, packages/common/test/_globalSetup.ts, packages/common/test/TreeShaking.test.ts, packages/nodejs/test/setup.ts, vitest.coverage.config.mts
Nová Vitest coverage config; WebSocket URL změna na 127.0.0.1; tree-shaking testy migrované z webpack na Bun; přidání Promise.try a Promise.withResolvers polyfillů; vylepšená server shutdown logika.
Test Additions & Coverage
packages/common/test/local-first/..., packages/nodejs/test/..., packages/react-web/test/index.test.ts, packages/web/test/...
Nové testy pro DbWorkerProtocol, Sync, Error handling, Sqlite runtime, React web wiring, DbWorker koordinace, Platform reload chování a Sqlite retry logika.
Package Updates
apps/relay/..., examples/*/package.json
Aktualizace build skriptů; zvýšení verzí Angular, Svelte, Electron, Expo, TanStack router.
Configuration & Setup
apps/relay/tsconfig.json, packages/web/vitest.config.ts, packages/web/src/Platform.ts
Přidání types a typeRoots do tsconfig; setupFiles pro browser testy; Istanbul coverage directive komentář.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

Suggested reviewers

  • Jakub-coding99

Poem

🐰 Skript bun nyní čistí naše cesty,
Polyfilly sílí v tichosti,
Relay server sbírá přátele,
Webové testy běží v prohlížeči,
Evolu roste se každou změnou! 🚀

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch coverage/targeted-lanes-2026-03-05

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 and usage tips.

@socket-security
Copy link

socket-security bot commented Mar 5, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Publisher changed: npm @expo/require-utils is now published by brentvatne

Author: brentvatne

From: ?npm/expo-constants@55.0.7npm/expo-splash-screen@55.0.10npm/expo@55.0.5npm/@expo/require-utils@55.0.2

ℹ Read more on: This package | This alert | What is unstable ownership?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Try to reduce the number of authors you depend on to reduce the risk to malicious actors gaining access to your supply chain. Packages should remove inactive collaborators with publishing rights from packages on npm.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@expo/require-utils@55.0.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @react-native/debugger-frontend is 96.0% likely obfuscated

Confidence: 0.96

Location: Package overview

From: ?npm/expo@55.0.5npm/@react-native/debugger-frontend@0.83.2

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@react-native/debugger-frontend@0.83.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @react-native/debugger-frontend is 96.0% likely obfuscated

Confidence: 0.96

Location: Package overview

From: ?npm/react-native@0.84.1npm/@react-native/debugger-frontend@0.84.1

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@react-native/debugger-frontend@0.84.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: npm react-native-quick-crypto

License: Apache-2.0 WITH LLVM-exception - the applicable license policy does not allow this license exception (package/deps/blake3/LICENSE_A2LLVM)

From: examples/react-expo/package.jsonnpm/react-native-quick-crypto@1.0.16

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/react-native-quick-crypto@1.0.16. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Publisher changed: npm react-native-safe-area-context is now published by melvalesca

Author: melvalesca

From: examples/react-expo/package.jsonnpm/react-native-safe-area-context@5.7.0

ℹ Read more on: This package | This alert | What is unstable ownership?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Try to reduce the number of authors you depend on to reduce the risk to malicious actors gaining access to your supply chain. Packages should remove inactive collaborators with publishing rights from packages on npm.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/react-native-safe-area-context@5.7.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm @blazejkustra/react-native-alert

Location: Package overview

From: examples/react-expo/package.jsonnpm/@blazejkustra/react-native-alert@1.0.0

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@blazejkustra/react-native-alert@1.0.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm abort-signal-polyfill

Location: Package overview

From: examples/react-expo/package.jsonnpm/abort-signal-polyfill@1.0.0

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/abort-signal-polyfill@1.0.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm fetch-nodeshim

Location: Package overview

From: ?npm/expo@55.0.5npm/fetch-nodeshim@0.4.9

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/fetch-nodeshim@0.4.9. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Deprecated by its maintainer: npm inflight

Reason: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.

From: ?npm/babel-preset-expo@55.0.10npm/react-native@0.84.1npm/expo@55.0.5npm/inflight@1.0.6

ℹ Read more on: This package | This alert | What is a deprecated package?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Research the state of the package and determine if there are non-deprecated versions that can be used, or if it should be replaced with a new, supported solution.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/inflight@1.0.6. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Deprecated by its maintainer: npm rimraf

Reason: Rimraf versions prior to v4 are no longer supported

From: ?npm/react-native@0.84.1npm/expo@55.0.5npm/rimraf@3.0.2

ℹ Read more on: This package | This alert | What is a deprecated package?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Research the state of the package and determine if there are non-deprecated versions that can be used, or if it should be replaced with a new, supported solution.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/rimraf@3.0.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm set.prototype.isdisjointfrom

Location: Package overview

From: examples/react-expo/package.jsonnpm/set.prototype.isdisjointfrom@1.1.5

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/set.prototype.isdisjointfrom@1.1.5. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm set.prototype.issubsetof

Location: Package overview

From: examples/react-expo/package.jsonnpm/set.prototype.issubsetof@1.1.4

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/set.prototype.issubsetof@1.1.4. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Low adoption: npm set.prototype.issupersetof

Location: Package overview

From: examples/react-expo/package.jsonnpm/set.prototype.issupersetof@1.1.3

ℹ Read more on: This package | This alert | What are unpopular packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/set.prototype.issupersetof@1.1.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR streamlines monorepo maintenance and CI by replacing rimraf cleanup with a Bun-based removal script, tightening/expanding test coverage (notably for browser/WebSocket and polyfill behavior), and improving reliability of Node.js relay shutdown and error handling.

Changes:

  • Replaced rimraf usage across packages/apps/examples with scripts/rm.mts, and updated root build/clean/coverage scripts accordingly.
  • Added/expanded tests and setup hooks for browser + polyfills (DisposableStack/AsyncDisposableStack), plus new targeted coverage lane for @evolu/web.
  • Improved Node.js relay robustness (upgrade rejection responses, startup awaiting, shutdown timeouts) and updated various deps/configs.

Reviewed changes

Copilot reviewed 54 out of 55 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
vitest.coverage.config.mts Adds a dedicated Vitest coverage config (Istanbul provider) excluding browser projects.
scripts/rm.mts Introduces Bun-invoked removal helper to replace rimraf.
packages/web/vitest.config.ts Adds browser test setup file for consistent polyfill installation.
packages/web/test/_browserSetup.ts Installs common polyfills before web browser tests.
packages/web/test/Sqlite.mocked.test.ts Adds retry test coverage for WASM SQLite init failure path.
packages/web/test/Platform.test.ts Adds worker-context test for reloadApp behavior.
packages/web/test/DbWorker.test.ts Adds coverage for follower behavior waiting on shared init promise.
packages/web/src/Platform.ts Adds Istanbul ignore hint for worker fallback branch.
packages/web/package.json Switches build/clean to Bun-based rm script.
packages/vue/package.json Switches build/clean to Bun-based rm script.
packages/tauri/package.json Switches build/clean to Bun-based rm script.
packages/tanstack-start/package.json Switches build/clean to Bun-based rm script.
packages/svelte/package.json Switches build/clean to Bun-based rm script and bumps Svelte version.
packages/react/package.json Switches build/clean to Bun-based rm script.
packages/react-web/test/index.test.ts Adds tests for react-web index exports and createEvoluDeps wiring.
packages/react-web/package.json Switches build/clean to Bun-based rm script.
packages/react-native/package.json Switches build/clean to Bun-based rm script and bumps Expo version.
packages/nodejs/test/setup.ts Installs common polyfills in Node.js test setup.
packages/nodejs/test/Sqlite.test.ts Refactors runtime selection testing to use env override instead of mutating globals.
packages/nodejs/test/Relay.test.ts Makes handshake error assertions more runtime-tolerant; adds 500-path test.
packages/nodejs/test/Error.test.ts Adds tests for global error scope listener wiring and disposal.
packages/nodejs/src/local-first/Relay.ts Hardens upgrade rejection, startup await, and shutdown with timeouts/termination.
packages/nodejs/src/Sqlite.ts Adds env override for Bun-vs-Node sqlite runtime detection.
packages/nodejs/package.json Switches build/clean to Bun-based rm script.
packages/common/test/local-first/Sync.test.ts Adjusts quota test to use timestamp with drift validation.
packages/common/test/local-first/DbWorkerProtocol.test.ts Adds deterministic constant export test coverage.
packages/common/test/_globalSetup.ts Binds test server to 127.0.0.1 and adds close timeouts + forced client termination.
packages/common/test/_browserSetup.ts Switches from disposablestack/auto to installPolyfills().
packages/common/test/WebSocket.test.ts Gates browser WebSocket tests behind env flags; uses 127.0.0.1 URLs.
packages/common/test/TreeShaking.test.ts Replaces webpack bundling with Bun bundling for tree-shaking lanes and updates snapshots.
packages/common/test/Polyfills.test.ts Adds extensive conformance/regression tests for owned DisposableStack polyfills.
packages/common/src/local-first/Protocol.ts Makes captureStackTrace optional for non-V8 runtimes.
packages/common/src/Type.ts Uses nodeBuffer abstraction (avoids direct globalThis.Buffer use).
packages/common/src/Task.ts Improves AsyncDisposableStack use handling for sync-disposable resources; refines yield implementation.
packages/common/src/Polyfills.ts Replaces runtime dependency with owned DisposableStack polyfill implementation + probes.
packages/common/src/Platform.ts Adds nodeBuffer abstraction and updates hasNodeBuffer detection.
packages/common/src/Buffer.ts Makes captureStackTrace optional for non-V8 runtimes.
packages/common/package.json Removes disposablestack + webpack deps; updates scripts (notably build/clean).
packages/bun/package.json Switches build/clean to Bun-based rm script.
packages/astro/package.json Switches build/clean to Bun-based rm script.
package.json Adds TS clean step to build, switches coverage config, adds web coverage lane, updates deps/overrides, removes rimraf/webpack.
examples/vue-vite-pwa/package.json Switches clean to Bun-based rm script.
examples/tauri/package.json Switches clean to Bun-based rm script and bumps Tauri CLI.
examples/tanstack-start/package.json Bumps TanStack Router version.
examples/svelte-vite-pwa/package.json Switches clean to Bun-based rm script and bumps Svelte version.
examples/react-vite-pwa/package.json Switches clean to Bun-based rm script.
examples/react-nextjs/package.json Switches clean to Bun-based rm script.
examples/react-expo/package.json Switches clean to Bun-based rm script and bumps Expo-related deps.
examples/react-electron/package.json Switches clean to Bun-based rm script and bumps Electron version.
examples/angular-vite-pwa/package.json Bumps Angular-related deps.
apps/relay/tsconfig.json Adds explicit Node types/typeRoots configuration.
apps/relay/package.json Switches build/clean to Bun-based rm script and uses TS build mode.
.github/workflows/ws-browser-nightly.yaml Adds nightly workflow to run browser WebSocket tests and upload artifacts.
.github/workflows/ci.yaml Adds web to CI path filters/targets.

Comment on lines +126 to +130
const workerUrl = URL.createObjectURL(
new Blob([workerSource], { type: "text/javascript" }),
);
const worker = new Worker(workerUrl, { type: "module" });

Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

workerUrl is revoked in finally, but new Worker(workerUrl, ...) is outside the try block. If the Worker constructor throws (e.g. unsupported in some runners), the object URL won’t be revoked. Consider moving Worker creation inside the try (or wrapping it) so URL.revokeObjectURL(workerUrl) always runs.

Copilot uses AI. Check for mistakes.
@miccy miccy marked this pull request as ready for review March 5, 2026 14:17
@miccy miccy requested a review from a team as a code owner March 5, 2026 14:17
@miccy miccy merged commit 05bc57b into main Mar 5, 2026
34 of 35 checks passed
@miccy miccy deleted the coverage/targeted-lanes-2026-03-05 branch March 5, 2026 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Repair any bug update Update libs and deps upstream Needs cherry-pick or merge from upstream

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants