feat(settings): attribute override validation, time format preference, and bug fixes#481
Conversation
The release notes script excluded develop->master PRs to avoid duplicating individual develop PRs. But when features are pushed directly to develop (no PR), the integration PR is the only record. Now captures integration PRs as a primary source and deduplicates individual develop PRs that are already covered.
- Reset HAS_PROSE_DESC per PR to prevent stale state across iterations - Guard grep pipelines with || true to survive set -e on no matches - Categorize chore(deps) as Dependencies and chore(ci/docker) as CI/CD instead of silently dropping all chore-prefixed PRs - Strip \r from PR bodies before parsing (GitHub uses \r\n) - Bump gh pr list limit from 100 to 200
## Summary - Close InfluxDB `QueryTableResult` at all 11 query call sites to prevent HTTP response body leaks on early returns - Close HTTP response body in `InfluxSetupComplete` health check - Cap InfluxDB TSM cache memory in omnibus mode (256MB max, 25MB snapshot threshold) to prevent unbounded growth ## Linked Issues Closes #419 ## Test plan - [x] `go vet ./webapp/backend/...` passes - [x] `go test ./webapp/backend/...` passes - [ ] Deploy to dev environment and monitor memory usage over 24-48 hours
chore(ci): bump GitHub Actions versions
chore(deps): bump Go dependencies
chore(deps): bump frontend dependencies
Replace last(column: "device_wwn") with tail(n: 1) in the device summary Flux query. After group(columns: ["device_wwn"]), the device_wwn column moves into the group key and is no longer available as a regular column, causing last() to fail with "no column device_wwn exists" on certain InfluxDB configurations. tail(n: 1) achieves the same result -- selecting the most recent record per device group from the already time-sorted data -- without referencing a specific column.
…443) Remove overflow-hidden from the temperature chart card so the shared tooltip is no longer clipped at the card boundary. This fixes both the missing spike value (tooltip entries were hidden below the card edge) and the truncated device label. Add white-space: nowrap scoped to the temperature chart wrapper to ensure long device names display in full.
…oses, no separators)
) Gotify deployments on port 80/8080/8008 use plain HTTP, but the shoutrrr library defaults to HTTPS. normalizeGotifyURL() detects these ports and injects disabletls=Yes before the URL reaches shoutrrr, so HTTP-only Gotify installs receive notifications without requiring manual URL changes. Also documents both HTTPS and HTTP Gotify URL formats in example.scrutiny.yaml.
Increase dialog width from 600px to 800px with 95vw max, and remove overflow-hidden from the inner container that was clipping the SMART attribute overrides form fields.
Default action changed from empty string (Custom Threshold) to 'ignore' so users are not forced to provide threshold values immediately. Adds a guard in addOverride() and the button disabled condition to block submission when action is empty but no warn_above/fail_above is set, matching the backend validation requirement. Closes #476
… (#480) ## Summary - Disables Add Override button when action is `force_status` but no status is selected - Adds guard in `addOverride()` to abort when `force_status` has no status - Adds guard to abort when Custom Threshold has `warn_above >= fail_above` Both scenarios were accepted by the frontend but rejected by backend validation with a 400, unaddressed by the previous fix in #477. ## Linked Issues Closes #476 ## Test plan - [ ] Select Force Status action, leave status empty — button is disabled - [ ] Select Custom Threshold, set warn_above >= fail_above — form does not submit - [ ] All previously working override actions (Ignore, valid Force Status, valid Custom Threshold) still submit successfully
Starosdev
pushed a commit
that referenced
this pull request
Apr 30, 2026
## [1.52.0](v1.51.0...v1.52.0) (2026-04-30) ### Features * **settings:** attribute override validation, time format preference, and bug fixes ([#481](#481)) ([4218085](4218085)), closes [#445](#445) [#476](#476) [#480](#480) [#475](#475) [#472](#472) [#443](#443) [#418](#418) [#419](#419) [#423](#423) [#476](#476) [#475](#475) [#472](#472) [#443](#443) [#418](#418)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
force_statuswithout status, orwarn_above >= fail_above([BUG] Adding Overrides Fails #476, fix(settings): block override submission for remaining 400 cases (#476) #480)disabletls=Yesfor Gotify URLs on HTTP ports ([BUG] Gotify notification Not working? #472)insecure_skip_verifyoption for Uptime Kuma self-signed TLS (Does Uptime Kuma Push require a valid TLS? #418)device_wwncolumn in summary query ([BUG] GUI Hangs after Last Disk Loads #423)Linked Issues
Closes #476
Closes #475
Closes #472
Closes #443
Closes #418
Test plan