Files
XC_VM/src
Divarion_D 1d0f0d6674 feat(streaming): auto-install/update the xc_fanout daemon (ADR 0003, Phase G)
Nothing pulled or bootstrapped the daemon: the panel archive doesn't ship the
binary (it's a GitHub-release asset via `fanout_binary`), and `fanout_binary`
was invoked by no installer, updater or cron. So a fresh node/LB never got the
daemon, and an updated panel kept an old one. Wire it up:

- UpdateCommand: after a panel update, run `console.php fanout_binary` (root,
  background, best-effort) so the daemon is refreshed to match the new version.
- RootSignalsCronJob (root, every node incl. LBs): hourly self-heal — throttled
  `fanout_binary` via a stamp, first pass immediate, so a fresh install/LB gets
  the daemon within a minute and version drift is corrected.
- service: the keepalive loop now runs UNCONDITIONALLY and re-checks for the
  binary each 2s pass instead of gating the whole block on `-x` at boot. This
  closes the bootstrap gap — fanout_binary only pkills and relies on a running
  keepalive to respawn, which didn't exist on a node whose binary arrived after
  boot; now the loop launches the daemon within ~2s of the binary appearing.

fanout_binary is idempotent (downloads only on a version mismatch, only when
GitHub is reachable), so polling is safe. php -l + make gates green.
2026-08-17 22:08:18 +03:00
..
2025-07-10 20:01:56 +03:00
2025-09-11 22:09:58 +03:00
2025-07-10 20:01:56 +03:00
2025-07-10 20:01:56 +03:00