Obsctl::Server::ObsSupervisor
Owns the single OBS WebSocket client and reconnect loop for the daemon.
Constants
DISCONNECT_FALLBACK_TIMEOUT = 100.milliseconds
STATS_POLL_INTERVAL = 2.seconds
Constructors
new(config : Config::Config, state : StateStore, event_broadcast : Proc(JSON::Any, Nil) | Nil = nil, log_broadcast : Proc(JSON::Any, Nil) | Nil = nil, logger : Runtime::Logger | Nil = nil, diagnostic_log_broadcast : Proc(JSON::Any, Bool) | Nil = nil, stats_poll_interval : Time::Span = STATS_POLL_INTERVAL)
Creates a supervisor that updates server state and optional event/log broadcasts.
Instance methods
stopped_reconnect_attempted?
Test-only observability for reconnect attempts rejected by stopped lifecycle state.
test_reconnect_before_publication
Test-only synchronization hook invoked after reconnect captures a
live generation and before it re-checks that generation for public
reconnect publication. The hook runs without supervisor locks held and
may block to coordinate deterministic race specs.
Test-only synchronization hook invoked after reconnect captures a
live generation and before it re-checks that generation for public
reconnect publication. The hook runs without supervisor locks held and
may block to coordinate deterministic race specs.