Commit Graph

41549 Commits

Author SHA1 Message Date
Italo José
ce14baba84 Merge branch 'devel' into release-3.5 2026-03-27 11:07:30 -03:00
Nacho Codoñer
d8e169ebc0 Merge pull request #14271 from meteor/coderabbit
Add .coderabbit.yml configuration for review automation
2026-03-26 17:47:17 +01:00
Nacho Codoñer
d5b8f6c904 update .coderabbit.yaml to disable review_status 2026-03-26 17:41:57 +01:00
Nacho Codoñer
a99f6e1937 re-run checks 2026-03-26 17:07:22 +01:00
Nacho Codoñer
69f36ab27a update .coderabbit.yaml configuration 2026-03-26 17:03:22 +01:00
Nacho Codoñer
d7638494e7 add .coderabbit.yml configuration for review automation 2026-03-26 16:56:15 +01:00
Italo José
8da9b8e8a4 Merge pull request #14231 from dupontbertrand/feature/pluggable-transport
Feature/pluggable transport
2026-03-25 11:18:37 -03:00
dupontbertrand
a7622418f1 fix: remove stale faye-websocket reference from raw_connection comment 2026-03-24 21:59:06 +01:00
dupontbertrand
f29a87b12e docs: remove incorrect claim about SockJS bundle size reduction 2026-03-24 21:16:48 +01:00
dupontbertrand
77eabba250 docs: add DDP_TRANSPORT documentation and update DISABLE_SOCKJS
Documents the new DDP_TRANSPORT environment variable with available
transports (sockjs, uws), usage examples, and tradeoffs.

Updates DISABLE_SOCKJS to note it is equivalent to DDP_TRANSPORT=uws
and recommends the new variable instead.
2026-03-24 21:15:21 +01:00
dupontbertrand
4987755e51 fix: skip SockJS-specific tests when DDP_TRANSPORT is not sockjs 2026-03-24 20:30:21 +01:00
dupontbertrand
98f4b7b8a1 ci: use ubuntu-24.04 for DDP transport tests (uws needs GLIBC 2.38) 2026-03-24 20:24:49 +01:00
dupontbertrand
2583c35c4f ci: add DDP transport matrix test workflow
Adds a dedicated CI workflow that runs ddp-server tests on both
sockjs and uws transports via a matrix strategy.

This is a lightweight job (~10 min) separate from the main test suite
to avoid doubling CI time. It ensures both transport backends pass
the full ddp-server test suite on every PR.
2026-03-24 19:51:34 +01:00
dupontbertrand
8b96d8a8eb fix: address review feedback on uws transport
- Use const/let instead of var
- Use WeakMap instead of Map for socket listeners to prevent memory leaks
- Write 502 Bad Gateway response before destroying socket on proxy error
- Wire up idleTimeout setting in uWS config
2026-03-24 19:51:21 +01:00
dupontbertrand
e33a6d0cf5 ci: pin Node version to 24.14.0 to match dev bundle 2026-03-24 19:51:21 +01:00
dupontbertrand
432f67735f ci: update test-packages workflow to Node 24 2026-03-24 19:51:21 +01:00
dupontbertrand
9a873e1415 fix: replace deprecated url.parse with WHATWG URL API in sockjs transport 2026-03-24 19:51:21 +01:00
dupontbertrand
eee349ebcb ddp-server: clear subscription references after async onStop callbacks
Minimal fix: only _callStopCallbacks becomes async, _deactivate uses
.then() to clear _session and _documents after callbacks complete.
No async propagation up the call stack.

Addresses review feedback: avoid async/await snowball, use this instead
of self, keep changes contained to the subscription cleanup level.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:51:21 +01:00
dupontbertrand
b700e0aa53 refactor: keep only sockjs and uws transports
Remove faye and ws transports as agreed with maintainer.
DISABLE_SOCKJS=1 now resolves to uws instead of faye.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:51:21 +01:00
dupontbertrand
81515c3d99 fix: update raw_connection.js comment to mention uws
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:51:21 +01:00
dupontbertrand
86506f0918 ddp-server: pluggable transport architecture for WebSocket
Refactor the DDP transport layer into a pluggable architecture where
transports are isolated modules behind a common interface. This allows
benchmarking and comparing different WebSocket implementations on the
same build, same Node version, same machine.

Available transports (selectable via DDP_TRANSPORT env var or settings):
  - sockjs: SockJS (current default, backward compatible)
  - faye: faye-websocket (direct WebSocket, no SockJS overhead)
  - ws: ws npm package (most popular Node.js WebSocket library)
  - uws: uWebSockets.js (C++ high-performance transport)

Client-side: when transport != sockjs, SockJS is never loaded (dynamic
import), saving ~57 KB from the client bundle. Native WebSocket is used
instead.

Configuration:
  - DDP_TRANSPORT=ws (env var)
  - settings.packages['ddp-server'].transport = 'ws'
  - DISABLE_SOCKJS=1 still works (resolves to 'faye')

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:51:21 +01:00
Italo José
735fddb27b Merge pull request #14248 from meteor/node/url-parse
refactor: replace Node.js 'url' module with the native URL API
2026-03-24 14:43:38 -03:00
italo jose
04281498a0 refactor: use URL from the npm url package and improve METEOR_MODERN environment variable parsing. 2026-03-24 11:05:14 -03:00
italo jose
3f4bf5b76d fix: preserve raw IPv6 address formatting when parsing URLs. 2026-03-24 10:23:49 -03:00
Nacho Codoñer
f533e6339b Merge pull request #14251 from dupontbertrand/docs/community-cluster
docs: add dupontbertrand:cluster to community packages
2026-03-24 11:21:12 +01:00
Nacho Codoñer
cd6680b0a7 Merge branch 'devel' into docs/community-cluster 2026-03-24 11:13:20 +01:00
Nacho Codoñer
2261f3edee Merge pull request #14250 from dupontbertrand/docs/community-mail-preview
docs: add dupontbertrand:mail-preview to community packages
2026-03-24 11:10:21 +01:00
italo jose
167426f1d1 refactor: Replace deprecated url.parse() with WHATWG new URL() API, using globalThis.URL in url/bc and reconstructing query objects in webapp. 2026-03-23 19:52:04 -03:00
dupontbertrand
494290612b docs: add dupontbertrand:cluster to community packages
- Add documentation page for dupontbertrand:cluster, a Meteor 3
  compatible fork of meteorhacks:cluster
- Add entry to community packages index under new Scaling / Clustering
  category
- Add sidebar navigation entry
2026-03-23 23:24:50 +01:00
dupontbertrand
ef6b2fe795 docs: add dupontbertrand:mail-preview to community packages
Add documentation page for the mail-preview package, a zero-config
dev-mode email preview UI that captures outgoing emails and displays
them at /__meteor_mail__/.

Ref: https://forums.meteor.com/t/built-in-mail-preview-ui-for-dev-mode/64489
2026-03-23 23:13:19 +01:00
italo jose
3b66476996 refactor: replace Node.js 'url' module with the native URL API across various packages and tools 2026-03-23 17:05:44 -03:00
Italo José
86bdc07e1a Merge pull request #14040 from meteor/dependabot/github_actions/actions/github-script-8
build(deps): bump actions/github-script from 6 to 8
2026-03-20 10:55:26 -03:00
felippeximenes
9269deeba0 docs: add Windows PowerShell note about .\meteor and 7-Zip 2026-03-20 09:40:24 -03:00
Nacho Codoñer
2001382fc0 Merge pull request #14241 from dupontbertrand/docs/rspack-css-modules
docs: add CSS Modules section to rspack bundler integration
2026-03-20 09:29:44 +01:00
dupontbertrand
f95cab0e54 docs: add CSS Modules section to rspack bundler integration guide
The CSS Modules setup was missing from the rspack documentation,
causing confusion for users trying to use .module.css files with
TypeScript projects.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 00:57:42 +01:00
Italo José
e394703cc8 Merge pull request #14238 from meteor/fix/objectid-projection-bin
Fix ObjectID fields sent as binary when using projection with ChangeStreams
2026-03-19 09:01:46 -03:00
italo jose
ee746acc92 fix: Apply EJSON type transformation to documents before projection and sending in the change stream driver, and skip related ObjectID tests on the client. 2026-03-18 18:21:09 -03:00
Italo José
9477fa6740 Merge pull request #14204 from mvogttech/ejson-optimize-lengthOf
perf(ejson): avoid array allocation in lengthOf utility
2026-03-17 13:55:53 -03:00
Italo José
efa13d5d6d Merge branch 'release-3.5' into ejson-optimize-lengthOf 2026-03-17 13:52:53 -03:00
Italo José
3569d7599a Merge pull request #14229 from dupontbertrand/fix/sockjs-static-import
Fix DDP connection latency regression from dynamic SockJS import
2026-03-17 13:15:49 -03:00
Italo José
08f686e148 Merge pull request #14222 from harryadel/fix/puppeteer-console-output
Fix puppeteer test runner console output
2026-03-17 11:11:55 -03:00
Italo José
62068a95a2 Merge pull request #14223 from harryadel/docs/test-in-console-llm-guidance
Docs: guide LLMs to use test-in-console for package tests
2026-03-17 11:11:43 -03:00
Italo José
34ea87594a Merge branch 'devel' into fix/puppeteer-console-output 2026-03-17 11:10:30 -03:00
Italo José
b9306d12c3 Merge pull request #14153 from harryadel/llms-improvement
Improve LLM Access to Documentation
2026-03-16 18:33:41 -03:00
Italo José
1b848268ea Merge branch 'devel' into llms-improvement 2026-03-16 18:33:38 -03:00
dupontbertrand
04bcf4147c Fix DDP connection latency regression from dynamic SockJS import
PR #14206 replaced the static SockJS import with a dynamic import()
inside _launchConnection(), adding ~110 ms latency to every DDP
connection for apps using the default SockJS transport. This restores
the static import while keeping all DISABLE_SOCKJS=1 functionality
(runtime WebSocket path selection) intact.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:04:31 +01:00
Harry Adel
cec38c47a2 Docs: guide LLMs to use test-in-console/run.sh for package tests
AGENTS.md listed `./meteor test-packages` but not the headless
alternative. That command starts a web server and waits for a browser,
producing no terminal output, which causes LLM agents to hang.

Add `./packages/test-in-console/run.sh` alongside the existing
test-packages command in AGENTS.md with a note explaining the
difference. Also add package name examples and the PUPPETEER_DOWNLOAD_PATH
hint to the testing skill.
2026-03-12 21:12:51 +02:00
Harry Adel
59796fedb0 Fix puppeteer_runner.js using broken msg._text API
When puppeteer was bumped from 20.4.0 to 23.6.0 in d8c8c3db77,
the ConsoleMessage class switched from underscore-prefixed _text
property to ES2022 private #text field, accessible only via
msg.text(). The runner code was never updated, so msg._text is
always undefined and test output silently falls through to the
else branch, printing only "Test number: N" with no actual test
results.

The text variable from msg.text() is already computed on line 15
for the Permissions policy filter — reuse it instead of the
broken msg._text.
2026-03-12 20:53:17 +02:00
italo jose
aa92b92a2b Meteor version to 3.5-beta.7 ☄️ release/METEOR@3.5-beta.7 2026-03-12 13:48:08 -03:00
italo jose
23938cdb04 build: bump BUNDLE_VERSION to 24.14.0.4 2026-03-12 11:31:33 -03:00