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.
4.1 KiB
4.1 KiB
Changelog
All notable changes to adn-server are documented here. Versioning follows SemVer.
[Unreleased]
Added
- SIGHUP reload reapplies YAML static TGs via
apply_startup_subscriptions()when SYSTEMS change. - Store-native timer loops (
rule_timer,stat_trimmer,bridge_debug,bridge_reset) and in-band signalling. - Store-native bridge table (OPTIONS, static TG, reflectors, UA) and OBP source ensure.
InbandTriggers(ON/OFF/RESET) onSubscriptionwith import/export round-trip.to_targetiteratesForwardLegfromSubscriptionRouter.resolve()instead of re-scanning BRIDGES rows.
Changed
SubscriptionStoreis required at runtime; bridge timers, OPTIONS, and table paths mutate the store only.BRIDGESis an export shim for monitor/report (export_routing_table); no direct dict mutation in hot paths._export_store_to_router()publishes store mutations without router→store overwrite (timer/in-band paths).
Fixed
- Parrot TG 9990: seed echo bridges into
SubscriptionStoreat bootstrap; arm ON rules on VHEAD. - Dashboard peers without RPTO inherit
TS1_STATIC/TS2_STATICfrom the MASTER YAML. - Inject-only monitor remap: sole connected hotspot receives dynamic UA downlink when a bridge leg is ACTIVE.
Removed
- Periodic 26s
options_config_loop(V2-P2-016): OPTIONS/static TGs covered by RPTO, startup/reload, and dmrd fallback. - Runtime
replace_store_from_routing_tablecalls in bridge timers and OPTIONS paths (store-native slice 6).
[2.0.0-alpha.2] - 2026-06-11
Subscription runtime (phase 2b/2c) closed for production Chile.
Added
- Subscription store always wired at runtime;
SubscriptionRouteris the voice resolve path. MeshCodecRegistryon OpenBridge ingress/egress (phase 2c).
Changed
- Removed YAML flags
USE_SUBSCRIPTION_ROUTERandUSE_SUBSCRIPTION_STORE_AUTHORITY; rollback via git tags only. routing_table_for_report()mirrors router state into the store before export (report/monitor shim).
Fixed
- OBP → HBP voice: sync store before subscription resolve (
c10f7f8). - TG 4000: clear dynamics once per PTT, scoped to transmitting peer (inject-only).
[2.0.0-alpha.1] - 2026-06-10
Phases 0–4 + 3b GA baseline (tag v2.0.0-alpha1 alias retained).
Added
adn-server.py --doctor— validate config, UDP/TCP bind ports, PEER upstream andMESH_PROTOCOL.- Integrated proxy fan-in, self-service MySQL OPTIONS, monitor slim report wire.
Changed
- Parrot: integrated in
adn-server.py --parrot; minimaladn-parrot.yaml(PEER → ECHO MASTER). - Runtime wiring moved to
infrastructure/bootstrap/peer_server.py;main.pyis CLI-only (<200 lines).
Removed
adn-parrot.pyandparrot_main.py— useadn-server.py --parrotinstead.
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.
- Parrot entrypoint (
adn-parrot.py) for TG 9990 echo/playback. - 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.
- Parrot 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.