Two reliability fixes surfaced from log forensics: recurring telescope-tracker panics after shutdown, and /stop requests that took multiple seconds because spectrum integration ran on tokio's async workers. Rust source changed, so a restart is required.
Reliability
-
Telescope tracker no longer panics after shutdown. Four entry points (
set_target,stop,restart,info) asserted that the background task hadn't been told to quit. A route handler racing teardown tripped the assert and panicked a tokio worker (seen in/var/log/syslog.3.gzon 2026-05-08). They now returnTelescopeNotConnected— handlers see a clean error during teardown instead of a thread panic. (ed54cd5) -
Spectrum and IQ integration moved off the async runtime.
measure()andmeasure_iq()were declaredasyncbut did pure FFI/CPU work — USRPreceive_simple, FFT, RFI clipping — for ~1 s per iteration each, occupying tokio worker threads and spreading tail latency across unrelated requests. Both now run on the blocking thread pool viaspawn_blocking. Unrelated requests stay responsive while an integration is in progress. (30f3b9e) -
Faster
/stopin FreqSwitched mode. Stopping an integration previously had to wait out the current ~1 s switched-mode block because the only cancellation check was at the top of the outer measurement loop.measure_switchednow checks the cancellation token between the sig and ref halves, so a stop fired mid-block bails after ~0.5 s. Raw mode is unchanged. (30f3b9e)