SIGN IN SIGN UP

fix: LS update toast distinguishes 'no change' from 'cold pool' (v2.0.49)

User report (2026-05-01): 'LS update has no effect'. Old toast always
said 'restarted N instances' which collapsed three meaningfully-
different outcomes into one number:
  1. binary unchanged (no upstream release) → toast looked identical
  2. binary updated but pool was cold (no live LS) → restarted: 0
  3. binary updated, restarts attempted, all failed → restarted: 0

Backend /langserver/update now snapshots sha256 before/after the
install-ls.sh run and surfaces beforeSha + afterSha + binaryChanged +
poolEmpty in the response.

Dashboard updateLsBinary picks one of four toast keys:
  - lsBinaryAlreadyCurrent     (binary not changed; sha shown)
  - lsBinaryUpdatedWithErrors  (binary changed, restart errs > 0)
  - lsBinaryUpdatedColdPool    (binary changed, no live LS to restart)
  - lsBinaryUpdated            (binary changed, all restarts ok)

Tests: 494 -> 497 (+3) covering before/after sha snapshot, response
field surfacing, and the front-end toast-selection branching.
D
dwgx committed
650de41d1ca450aaeee8fc421227ee6afd4469e4
Parent: 1d68f6f