Commit Graph

4895 Commits

Author SHA1 Message Date
pulse-triage[bot] 7cbde2e3bf Keep observed unacknowledged alerts through retention cleanup
Age-based housekeeping deleted continuing conditions when automatic acknowledgement was disabled. Require last-observation inactivity as well as occurrence age, retain legacy timestamp fallback and inactive cleanup, and document the unchanged acknowledgement/recovery boundaries. Regression exercises cached, absent and failed Docker registry reports, callback/history identity and actual checkpoint restart.

Change-source: pulse-maintainer
2026-10-01 01:26:14 +01:00
pulse-triage[bot] 0dc858cb36 Integrate reviewed keyboard and touch History inspection
Preserve exact reviewed candidate d38e2ec61a and retain both History and update-progress browser evidence. Only the shared receipt file needed resolution; frontend runtime content matches the candidate receipt.

Change-source: pulse-maintainer
2026-10-01 01:13:28 +01:00
pulse-triage[bot] 4824d1067e Integrate reviewed bounded alert checkpoint worker
Change-source: pulse-maintainer
2026-10-01 00:51:00 +01:00
pulse-triage[bot] 5dea312f2b Bound asynchronous alert checkpoints during bursts
Coalesce full active-alert snapshots into one worker and one requested follow-up instead of queueing a goroutine per mutation. Preserve immediate lifecycle durability, fresh snapshots, failure recovery and the final shutdown save; reproduce the old burst amplification and validate the new admission and persistence boundaries.

Change-source: pulse-maintainer
2026-10-01 00:28:53 +01:00
pulse-triage[bot] 9093cc881d Integrate reviewed exact-source release watchdog
Preserve the fixed no-publication envelope, component verdicts and reviewed Delivery commit identities.

Change-source: pulse-maintainer
2026-10-01 00:28:33 +01:00
pulse-triage[bot] d38e2ec61a Make drawer History inspectable by keyboard and touch
Expose existing stored history through labelled native observation controls and dated accessible descriptions. Keep missing samples distinct from live or neighbouring readings, preserve the selected timestamp through refreshes and reset selection at resource/range boundaries. Cover input state and real native browser interaction without changing collection or licence gates.

Change-source: pulse-maintainer
2026-10-01 00:28:29 +01:00
pulse-triage[bot] d80b49835c Incorporate newly landed update-progress repair
Preserve accepted History recovery and current upstream ancestry after the publication boundary detected an upstream advance. Resolve the browser receipt collision by retaining both original parent-bound records without claiming new browser execution.

Change-source: pulse-maintainer
2026-10-01 00:11:24 +01:00
courtmanr@gmail.com 119ac49d10 Keep the update progress modal moving when the update stream goes quiet
Updating to v6.4.5-rc.5 and then v6.4.5 left the progress modal on
"Downloading update... 10%" even though the update finished in the
background. The status stream could go silent behind a proxy (Tailscale
Serve, nginx buffering) and the modal only advanced on stream events.

Backend: the update SSE endpoint now sends the current status on connect,
writes events through one ordered writer with an explicit flush, sends a
15s heartbeat and sets X-Accel-Buffering: no.

Frontend: a silence watchdog falls back to status polling, the restart
phase is entered only on real restart evidence (restarting status, the
server going away, or a version change) rather than a single failed poll,
and the page never auto-reloads on unconfirmed completion without a
pre-update version baseline to compare against.
2026-09-30 23:39:35 +01:00
pulse-triage[bot] 0d3e5a801a Integrate reviewed History refresh recovery
Retain matching History through failed refreshes and settle superseding reads. Preserve the exact reviewed frontend commit and its browser receipts.

Change-source: pulse-maintainer
2026-09-30 23:28:59 +01:00
pulse-triage[bot] 40037f0035 Bind on-demand release watchdogs to reviewed main
Retain the scheduled governed-source selection and no-mutation demo verdict in a separate fixed dispatch mode. Check its control SHA and candidate-free envelope before checkout, preserve ordinary rehearsal rollback and exact event-source guards, and skip candidate builds.

Change-source: pulse-maintainer
2026-09-30 23:27:54 +01:00
pulse-triage[bot] 744160fa0e Keep drawer History usable through failed refreshes
Retain only matching stored observations with an explicit refresh-failure warning and a keyboard-safe scoped retry. Settle latest-read loading when polling overtakes a foreground refresh. Preserve target isolation, licence gates and diagnostic containment with regressions and exact-content browser receipts.

Change-source: pulse-maintainer
2026-09-30 23:02:05 +01:00
pulse-triage[bot] 66ec68c813 Incorporate batch-start upstream main
Change-source: pulse-maintainer
2026-09-30 22:32:19 +01:00
pulse-triage[bot] 4b2b469b68 Integrate reviewed bounded dual-stack service-health repair
Change-source: pulse-maintainer
2026-09-30 22:19:22 +01:00
pulse-triage[bot] 781cbfa98e Integrate reviewed drawer History source isolation
Change-source: pulse-maintainer
2026-09-30 21:42:48 +01:00
pulse-triage[bot] fffaa64e57 fix(server): make local service-health probes dual-stack and bounded
Try both loopback families for IPv6 wildcard listeners without changing explicit or IPv4-only binds. Reserve each family a share of the API deadline, keep all later checks on the responding address, and retry a failed observation once with a fresh bounded budget in the telemetry background runner.

Keep genuine API, UI and asset failures visible and report only a closed timeout category, never transport details. Cover both real listener families, startup recovery, failure and privacy boundaries; synchronise the disclosure and subsystem contract.

Change-source: pulse-maintainer
2026-09-30 21:36:39 +01:00
pulse-triage[bot] ac67b2375d Integrate reviewed scoped updater guidance validation
Preserve exact Delivery candidate identity and retain the current canonical TrueNAS repair.

Change-source: pulse-maintainer
2026-09-30 21:17:23 +01:00
pulse-triage[bot] 4ba830bfd3 Keep drawer History scoped to its current target and range
Use the existing non-suspending query's source-isolation option so an uncached target or range cannot display or cache former-host observations. Forward AbortSignal to the Charts API without changing matching-cache or same-source polling behaviour.

The assigned-base VM regression has six failures, including former-host cache contamination; the final mock-backed PBS browser check covers delayed reads, withdrawal, failure, late response and locked ranges at desktop and phone widths. Update the shared frontend contract with real renderer/cancellation regressions. Installed #1723 acceptance and the separate exact-graph security repair remain unresolved.

Change-source: pulse-maintainer
2026-09-30 21:12:44 +01:00
courtmanr@gmail.com 6ad6e18d53 Raise brace-expansion and DOMPurify past current advisories
GHSA-q2hr-2g5m-vwhr (brace-expansion quadratic {a},b} rewrite, below
1.1.21 and 4.0.0-5.0.11) fails the required frontend dependency audit on
every pull request. Move the locked copies to 1.1.21 and 5.0.12, and
DOMPurify from 3.4.15 to 3.4.16 for GHSA-p98j-92pf-mc4p (IN_PLACE
afterSanitize hook XSS). Lockfile only; the dependency security floors
move with it.
2026-09-30 20:45:07 +01:00
pulse-triage[bot] 9d77f09b4f Reject unscoped server updater commands in release bodies
Keep the existing signed installer fallback and require nearby Pulse helper ownership for every install and rollback example, including authored bullets. A distant community-scripts warning must not make an unsafe command publishable.

Change-source: pulse-maintainer
2026-09-30 20:28:17 +01:00
pulse-triage[bot] 21a35494ae fix(truenas): request supported reporting aggregations
Use TrueNAS default summaries for reporting queries so SCALE 25.04 can validate its History responses. Preserve raw samples, time windows, CORE live telemetry and existing error boundaries.

Refs #2346

Change-source: pulse-maintainer
2026-09-30 19:48:10 +01:00
pulse-triage[bot] a919a84a26 Integrate reviewed allocation-bounded snapshot and metadata maintenance
Change-source: pulse-maintainer
2026-09-30 14:00:19 +01:00
pulse-triage[bot] 6ef79688a5 Keep positive npm advisory evidence fail-closed
A missing or zero total must not erase package or severity findings. Require a complete typed zero verdict, retain bounded outage handling for unknown reports, and keep raw metadata out of workflow annotations. Add executable regression coverage and update the installability contract.

Change-source: pulse-maintainer
2026-09-30 13:23:29 +01:00
pulse-triage[bot] 901274ee92 Reduce snapshot and clone allocations without trusting ID hints
Batch WebSocket identity decoding from the encoded arrays and retain decoder-owned entry buffers. Keep canonical metadata refresh on every resource clone while replacing membership maps with small scope slices and a single sensitivity-tag scan. Preserve delta identity, scope ordering, policy precedence and clone isolation with reference/fuzz and transition tests.

Adapt the remaining performance work proposed in Pulse PR #2342 for issue #2199. The contributor's first-ID check cannot verify a stale tail; this candidate uses standard JSON decoding for every encoded identity instead. Keep the imported contributor history and branch unchanged.

Co-authored-by: Andy Prosser <andy.prosser@icloud.com>
Based-on: https://github.com/rcourtman/Pulse/pull/2342
Original-Commit: 0cbfa43186
Change-source: pulse-maintainer
2026-09-30 13:21:56 +01:00
pulse-triage[bot] feba5d3fd4 Integrate reviewed bounded npm advisory diagnostics
Change-source: pulse-maintainer
2026-09-30 08:35:19 +01:00
pulse-triage[bot] 173290127a Keep npm advisory diagnostics bound to the original verdict
Render escaped, allowlisted details from the captured audit response instead of making a second registry call outside the wall-clock watchdog. Preserve every advisory failure and outage policy; executable fixtures pin single-request diagnostics, missing detail, transport-error precedence and annotation-safe output.

Change-source: pulse-maintainer
2026-09-30 08:13:11 +01:00
pulse-triage[bot] ffc44a0f8c Honour configured alert flapping thresholds above ten
A fixed ten-entry history made accepted higher thresholds unreachable and silently disabled storm suppression. Bound retained observations to the configured threshold while preserving the existing diagnostic allowance, expiry and one-shot cooldown. Verify normal config updates, callback admission, delivery diagnosis, window expiry, rearming and threshold changes, and register the focused proof owner.

Change-source: pulse-maintainer
2026-09-30 08:12:35 +01:00
pulse-triage[bot] a0081d676b Keep PBS Agent identity fresh and reject host-local IP matches
Direct PBS host correlation could lend Agent History and SMART ownership through loopback, Docker-local or stale address evidence, and a stale Agent could block its fresh replacement. Reuse the provider address filter and the five-minute observation boundary, preserve IPv6 URL hosts, and cover unsafe evidence, private management controls, link replacement and the three-PBS/nine-Agent topology.

Change-source: pulse-maintainer
2026-09-30 00:36:07 +01:00
pulse-triage[bot] 2ad36fe4d1 Reject PBS connection labels as Agent identity
A user-chosen PBS label could attach an unrelated Agent before the exact guest-IP/Agent link was evaluated, putting host History and SMART ownership on the wrong server. Use reported node and endpoint evidence instead, and cover both the collision and label-only cases.

Change-source: pulse-maintainer
2026-09-29 23:52:56 +01:00
pulse-triage[bot] c3e8b6dd6d Integrate reviewed PBS guest Agent correlation
Change-source: pulse-maintainer
2026-09-29 23:40:59 +01:00
pulse-triage[bot] 3ab4183d82 Integrate reviewed Docker update action outcome
Change-source: pulse-maintainer
2026-09-29 23:40:43 +01:00
pulse-triage[bot] 4363493597 Correlate PBS guest agents through fresh PVE IP evidence
When a PBS API token cannot report nodeName and the in-guest Agent omits interface addresses, use a unique running PVE VM at the exact PBS endpoint IP plus its state-owned Agent link. Reject stale or ambiguous observations instead of guessing from display names. This restores the source-native host target for corroborated PBS VMs while preserving the separate PBS service target.

Change-source: pulse-maintainer
2026-09-29 23:28:27 +01:00
pulse-triage[bot] dcb9399cec Keep governed Docker updates pending until their action outcome is known
Do not infer success from a registry badge clearing while a receipt is pending. Keep the action review reachable from the row, preserve inconclusive outcomes, and show completion only from the recorded audit. Add focused state tests and desktop/phone browser proof.

Change-source: pulse-maintainer
2026-09-29 23:18:14 +01:00
pulse-triage[bot] 5e57a07780 Record PBS node status in service History
Persist measured PBS CPU and memory on the service metrics target when node status succeeds. Keep host-agent history separate and avoid false samples on unavailable status. Cover service reads, denial and recovery.

Change-source: pulse-maintainer
2026-09-29 22:53:25 +01:00
pulse-triage[bot] 91d8822d76 Pin hosted Go builders to refreshed 1.26.8 image
Advance the provider control-plane source builder and integration mock builder
on Pulse PR #2275's reviewed 1.26.8 Alpine digest. Keep their exact compiler
image locked by an installability proof and record what this does not qualify.
The published prebuilt runtime path is unchanged.

Change-source: pulse-maintainer
2026-09-29 22:36:18 +01:00
pulse-triage[bot] 75d72f5868 Integrate Core symptom notification recovery
Change-source: pulse-maintainer
2026-09-29 22:04:42 +01:00
pulse-triage[bot] fd9e836ca4 Notify continuing symptoms after primary recovery
A supported endpoint failure may outlive its primary host incident. When synthesis removes the supported cause, dispatch its first independent notification without reopening the occurrence or duplicating a symptom previously notified before grouping.

Change-source: pulse-maintainer
2026-09-29 21:18:19 +01:00
pulse-triage[bot] e57bb692ae Integrate Actions review request ownership
Change-source: pulse-maintainer
2026-09-29 21:17:53 +01:00
pulse-triage[bot] 90556cc1fc Correct alert contract test attribution
The supported-cause escalation and queued callback tests live in incident_synthesis_test.go, not escalation_policy_change_test.go. Keep the verification contract aligned with the actual test file.

Change-source: pulse-maintainer
2026-09-29 21:06:40 +01:00
pulse-triage[bot] ba298b29e2 Guard Actions review against stale responses
Keep route-selected action details and inbox tabs bound to their latest reads so delayed replies cannot replace a newer review or reopen one after close. Preserve server-authored identity and prove the overlap in focused tests and responsive browser navigation.

Change-source: pulse-maintainer
2026-09-29 20:52:24 +01:00
pulse-triage[bot] 38b66ad000 Keep supported symptoms out of escalation delivery
A verified primary infrastructure alert already owns the initial notification for its supporting symptoms. Apply that same ownership to scheduled escalation, queued callback admission, and quiet-hours replay so a late duplicate cannot be sent. Preserve independent escalation for uncorroborated observation sets.

Change-source: pulse-maintainer
2026-09-29 20:51:42 +01:00
pulse-triage[bot] 094059db6c Integrate pending action receipt review improvement
Change-source: pulse-maintainer
2026-09-29 20:22:12 +01:00
pulse-triage[bot] a1b7e9d5d8 Make pending action receipts safely refreshable
Show an unknown-outcome warning for every receipt-pending review and offer a same-action status re-read without another dispatch. Keep aged audit closure behind its existing admin and server gates, and cover desktop and phone interactions.

Change-source: pulse-maintainer
2026-09-29 20:10:56 +01:00
pulse-triage[bot] 82cdcd8f61 Keep monitor-only alerts out of escalation and replay
Treat monitor-only as terminal before quiet-hours replay and flapping, and reject scheduled or queued escalations when the current alert is monitor-only. Align firing, recovery and delivery diagnosis with that policy; cover ordinary and critical-repeat scheduling plus a policy change after callback queueing.

Change-source: pulse-maintainer
2026-09-29 20:06:55 +01:00
pulse-triage[bot] e2430fb759 Stop operator-suppressed alerts before delivery dispatch
Keep resource maintenance, mute and expected-offline policy terminal in the internal alert callback path. Quiet-hours deferral remains replayable, while delivery diagnosis and event history report the actual operator suppression. Cover pre-reconciliation active alerts and unaffected performance signals.

Change-source: pulse-maintainer
2026-09-29 19:35:43 +01:00
pulse-triage[bot] a5aa881ac5 Treat resource identity lists as sets in change history
Avoid configuration-history rows when source merges only reorder identity addresses or represent an absent list as empty. Real identity changes remain recorded. The #2319 serial-bearing disk fixture and registry-generation check cover the tags-only and no-op identity paths.

Change-source: pulse-maintainer
2026-09-29 19:11:39 +01:00
pulse-triage[bot] 0204fe000f Keep Agent-only SMART disks out of PVE poll readback
Linked Agent SMART disks inherit a PVE instance for presentation. Restrict skipped-poll readback to actual PVE observations so an empty disks/list cannot alternate fabricated inventory, tags and history rows. Pin repeated cycles and the source boundary in the monitoring contracts.

Change-source: pulse-maintainer
2026-09-29 18:16:44 +01:00
pulse-triage[bot] 41bee3d475 Integrate PBS mixed-source History repair
Change-source: pulse-maintainer
2026-09-29 17:54:16 +01:00
pulse-triage[bot] 5e7c6bb7d9 Restore PBS History for mixed Agent and PVE sources
Preserve the registry-corroborated PBS-to-Agent link on the service row while selecting the Agent host metrics target in the Backups drawer. Reject PVE-only name collisions and retain the target through a transient missing host row. Recompose the unchanged #1723 runtime repair on current main with fresh desktop and phone browser proof.

Change-source: pulse-maintainer
2026-09-29 17:43:53 +01:00
pulse-triage[bot] d7baa07dad Compose scoped Proxmox repair with protected main frontier
Retain the verified #2321 source and its original receipt while incorporating upstream release and browser range validation.

Change-source: pulse-maintainer
2026-09-29 17:36:27 +01:00
pulse-triage[bot] b12dca9cd8 Integrate scoped Proxmox tab evidence on current main
Preserve the browser-verified #2321 repair and current protected Relay changes in separate ancestry. Resolve the shared receipt to the current main version; both proofs remain in their original non-merge commits.

Change-source: pulse-maintainer
2026-09-29 17:35:52 +01:00