From bfcb72b9c9af6094a297fb695bbb9cbf0150dd8c Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 1 May 2026 19:08:54 +0000 Subject: [PATCH] Release v1.0.2 Bump version from 1.0.1 to 1.0.2 across pyproject.toml, src/dvoacap/__init__.py, the README badge/header, and the INSTALL_GUIDE expected-output samples. Add a CHANGELOG entry summarising the 1.0.2 contents: * Long-path signal/SNR fix (PR #137). * TX power propagation to user-added antennas (PR #137). * Dashboard-button SyntaxError fix (PRs #134, #135). * Smooth analytic gray-line band (PR #136). * Regression tests for the prediction engine (PR #137). * Dashboard packaged as installable subpackage with dvoacap-dashboard CLI entry point (PR #133). Historical references to v1.0.1 in CLUB_PRESENTATION, NEXT_STEPS, PRESENTATION_GUIDE, KNOWN_ISSUES_CORRECTED, RELEASE_NOTES_v1.0.1.md, and GITHUB_RELEASE_v1.0.1.md deliberately left untouched -- they describe past releases. https://claude.ai/code/session_01BLfWHK9hf8k4aBBaQjfQa8 --- CHANGELOG.md | 17 +++++++++++++++++ INSTALL_GUIDE.md | 6 +++--- README.md | 8 ++++---- pyproject.toml | 2 +- src/dvoacap/__init__.py | 2 +- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dd14cb..d708385 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.0.2] - 2026-05-01 + +### Fixed + +- **Long-path signal/SNR calculation** - For HF paths longer than 7000 km, the engine was mixing in an unimplemented `_evaluate_long_model` stub that returned an empty `Prediction()`. The smooth-interpolation branch in `_combine_short_and_long` then pulled `power_dbw` toward 0 dBW and back-derived a nonsensically small `total_loss_db`, producing constant `-0.7 dBW` signal levels and SNRs of +150 dB or worse for any region beyond 7000 km, with reliability pinned at 100%. Paths beyond 10000 km returned all-zero predictions outright. Until a real long-path model exists, the short-path result is used at all distances. (#137) +- **TX power propagation to user-added antennas** - `params.tx_power` was stamped onto `current_antenna` once before the per-frequency loop, where `current_antenna` still pointed at the isotropic default. `select_antenna()` then swapped in the user antenna whose `tx_power_dbw` came from its constructor, leaving a 100 W radio configuration treated as 10 W (a 10 dB undercount). The assignment now happens inside the loop after antenna selection. (#137) +- **Dashboard buttons unresponsive** - A duplicate `const now` declaration inside `initializeDashboard()` (and again inside its `setInterval` callback) caused a `SyntaxError` that prevented the entire `