You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.8 KiB
3.8 KiB
Changelog
All notable changes to adn-server are documented here.
[Unreleased]
[2.0.0-rc.1] - 2026-06-12
First v2 release candidate since 1.0.0 (~70 commits). HBP/OpenBridge on-wire behaviour preserved.
Added
- Report v2 — JSON HELLO, slim
dashboard_stateTCP wire (no full topology/routing snapshots to monitor), bounded report queue, optional MQTT. - Unified binary —
adn-server.pywith--echo,--doctor,--no-proxy; wiring inbootstrap/peer_server.py. - Integrated proxy — in-process UDP fan-in (
PROXY), inject-only MASTER, self-service MySQL OPTIONS, peer blacklist/timers parity with legacy proxy. - Subscription routing —
SubscriptionStore+SubscriptionRouteras runtime authority; store-native timers, OPTIONS/static TG, in-band ON/OFF;MeshCodecRegistryon OpenBridge. - Inject-only production path — per-peer OPTIONS downlink filter, monitor topology expansion (virtual SYSTEM slots), CONFIG push on peer connect.
- Performance — O(1) BRIDGES source index; peer downlink index for inject fan-out; adaptive CONFIG_SND debounce on mass login.
Changed
- Architecture —
bridge_use_casessplit intorouting_use_cases+ mixins;RuntimeContextand atomic SIGHUP reload; DMR codecs vendored todomain/dmr/; mesh codecs extracted fromudp_hbp. - OPTIONS / static TG — event-driven refresh (RPTO, startup, reload, dmrd fallback) instead of 26 s periodic loop.
- Talker Alias — embed on local REPEAT; passthrough and dedupe fixes on relay path.
Fixed
- OpenBridge packet control and rate-limit parity with legacy.
- Echo playback when sequence byte wraps; echo TG 9990 bootstrap.
- Inject TG 4000: clear dynamics once per PTT per peer.
- Unit data (ARS/LRRP) downlink for 7-digit private calls; monitor TS chip (no spurious
PRIVATE VOICEon unit data). - OBP → HBP voice forwarding and downlink CPU under multi-peer inject load.
Removed
- Standalone
adn-parrot.py— useadn-server.py --echo. - Periodic 26 s
options_config_loop. - Legacy pickle CONFIG/BRIDGE snapshots on the server → monitor wire (monitor uses v2 slim ingest).
Compatibility
- Monitor: adn-monitor 2.0.0-rc.1 (report v2 slim wire, HELLO JSON).
- Wire: HBP and OpenBridge on-wire formats unchanged vs legacy ADN DMR Server.
- Config: same
adn-server.yamlshape; add optionalPROXY/SELF_SERVICE/REPORTS.MQTTsections.
1.0.0 - 2026-06-06
First stable public release.
Added
- Clean-architecture rewrite: domain, application, infrastructure layers.
- YAML configuration (
adn-server.yaml) with startup validation. - HBP MASTER/PEER and OpenBridge forwarding with legacy parity (loops, BCSQ, packet control).
- Talker Alias: DMRA packets and embedded LC overlay (UTF-8 / ISO-8859-1 / 7-bit formats).
- Voice: announcements, TTS pipeline, on-demand AMBE playback, recording.
- Echo playback entrypoint (
adn-server.py --echo,adn-echo.yaml) for TG 9990. - Monitor report TCP: HELLO JSON (mode v2), CONFIG_SND / BRIDGE_SND (pickle), BRDG_EVENT.
- Hot reload:
adn-server.yaml(SIGHUP),adn-voice.yaml(15 s loop), log reopen (SIGUSR2). - MkDocs user guide (EN/ES).
Fixed (highlights since parity baseline)
- OpenBridge packet control and ingress timing.
- Echo playback sequence preservation on long QSOs.
- Config validator accepts numeric MMDVM option fields in YAML.
- OBP END/TX reporting and STATUS lifecycle alignment with legacy.
Compatibility
- Monitor: adn-monitor 1.0.0 (HELLO v2 + legacy pickle report).
- Config: use
adn-server.example.yamlas template; production YAML is not committed. - Wire: HBP and OpenBridge on-wire formats unchanged vs legacy ADN DMR Server.