- Replace /api/passwords with /api/accounts in accounts tutorial
(accounts-password API lives in the accounts page)
- Replace /api/accounts-multi with /api/accounts
- Fix /tutorials dead link to point to react tutorial
- Fix /packages/3.writing-atmosphere-packages to use new path (#7)
- Escape {{_}} and {{currentUser}} with v-pre to prevent Vue SSR
interpolation errors
- Replace ApiBox with markdown headings for deprecated collection
extension aliases (addPrototype, removePrototype) that lack jsdoc
entries
Replace guide.meteor.com, v3-docs.meteor.com, and docs.meteor.com
URLs with internal v3 paths. Drop .html extensions. Update text
references from 'Meteor Guide' to 'Tutorials' where appropriate.
Affected: accounts API, CLI reference, cordova, install, roadmap,
web-apps, rspack-bundler-integration, react-meteor-data, accounts-ui,
modules, jam-method, and pub-sub docs.
- Add Collection Extensions API docs, integrated into core from
lai:collection-extensions (PR#13830)
- Add Meteor.deferDev() for optimizing server startup in dev (PR#14006)
- Fix wording: "insure" → "to help prevent" in docs and JSDoc
- Extract heartbeat cleanup to _stopHeartbeat() helper method
- Simplify disconnect handling: remove redundant condition check
- Update documentation: add Reconnection section, use "Meteor 3.5+"
instead of time-sensitive language, update PR link to #14051
- Update comment at line 1480 to reflect session resume/create behavior
- Replace delete statements with = undefined for V8 JIT optimization
- Remove unused variable clientConn in test
- Add comment clarifying _permanent flag purpose in close()
This feature allows Meteor clients to resume their DDP connections after
temporary disconnections without re-establishing full session state.
Key changes:
- Server tracks sent message count per session (sentCount)
- Client tracks received message count (receivedCount)
- On reconnect, client sends receivedCount with session ID
- Server validates counts match to allow session resumption
- New disconnect message allows graceful disconnects
- Grace period (default 15s) keeps session alive after disconnect
- Message queue (max 100) buffers messages during disconnect
Server options:
- Meteor.server.options.disconnectGracePeriod (default: 15000ms)
- Meteor.server.options.maxMessageQueueLength (default: 100)
This significantly reduces server CPU spikes when clients reconnect
(e.g., after Google Cloud Run timeouts) by avoiding full session
recreation and data re-fetch.
Based on PR #13378. Rebased onto current devel branch with refactored
ddp-client handlers.
Co-authored-by: Jan Dvorak <AsciiDoctor@outlook.com>
Co-authored-by: Valentin Slatineanu <valentin.slatineanu@gmail.com>
Co-authored-by: zodern <zodern@icloud.com>
* Duplicate forEachAsync definition removed.
* going back
* docs: add loginWithToken to accounts.md
* repush the brench
* Restore accounnt-ui documentation line and keel loginWithToken docs
* Fix formatting in accounts.md documentation
* Fix formatting issue in accounts.md
---------
Co-authored-by: Italo José <italo.i@live.com>
While working on updating apps to use the new modern bundle, we came across some places that used this exciting pattern to get some performance gains on dev mode:
```js
if (Meteor.isDevelopment) {
Meteor.defer(loadSomethingRemote);
} else {
await loadSomethingRemote();
}
```
Sometimes we do not need this service while in dev and this would only make our startup slower, _now_ with this function we can have this nice api to wrap it:
```js
await Meteor.deferrable(connectToExternalDB, {
on: ["development"],
});
```