observe() held self._lock, called _check_anomaly, which called get_usual_direction, which tried to acquire self._lock again → deadlock. Split into _usual_direction_unlocked (no lock) for internal use. This caused /scene and all other API endpoints to hang after the first sound classification with spatial data. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
10 KiB
10 KiB