Implemented SQLite storage for senders, tracks, and waypoints, including startup initialization.
Added loading of recent historical data at startup.
Added pruning support so deleted/simplified waypoints are also removed from storage.
Unified multiple connection config types into a generic network config model.
Renamed and generalized flight-centric models to track-centric models for broader protocol support.
Added local user identifier support.
Performance Improvements
Improved draw performance by separating static and dynamic map layers.
Split current vs expired track rendering paths to reduce unnecessary redraws.
Reduced observability overhead by using snapshot-based updates where appropriate.
Added track/path simplification and caching optimizations.
Added compressed map resource packaging with automatic decompression at launch.
Tuned refresh/storage behavior to reduce CPU load in high-volume scenarios.
Bug Fixes & Stability
Fixed multiple zoom and projection edge cases, including over-zoom NaN states and geospatial projection issues.
Fixed several connection stability issues, including reconnect loops and concurrent read/reconnect races.
Fixed history loading and serialization issues that affected deterministic data handling.
Fixed UI routing and state bugs in connection setup and layer visibility behavior.
Fixed iOS/macOS build and launch configuration issues encountered during platform iteration.
Fixed map presentation issues, including safe-area border artifacts and stale info refresh behavior.
Improved inactive track handling and drawing order so newer activity is prioritized visually.
Notes
Boundary simplification for state/country polygons was explored for performance, but naive simplification was disabled to preserve shared-border correctness.
This release notes document focuses on end results rather than intermediate refactor steps.