<commit_before>
## vNEXT

## v0.5.1

* On the server, if a Mongo cursor is observed multiple times concurrently (eg,
  by multiple users subscribing to the same subscription), Meteor shares the
  overhead of talking to Mongo and calculating differences between all identical
  cursors instead of redundantly performing the same work for each subscription.

* Meteor now waits to invoke method callbacks (passed to `Meteor.call` and
  `Meteor.apply`, as well as the `Meteor.Collection` `insert`/`update`/`remove`
  methods) until all the data written by the method is available in the local
  cache. This way, method callbacks can see the full effects of their write.  If
  you want to process the method's result as soon as it arrives from the server,
  even if the method's writes are not available yet, you can now specify an
  `onResultReceived` callback to `Meteor.apply`.

* Previously, as long as any method calls were in progress, Meteor would buffer
  all data changes sent from the server until all methods finished. Meteor now
  only buffers writes to documents written by client stubs, and applies the
  writes as soon as all methods that wrote that document have finished.

* Previously, during the login process on the client, `Meteor.userId()` could be
  set but the document at `Meteor.user()` could be incomplete. Meteor provided
  the function `Meteor.userLoaded()` to differentiate between these states, and
  `accounts-ui` displayed an animation when it was true. Now, this in-between
  state does not occur: when a user logs in, `Meteor.userId()` only is set once
  `Meteor.user()` is fully loaded. Because it is no longer necessary,
  `Meteor.userLoaded()` and the `{{currentUserLoaded}}` template helper have
  been removed. The animation is now driven by the new function
  `Meteor.loggingIn()` (and template helper `{{loggingIn}}`) which is true
  whenever some login method is in progress.<commit_msg>Release notes improvements.<commit_after>
## vNEXT

## v0.5.1

* Speed up server-side subscription handling by avoiding redundant work
  when the same Mongo query is observed multiple times concurrently (eg,
  by multiple users subscribing to the same subscription).

* Meteor now waits to invoke method callbacks (passed to `Meteor.call` and
  `Meteor.apply`, as well as the `Meteor.Collection` `insert`/`update`/`remove`
  methods) until all the data written by the method is available in the local
  cache. This way, method callbacks can see the full effects of their write.  If
  you want to process the method's result as soon as it arrives from the server,
  even if the method's writes are not available yet, you can now specify an
  `onResultReceived` callback to `Meteor.apply`.

* Previously, as long as any method calls were in progress, Meteor would buffer
  all data changes sent from the server until all methods finished. Meteor now
  only buffers writes to documents written by client stubs, and applies the
  writes as soon as all methods that wrote that document have finished.

* `Meteor.userLoaded()` and `{{currentUserLoaded}}` are removed; the new
  `Meteor.loggingIn()` and `{{loggingIn}}` serve a similar purpose.

  Previously, during the login process on the client, `Meteor.userId()` could be
  set but the document at `Meteor.user()` could be incomplete. Meteor provided
  the function `Meteor.userLoaded()` to differentiate between these states, and
  `accounts-ui` displayed an animation when it was true. Now, this in-between
  state does not occur: when a user logs in, `Meteor.userId()` only is set once
  `Meteor.user()` is fully loaded. Because it is no longer necessary,
  `Meteor.userLoaded()` and the `{{currentUserLoaded}}` template helper have
  been removed. The animation is now driven by the new function
  `Meteor.loggingIn()` (and template helper `{{loggingIn}}`) which is true
  whenever some login method is in progress.
{'fraction_non_alphanumeric': 0.06884151040328795, 'fraction_numerical': 0.0015412278448497304, 'mean_word_length': 4.385892116182573, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3451638', 'n_tokens_mistral': 1068, 'n_tokens_neox': 995, 'n_words': 551}