mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-03 12:46:49 +02:00
Fix beta updates shown when disabled (#731)
Daily beta build tags (e.g. v0.2.3b1-daily.20260316) were not detected as prereleases because parse_version() only checked the last dot-separated segment for letters. The daily date suffix is purely numeric, so it passed the stable release check. Now checks the entire version string for prerelease markers.
This commit is contained in:
@@ -183,6 +183,7 @@ All notable changes to Bambuddy will be documented in this file.
|
||||
- **Prometheus Build Info Metric** ([#633](https://github.com/maziggy/bambuddy/pull/633)) — Added a `bambuddy_build_info` gauge metric to the Prometheus metrics endpoint, exposing the application version, Python version, platform, and architecture as labels. Follows the standard Prometheus `_build_info` convention for dashboards and version-change alerting. Contributed by @sw1nn.
|
||||
|
||||
### Fixed
|
||||
- **Beta Updates Shown When Disabled** ([#731](https://github.com/maziggy/bambuddy/issues/731)) — Daily beta builds (e.g. `v0.2.3b1-daily.20260316`) were offered as updates even with "Include beta versions" toggled off. The version parser only checked the last dot-separated segment for prerelease markers, but daily build tags put the beta indicator (`b1`) earlier with a numeric date suffix as the last segment. Now checks the entire version string. Reported by @Teolhyn.
|
||||
- **Debug Logging Endpoint 500 Error** — The `GET /api/v1/support/debug-logging` endpoint returned a 500 Internal Server Error when the database contained a timezone-aware timestamp written by a previous version. The duration calculation subtracted a timezone-aware datetime from a naive `datetime.now()`, raising `TypeError`. Now strips timezone info when reading the stored timestamp.
|
||||
- **Bed Cooled Notification Never Fires** ([#497](https://github.com/maziggy/bambuddy/issues/497)) — The bed cooldown monitor always timed out after 30 minutes without sending a notification. After print completion, P1S (and likely other models) sends partial MQTT status updates that don't include `bed_temper`, so the cached bed temperature stayed frozen at the end-of-print value and never dropped below the threshold. The monitor now sends periodic `pushall` commands to the printer to force fresh temperature data. Also added debug logging to the polling loop for future diagnostics.
|
||||
- **Notification Provider Missing Event Toggles on Create** ([#497](https://github.com/maziggy/bambuddy/issues/497)) — When creating a new notification provider, the `on_bed_cooled` toggle and all 7 queue event toggles (`on_queue_job_added`, `on_queue_job_assigned`, `on_queue_job_started`, `on_queue_job_waiting`, `on_queue_job_skipped`, `on_queue_job_failed`, `on_queue_completed`) were silently discarded. The create endpoint manually listed each field but omitted these 8 toggles, so they always defaulted to `false` regardless of user selection. Editing an existing provider worked correctly.
|
||||
|
||||
@@ -99,8 +99,8 @@ def parse_version(version: str) -> tuple:
|
||||
micro = int(match.group(4)) if match.group(4) else 0
|
||||
prerelease_num = int(match.group(5)) if match.group(5) else 0
|
||||
|
||||
# Check if this is a prerelease (has b/beta/alpha/rc suffix)
|
||||
is_prerelease = 1 if re.search(r"[a-zA-Z]", version.split(".")[-1]) else 0
|
||||
# Check if this is a prerelease (has b/beta/alpha/rc/daily suffix anywhere)
|
||||
is_prerelease = 1 if re.search(r"[a-zA-Z]", version) else 0
|
||||
|
||||
return (major, minor, patch, micro, is_prerelease, prerelease_num)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user