SIGN IN SIGN UP

fix: stop infinite server auto-reload loop (issue #277)

server_has_newer_binary() previously reported an update whenever the
mtime comparison was inconclusive (a metadata read failed) as long as
the candidate path differed from the running exe. On some systems
(reported on Omarchy) that fallback fired permanently: the client
auto-reloaded the server, the server exec'd into the candidate, and the
freshly-exec'd server again reported an update, flickering the terminal
forever.

- Make server_has_newer_binary conservative: only report an update when
  both mtimes are readable and a candidate is strictly newer. Refactor
  the decision into a pure, unit-tested helper (newer_binary_available).
- Add a client-side circuit breaker: pause server auto-reload after a
  few consecutive attempts and surface a message instead of looping.
- Add regression tests for both layers.
J
jeremy committed
5fa0360d719ec277bb57e0358231708d3849e94a
Parent: a86786b