mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-11 20:02:46 +02:00
Production-readiness pass on the panel side of daemon encoder supervision. Until now the feature was gated on a setting that did not exist as a column, so it could only be enabled by hand-editing the database and the daemon never learned about it at all. * Migration 018 adds `fanout_supervise`, off for every existing install. * Admin -> Settings gains the toggle, alongside the other fanout tuning. * SettingsService saves it (it is a checkbox, so it has to be in the boolean list or it can never be turned back off). * FanoutConfig writes it into the daemon's config file as `supervise`, which is how the node learns it may supervise at all. Both halves must be on for anything to change, and either one off is a full rollback. * StreamProcess reads `fanout_supervise` rather than the placeholder name, matching the panel's `fanout_*` convention. Also: the recorded command file now says WHO ran the stream. `_.fanout` when the daemon owns the process (the bare command it was handed) and `_.ffmpeg` when this node ran it itself (with the redirect-and-background tail). Two names rather than one because the first question in any incident is which path the stream took, and a single filename cannot answer it; the stale one is removed so a stream that switched paths does not leave a lie behind. FanoutConfigTest covers the new key both ways, including that a settings array predating it reads as off -- that absence is the upgrade path for every existing install. Verified: php -l clean on every changed file. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>