perf/alias-memory
develop
master
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.1
v2.1.0
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v1.0.0
v2.0.0-rc.1
v2.0.0-rc.2
v2.0.0-rc.3
v2.0.0-rc.4
${ noResults }
1 Commits (develop)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
1ab9036345 |
refactor(voice): scheduled announcements and TTS leave the core
They are now the voice-announcements plugin (previous commit). Removed from the core: - VoiceUseCases: scheduled_announcement, scheduled_tts_announcement, the broadcast queue, target and slot selection, slot marking, legacy monitor reports and apply_voice_config (~900 lines). What stays: voice ident, on-demand 999x files and the disconnected prompt, which answer a radio rather than follow a schedule. - inject_announcement_ptt and its bootstrap wiring; plugin frames enter through inject_plugin_dmrd. - The TTS engine moves into the plugin (plugin/infrastructure), with its tests; VoiceProvider.ensure_tts_ambe is gone; tts_ambe.py was a dead stub. Nothing to change for sysops: - the plugin is versioned and enabled by default, and still reads VOICE.ANNOUNCEMENTS / TTS_ANNOUNCEMENTS from adn-voice.yaml; - without a PLUGINS.send entry the server grants voice-announcements exactly the TGs and DMR IDs those items use (disabled ones included, so enabling one needs no restart); an explicit entry wins; - the manager now always hands voice_slot_for_tg with send_dmrd; both check the talkgroup grant on every call. Tests: the announcement tests of the core are replaced by the plugin's (schedule, per-TG queue, busy slots, QSO cut, hourly, TTS and its failures, default DMR ID, derived grant) and by routing tests of plugin voice ported from test_announcement_ptt_inject (OBP fan-out, no misattribution to a real peer, dynamic/bridged slot choice, no pre-armed bridge needed). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
4 days ago |