Fix award emoji and note updates not reflecting live on MR page

Summary

Live note updates from polling/ActionCable were not reactively reflected in the UI — adding award emoji or editing a note via the API required a page reload to show. Root cause: lodash.merge mutates arrays by index, which is not reactive in Vue 2 when a new index is written. The merge is replaced with mergeWith + an array-replace customizer so arrays get a fresh reference (reactive) while nested objects keep their deep-merge behavior so locally-held properties are preserved.

Closes #601377 (closed)

Before After

Reproduction steps

  1. Open an MR with at least one comment.
  2. Add an award emoji to that comment via the REST API from another shell/service.
  3. Without reloading, observe the emoji does not appear.
  4. Reload the page — the emoji is there.

With this MR, step 3 shows the emoji immediately.

Edited by Stanislav Lashmanov

Merge request reports

Loading