Commit graph

3418 commits

Author SHA1 Message Date
rcourtman
b204bed8c7 Fix release/5.1 LXC installs defaulting to RC
Some checks failed
Build and Test / Secret Scan (push) Has been cancelled
Build and Test / Frontend & Backend (push) Has been cancelled
Core E2E Tests / Playwright Core E2E (push) Has been cancelled
Refs #1435
2026-04-21 17:18:42 +01:00
rcourtman
9fe622b885 Defer QNAP autorun until encrypted volume unlocks (Fixes #1422)
QNAP's autorun.sh fires well before encrypted data volumes are
unlocked, so the previous one-line entry that invoked
start-pulse-agent.sh on the encrypted volume failed immediately —
the wrapper did not exist yet, and the agent never started after
reboot.

Replace the entry with a backgrounded waiter that polls for the
wrapper (every 2 s, up to 30 min) and execs it once the volume
comes up. On unencrypted volumes the loop exits on the first
check, so behaviour is unchanged. A timeout message is logged to
/var/log/pulse-agent.log if the volume never unlocks within the
window. The block is uninstall-safe: no internal blank lines, so
the existing sed marker-to-blank-line range still removes it
cleanly.
2026-04-17 11:46:23 +01:00
rcourtman
7e4d4e07bf Persist QNAP agent updates to data volume (Fixes #1420)
On QNAP, /usr/local/bin is a tiny RAM disk that gets wiped on every
reboot. The install wrapper stores the real binary under
${QNAP_VOL}/.pulse-agent/<name> and a boot script copies it back into
/usr/local/bin. Without refreshing the stored copy, auto-updates applied
to the RAM disk were silently reverted on the next reboot.

Mirror the Unraid persistence pattern: after the atomic in-place swap,
when running on QNAP, rewrite the stored binary via a temp-file rename.
Skip when the running binary already is the persistent copy (fallback
mode, where the rename step already updated it).
2026-04-17 11:44:17 +01:00
rcourtman
8c8641e5f2 Merge unified host/docker rows when IDs diverge (Fixes #1421)
The host-side identifier path applies sanitizeDockerHostSuffix before
storing Host.ID, while the docker-side uses AgentKey() raw. For a QNAP
unified agent those two derivations can produce different IDs, so the
UnifiedAgents merge keyed on d.id === h.id split the single install
into two rows.

Add a 1:1 hostname fallback: if exactly one unmerged host row and one
unmerged docker row share the same hostname, merge them. The strict
1:1 constraint prevents distinct machines that happen to share a
hostname from being collapsed together.
2026-04-17 11:38:39 +01:00
rcourtman
6bc3d30548 Preserve Proxmox guest drawer state across refresh ticks
Dashboard's group-level <For> iterated over Object.entries(groupedGuests()).sort(...),
which produces brand-new tuple arrays on every refresh. Solid's <For> diffs by
reference, so every tick it destroyed and recreated all child rows — wiping out
GuestDrawer's activeTab signal (snapping Discovery back to Overview), graph
hover tooltips, and scroll position inside the expanded row.

Iterate over a memoized array of instance-ID strings instead. Primitive equality
keeps the outer For stable, so only the guest data inside each group updates
on each tick and the drawer's local state survives.

Fixes #1427
2026-04-17 11:15:50 +01:00
rcourtman
e1011230b9 Align infra discovery with Patrol interval
The infra discovery service auto-started with a hardcoded 5-minute
ticker the moment the AI service initialized, regardless of the user's
Patrol schedule. Each tick called AnalyzeForDiscovery, which hit the
Ollama chat endpoint and reset Ollama's keep_alive (5 min default), so
the model never had a chance to unload between requests.

Default the discovery interval to 24h and align it with the user's
Patrol preset (GetPatrolInterval) when the AI service constructs the
discovery service. With Patrol at its 6h default, the LLM now sits idle
long enough for Ollama to release it.

Fixes #1425
2026-04-17 11:10:14 +01:00
rcourtman
4de1c3745a Preflight disk space before Pulse updates
Some checks failed
Build and Test / Secret Scan (push) Has been cancelled
Build and Test / Frontend & Backend (push) Has been cancelled
Core E2E Tests / Playwright Core E2E (push) Has been cancelled
Update Integration Tests / Update Flow Integration Tests (push) Has been cancelled
2026-04-15 20:56:58 +01:00
rcourtman
0b836aa3af Fix v5 integration update test defaults 2026-04-14 20:24:58 +01:00
rcourtman
80dfd43f8c Fix release dry-run integration image build 2026-04-14 20:06:27 +01:00
rcourtman
65670ca011 Make v5 release automation branch-owned 2026-04-14 19:48:25 +01:00
rcourtman
10d0803262 Auto-update Helm chart version to 5.1.28 2026-04-14 19:21:20 +01:00
rcourtman
3a04896e92 Auto-update Helm chart documentation 2026-04-14 19:21:20 +01:00
rcourtman
81661a934a Move v5 maintenance flow onto release/5.1 2026-04-14 18:34:41 +01:00
rcourtman
c8f1ad75cf Bump version to 5.1.28 2026-04-14 16:58:58 +01:00
rcourtman
a24af45c67 Add v6 RC announcement surfaces to v5 2026-04-14 16:51:19 +01:00
rcourtman
dfbe2eb873 Suppress noisy recovery notifications
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Core E2E Tests / Playwright Core E2E (push) Waiting to run
2026-04-13 14:40:12 +01:00
rcourtman
19b2a4e4c4 Clear stale guest per-disk alerts 2026-04-13 14:20:54 +01:00
rcourtman
efb840deae Fix installer universal bundle fallback 2026-04-13 14:13:11 +01:00
rcourtman
1f0dfd60fc Lock SAML metadata public URL refresh 2026-04-13 13:48:27 +01:00
rcourtman
5a17456a60 Fix Ceph manager standby parsing
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Core E2E Tests / Playwright Core E2E (push) Waiting to run
2026-04-13 11:57:12 +01:00
rcourtman
9fb76579cc Fix backup type-aware orphan detection 2026-04-13 11:54:46 +01:00
rcourtman
3981df57a2 Detect NAS host vendors from platform files 2026-04-13 11:25:27 +01:00
rcourtman
754aa0e39c Fix linked host agent threshold overrides
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Core E2E Tests / Playwright Core E2E (push) Waiting to run
2026-04-12 22:47:34 +01:00
rcourtman
5f3a4b79ba Fix oversized AI discovery responses 2026-04-12 22:33:48 +01:00
rcourtman
2ad288c091 Fix streamed installer entrypoint 2026-04-12 22:30:58 +01:00
rcourtman
95409985b5 Normalize vendor-managed NAS RAID arrays 2026-04-12 22:20:04 +01:00
rcourtman
a86c7120cf Debounce recovery for poll-driven offline alerts 2026-04-12 22:04:10 +01:00
rcourtman
005f64182f Respect quiet hours for escalation alerts
Apply quiet-hours suppression to escalation notifications so offline and other suppressed categories do not bypass the normal notification rules during escalation.

Fixes #1398.
2026-04-12 21:29:32 +01:00
rcourtman
be9eaa7168 Auto-update Helm chart version to 6.0.0-rc.1
Some checks failed
Helm CI / Lint and Render Chart (push) Has been cancelled
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
2026-04-12 10:52:56 +00:00
rcourtman
22f38c84d9 Fix Podman container CPU calculation
Some checks failed
Build and Test / Secret Scan (push) Has been cancelled
Build and Test / Frontend & Backend (push) Has been cancelled
Helm CI / Lint and Render Chart (push) Has been cancelled
Core E2E Tests / Playwright Core E2E (push) Has been cancelled
Prefer Podman's reported CPU percentage from the compat stats payload and fall back to Podman's wall-clock calculation instead of Docker's multi-core normalization.

Fixes #1391.
2026-04-09 16:17:12 +01:00
rcourtman
30eb9d7847 Fix repeated Docker update recovery alerts
Preserve Docker container update alerts and first-seen tracking when update status is temporarily unavailable or the registry check fails.

Fixes #1394.
2026-04-09 15:59:15 +01:00
rcourtman
d8986a0285 Prepare v5.1.27 release 2026-04-09 14:34:10 +01:00
rcourtman
205376594b Fail closed on unknown AI read commands 2026-04-09 14:33:54 +01:00
rcourtman
76c3f1ac88 test: stabilize metrics flush visibility
Some checks failed
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Core E2E Tests / Playwright Core E2E (push) Waiting to run
Update Integration Tests / Update Flow Integration Tests (push) Has been cancelled
2026-04-09 10:58:04 +01:00
rcourtman
b017f8edcd fix: remediate default branch dependency alerts 2026-04-09 10:28:54 +01:00
rcourtman
b8e534c1eb Auto-update Helm chart documentation
Some checks failed
Build and Test / Secret Scan (push) Has been cancelled
Build and Test / Frontend & Backend (push) Has been cancelled
Helm CI / Lint and Render Chart (push) Has been cancelled
Core E2E Tests / Playwright Core E2E (push) Has been cancelled
2026-04-07 10:27:02 +00:00
rcourtman
8e127a6961 Prepare v5.1.27-rc.3 release 2026-04-07 10:51:18 +01:00
rcourtman
a4834ed80f Disambiguate linked host agent alert names 2026-04-07 10:50:52 +01:00
rcourtman
e8aaf02230 Auto-update Helm chart documentation
Some checks failed
Build and Test / Secret Scan (push) Has been cancelled
Build and Test / Frontend & Backend (push) Has been cancelled
Helm CI / Lint and Render Chart (push) Has been cancelled
Core E2E Tests / Playwright Core E2E (push) Has been cancelled
2026-04-05 23:11:59 +00:00
rcourtman
92b6a732ca Prepare v5.1.27-rc.2 release 2026-04-05 23:36:51 +01:00
rcourtman
7db110e15a Preserve Proxmox node disk source over storage fallback 2026-04-05 23:35:54 +01:00
rcourtman
a2ecd4198a Validate local archive architecture 2026-04-05 23:35:54 +01:00
rcourtman
690cc94e17 Support local archives for Proxmox installs 2026-04-05 23:35:54 +01:00
rcourtman
398ef8117b Clear stale storage alerts on inventory changes 2026-04-05 23:35:54 +01:00
rcourtman
edc5a99d9b Block unspecified webhook addresses 2026-04-05 23:35:54 +01:00
rcourtman
22f8dd3bbb Normalize typed SMART device labels for temp merge 2026-04-05 23:35:54 +01:00
rcourtman
b83f717ce7 Prefer root mountpoint for ZFS summaries 2026-04-05 23:35:54 +01:00
rcourtman
678f528961 Preserve OIDC group fields on SSO updates 2026-04-05 23:35:54 +01:00
rcourtman
af486b6f55 Default legacy alert schedule settings 2026-04-05 23:35:54 +01:00
rcourtman
b524659f03 Add patrol trigger disabled-state coverage 2026-04-05 23:35:54 +01:00