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.
ADN-DMR-Peer-Server/CHANGELOG.md

99 lines
4.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Changelog
All notable changes to **adn-server** are documented here. Versioning follows [SemVer](https://semver.org/).
## [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) on `Subscription` with import/export round-trip.
- `to_target` iterates `ForwardLeg` from `SubscriptionRouter.resolve()` instead of re-scanning BRIDGES rows.
### Changed
- `SubscriptionStore` is required at runtime; bridge timers, OPTIONS, and table paths mutate the store only.
- `BRIDGES` is 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 `SubscriptionStore` at bootstrap; arm ON rules on VHEAD.
- Dashboard peers without RPTO inherit `TS1_STATIC` / `TS2_STATIC` from 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_table` calls 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; `SubscriptionRouter` is the voice resolve path.
- `MeshCodecRegistry` on OpenBridge ingress/egress (phase 2c).
### Changed
- Removed YAML flags `USE_SUBSCRIPTION_ROUTER` and `USE_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 and `MESH_PROTOCOL`.
- Integrated proxy fan-in, self-service MySQL OPTIONS, monitor slim report wire.
### Changed
- Parrot: integrated in `adn-server.py --parrot`; minimal `adn-parrot.yaml` (PEER → ECHO MASTER).
- Runtime wiring moved to `infrastructure/bootstrap/peer_server.py`; `main.py` is CLI-only (<200 lines).
### Removed
- **`adn-parrot.py`** and **`parrot_main.py`** — use `adn-server.py --parrot` instead.
## [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.yaml` as template; production YAML is not committed.
- **Wire:** HBP and OpenBridge on-wire formats unchanged vs legacy ADN DMR Server.
[1.0.0]: https://github.com/ce5rpy/ADN-DMR-Peer-Server/releases/tag/v1.0.0

Powered by TurnKey Linux.