mirror of
https://github.com/pe1hvh/meshcore-gui.git
synced 2026-11-03 11:02:30 +01:00
WHAT Repeater statistics polls now retry within the same poll instead of recording a failure after a single session. REPEATER_POLL_MAX_ATTEMPTS (default 5) and REPEATER_POLL_RETRY_DELAY (default 5.0) control the budget. The login/status/logout sequence moved into a private _attempt_session(); _poll_one() drives the loop and writes exactly one archive record carrying the new "attempts" field and the last error. A missing password is not retried. Version bumped to 1.24.2; the stale __version__ = "5.0" in __init__.py was aligned with config.VERSION. WHY Polls fail at irregular intervals with no established root cause. This is an explicit workaround: retrying recovers readings now, while the attempt count makes the underlying failure rate measurable so the real cause can be identified from data instead of guessed at. NOTES No API or schema break — add_measurement() gained a keyword argument with a default, and "attempts" is an added field that older records simply lack. A poll blocks the worker loop for its full duration, so worst-case command latency rises from roughly 60 seconds to roughly three minutes for a repeater that never answers. Airtime rises proportionally: up to five login/logout round trips per failing poll.