Commit Graph

10474 Commits

Author SHA1 Message Date
pulse-triage[bot] 5add9bfc36 fix(ci): permit audited caller-only permission inheritance
The stable-install smoke body is intentionally workflow_call-only so its read-only continuity caller and draft-capable release caller can supply different explicit token budgets. Treat that exact no-override shape as an auditable permission boundary while continuing to reject independent triggers and job permission overrides.

Validation: 41 workflow-trust tests, repository workflow audit, focused install-smoke contract tests, Python compilation and diff checks pass.

Change-source: pulse-maintainer
2026-09-05 09:06:17 +01:00
pulse-triage[bot] 6d7854724e test(dockeragent): protect CPU baseline routing across modules
Issue #1894 exposed CPU sampling interference between host and Docker reporting loops. Existing tests cover independent collectors and host routing but do not exercise Docker's production dependency entry points.

Interleave the real host, Docker and package-level collectors over synthetic procfs counters. Alternate Docker's include and no-include paths and require each loop to retain a full-interval 5 percent baseline. Production behaviour is unchanged.

Validation: focused test passed; reverting either Docker route to the package-level collector made it fail. After restoration, three focused CPU tests passed with -race -count=3 across dockeragent, hostagent and hostmetrics. git diff --check passed.

Change-source: pulse-maintainer
2026-09-05 06:03:18 +01:00
pulse-triage[bot] d4383f2f80 Merge PBS lifecycle regression coverage
Preserve the exact reviewed core-runtime candidate and add its storage-history regression test to the integrated mainline tree.

Change-source: pulse-maintainer
2026-09-05 05:43:58 +01:00
pulse-triage[bot] 68830b20e9 Merge admission reconnect regression fix
Preserve the exact reviewed web-product candidate while combining it with the later canonical frontend test repairs.

Change-source: pulse-maintainer
2026-09-05 05:43:58 +01:00
pulse-triage[bot] 6570e95bdb fix(web): retain platform admission when reconnect refresh fails
A reproduced admission HTTP 503 after socket recovery removed platform destinations despite populated inventory. Retain the last valid facet on request failure, keep tenant resets and successful empty responses authoritative, and cover desktop/mobile interruption and recovery.

Change-source: pulse-maintainer
2026-09-05 05:12:58 +01:00
pulse-triage[bot] 1cde4237ba Fix frontend publication checks
Format the reviewed regression tests and use the canonical online resource status so the combined unpublished batch passes formatting and TypeScript validation.

Change-source: pulse-maintainer
2026-09-05 05:08:10 +01:00
pulse-triage[bot] c590a01f33 test(monitoring): preserve PBS observations across rebuilds and restart
Issue #1882 reports repeated PBS history observations. The existing regression test does not actually rebuild the registry or verify persistence after closing the store, leaving the repaired observation-time behaviour exposed to regressions.

Exercise repeated registry rebuilds across three source observations and SQLite close/reopen, checking canonical identity and all four storage metrics. Retain later equal-valued observations rather than deduplicating by value. Production behaviour is unchanged.

Validation: focused normal and race tests passed in the original execution, including ten race repetitions; a source-time mutation made the new test fail. This amendment changes only commit metadata.

Change-source: pulse-maintainer
2026-09-05 05:04:33 +01:00
pulse-triage[bot] deac5e7750 Merge web cold reconnect admission repair
Change-source: pulse-maintainer
2026-09-05 04:47:35 +01:00
pulse-triage[bot] 672a497076 fix(web): preserve platform admission through cold reconnect
Keep resource snapshot receipt separate from alert hydration and tenant-scoped across reconnect. Include matching subsystem contracts, architecture coverage and fresh browser receipt.

Validation: 87 focused tests and three real-backend Chromium checks pass at 1440, 1100 and 390px. Exact release-candidate qualification remains outstanding.

Change-source: pulse-maintainer
2026-09-05 04:43:43 +01:00
pulse-triage[bot] ec462ad964 fix(release): inspect convergence logs through safe Actions reader
Scheduled reconciliation fails when gh api refuses ANSI-bearing Actions logs. Use the dedicated sanitising log reader without disabling terminal protection, preserving private authentication and fail-closed evidence handling. Focused reconciliation and policy tests pass; a read-only live job probe retains failure evidence without ESC bytes.

Change-source: pulse-maintainer
2026-09-05 04:32:38 +01:00
pulse-triage[bot] 193ead50fd Merge monitoring webhook identity regression coverage
Change-source: pulse-maintainer
2026-09-05 04:11:50 +01:00
pulse-triage[bot] 41a4563675 Merge web reconnect navigation regression coverage
Change-source: pulse-maintainer
2026-09-05 04:11:50 +01:00
pulse-triage[bot] acc1f43aaf test(monitoring): verify firing and recovery webhook identity
The powered-off recovery integration test previously discarded the firing payload, so it could pass even when the initial delivery named the wrong incident. Assert the grouped firing envelope contains exactly the active alert before checking recovery identity through the real loopback HTTP receiver.

Change-source: pulse-maintainer
2026-09-05 04:03:33 +01:00
pulse-triage[bot] ae954f776a test(web): guard navigation continuity during sync reconnects
Issue #1899 reports navigation disappearing when backend health changes to sync reconnecting on v6.4.1. Protect the isolated shell transition with stable link, label, icon and focus assertions rather than assuming the badge unit test covers navigation. This does not reproduce the reporter's browser or socket environment and makes no production fix claim.

Validation: AppLayout, useAppRuntimeState and ConnectionStatusBadge focused suites pass 46 tests. Temporarily hiding desktop navigation during sync reconnecting makes the new test fail; the mutation was restored and the suites rerun successfully.
Change-source: pulse-maintainer
2026-09-05 04:03:21 +01:00
pulse-triage[bot] fb9e4335e1 fix(ci): keep stable install smoke within caller permissions
Stable continuity run 33592377446 was rejected before any job ran: its read-only caller invoked a reusable job requesting contents:write. Extract the unchanged smoke execution into a body that inherits the caller budget, keeping the existing draft-capable entry point and its write-level draft GET access. Continuity now calls the shared body directly without broadening its token. Pin the permission boundary in regression coverage; do not relax immutable-release admission.

Change-source: pulse-maintainer
2026-09-05 04:02:24 +01:00
pulse-triage[bot] d60da624c8 test(web): qualify mobile alert focus return in Chromium and WebKit
The integrated removed-row focus repair had only jsdom coverage. Exercise populated Timeline and Resource dialogs with production styles in two browser engines so focus trapping, dismissal and fallback regressions are observable without live credentials or customer data. This is synthetic component qualification, not backend delivery evidence.

Change-source: pulse-maintainer
2026-09-05 03:44:17 +01:00
pulse-triage[bot] 99cc7f9e1a Merge mobile alert history focus regression coverage
Integrate the reviewed test-only guard for list focus when a refresh removes the investigated row.

Change-source: pulse-maintainer
2026-09-05 03:38:52 +01:00
pulse-triage[bot] 1be404f2d4 test(web): protect mobile history focus after row removal
History refreshes or filter changes can remove the card that opened an investigation. Cover the existing list-focus fallback so closing the dialog does not strand keyboard focus on the document body. Removing that fallback fails only the new test; all four tests pass after restoration.

Change-source: pulse-maintainer
2026-09-05 03:35:58 +01:00
pulse-triage[bot] a0211b8242 fix(hostmetrics): skip disk probes for cancelled collections
An already-cancelled collector could still admit a filesystem syscall which ignores cancellation and blocks indefinitely. Reject expired contexts before registering work while retaining shared in-flight probes. The new regression test reproduces one unwanted probe before this fix; focused collector and guarded-probe tests pass ten repeats under the race detector.

Change-source: pulse-maintainer
2026-09-05 03:35:35 +01:00
pulse-triage[bot] 2841339e9e Merge core runtime disk probe registry optimization
Integrate the reviewed allocation reduction while preserving shared stuck-mount protection and its focused concurrency coverage.

Change-source: pulse-maintainer
2026-09-05 03:25:39 +01:00
pulse-triage[bot] 38e1a116b6 Merge active-incident TrueNAS recovery regression coverage
Change-source: pulse-maintainer
2026-09-05 03:21:46 +01:00
pulse-triage[bot] 5bb1cc75ec Merge batch-start upstream main frontier
Change-source: pulse-maintainer
2026-09-05 03:21:46 +01:00
pulse-triage[bot] 1989ba5187 perf(hostmetrics): reduce shared disk probe registry allocations
Shared probes prevent overlapping collectors from stacking blocked statfs calls, but their short-lived sync.Map entries added measured collection overhead. Use a mutex-protected typed map and allocate only for the owning caller, retaining deadlines, result publication and one in-flight syscall per mount.

The paired filtering benchmark drops from 244 to 206 allocations and 21345 to 20129 bytes per operation. Five hostmetrics package repeats pass under the race detector, including new concurrent healthy-mount coverage. This is local mocked-collection evidence, not release or real-mount qualification.

Change-source: pulse-maintainer
2026-09-05 03:21:07 +01:00
pulse-triage[bot] 0af72aa112 test(web): cover TrueNAS recovery with another incident active
The existing recovery test empties the whole table, which can mask stale expanded detail while monitoring continues. Keep a second disk incident active and verify recovery removes only the old detail and the remaining incident opens with its own resource identity.

Change-source: pulse-maintainer
2026-09-05 03:18:20 +01:00
pulse-triage[bot] 0c3779d211 Merge pull request #1896 from rcourtman/maintainer/20260905T010422Z
Keep monitoring, alerts, and release qualification dependable
2026-09-05 02:56:14 +01:00
pulse-triage[bot] e3b308094f Merge reactive TrueNAS alert detail regression coverage
Change-source: pulse-maintainer
2026-09-05 02:52:52 +01:00
pulse-triage[bot] 55cf2e9f2f Merge provider escalation rate-limit regression coverage
Change-source: pulse-maintainer
2026-09-05 02:52:51 +01:00
pulse-triage[bot] b116d05592 test(alerts): qualify provider escalation rate limiting
The newly integrated critical-transition dispatch must retain the canonical incident notification budget. Exercise an exhausted budget through TrueNAS fixture ingestion while checking severity, identity and recovery; removing the rate-limit gate makes this case fail. Twenty focused repeats and five race repeats passed.

Change-source: pulse-maintainer
2026-09-05 02:48:59 +01:00
pulse-triage[bot] 6951a63f63 test(web): cover expanded TrueNAS alert escalation and recovery
Critical-transition backend repairs need a UI regression check: an already-open incident must show the new severity without losing resource identity, then clear on recovery. Add reactive component coverage without changing product behaviour.

Change-source: pulse-maintainer
2026-09-05 02:48:36 +01:00
pulse-triage[bot] 14dd276c76 Merge provider incident critical transition notification
Change-source: pulse-maintainer
2026-09-05 02:37:34 +01:00
pulse-triage[bot] 4752d5b4b7 fix(alerts): notify when provider incidents become critical
A TrueNAS WARNING progressing to EMERGENCY updated the live severity but never dispatched the critical transition. Bring provider incidents into line with metric critical re-notification using the existing rate-limit and delivery policy gates, without replacing lifecycle identity.

Add fixture-to-manager coverage for escalation, unchanged observations, downgrade, acknowledgement suppression and confirmed recovery. The new active transition case failed before the fix (one callback instead of two). TrueNAS tests passed 20 repeats and five race repeats; alerts and truenas package suites passed. External appliance and transport receipt remain unverified.

Change-source: pulse-maintainer
2026-09-05 02:33:42 +01:00
pulse-triage[bot] 11c573ea03 docs(web): distinguish refresh qualification from CI gates
Green aggregate checks do not prove the standalone backup runners executed, and the related integration spec is non-gating probation coverage. Document the evidence boundary so release review does not mistake existing checks or retained samples for exact-revision refresh qualification.

Change-source: pulse-maintainer
2026-09-05 02:29:06 +01:00
pulse-triage[bot] a3a8f0bf36 Merge TrueNAS emergency alert retention
Change-source: pulse-maintainer
2026-09-05 02:17:19 +01:00
pulse-triage[bot] 8433ea426c Merge web application refresh qualification
Change-source: pulse-maintainer
2026-09-05 02:13:05 +01:00
pulse-triage[bot] 65a024b3d3 fix(truenas): retain emergency alerts in incident delivery
TrueNAS documents EMERGENCY above ALERT, but native projection rejected it as an unknown level. Reproduced zero incidents and zero notification callbacks for this severity while the other six documented levels passed. Map it to critical so the most severe native condition is not silently omitted or mistaken for recovery.\n\nCover all seven native severity mappings, synchronous dispatch and confirmed recovery callbacks, and retention across repeated EMERGENCY observations. The two affected package suites and focused race checks pass; appliance and real notification-provider receipt remain unqualified.

Change-source: pulse-maintainer
2026-09-05 02:10:51 +01:00
pulse-triage[bot] c180d5f47d Merge core runtime TrueNAS lifecycle regression coverage
Change-source: pulse-maintainer
2026-09-05 01:56:37 +01:00
pulse-triage[bot] abff834d80 test(web): qualify backup refresh through application boundaries
The isolated Coverage fixture cannot establish whether resource-provider and WebSocket replacement preserves application interaction in issue #1869. Exercise the actual shell, scoped paginated resources, windowed Coverage and By date, and the real PBS History drawer with synthetic snapshots. Retain desktop and narrow evidence without claiming a deployed-release or Brave fix.

Change-source: pulse-maintainer
2026-09-05 01:55:54 +01:00
pulse-triage[bot] da9b321961 Merge delivery trust publication-clock fix
Preserve the reviewed release resolver commit while combining it with the later TrueNAS NOTICE integration on main.

Change-source: pulse-maintainer
2026-09-05 01:52:29 +01:00
pulse-triage[bot] 62c66d2a48 test(alerts): cover TrueNAS escalation and interrupted recovery
The INFO and NOTICE repairs need lifecycle coverage beyond isolated severity transitions. Verify that escalation retains identity and that renewed actionable evidence interrupts recovery, preventing a later single INFO observation from clearing the incident.

Change-source: pulse-maintainer
2026-09-05 01:52:14 +01:00
pulse-triage[bot] 7db3192a3f fix(release): measure candidate soak from release publication
Git tag creation can precede candidate publication, allowing stable promotion before the required observation period. Read the exact published prerelease and fail closed when publication evidence is unavailable. Cover repaired-candidate minor and patch boundaries.

Change-source: pulse-maintainer
2026-09-05 01:47:12 +01:00
pulse-triage[bot] fe8d7ed8ce Merge core runtime TrueNAS NOTICE correction
Change-source: pulse-maintainer
2026-09-05 01:45:34 +01:00
pulse-triage[bot] ff1d010dd9 fix(alerts): preserve actionable TrueNAS NOTICE incidents
The INFO noise repair also suppressed NOTICE because both native levels map to monitor risk. TrueNAS documents NOTICE as notification-worthy. Retain native severity so NOTICE stays actionable without inflating its canonical severity; INFO suppression and confirmed recovery remain intact.

A native-projection regression fails with the blanket filter and passes with the correction. Affected TrueNAS, unified resources, alerts and incident-memory package tests pass.

Change-source: pulse-maintainer
2026-09-05 01:40:34 +01:00
pulse-triage[bot] 0c4486102e Merge commit 'ac8172c42c2ded7ae242d2beca04a0e034b04f8e'
Change-source: pulse-maintainer
2026-09-05 01:39:24 +01:00
pulse-triage[bot] ac8172c42c Preserve backup coverage row focus across polling snapshots
Reconcile coverage rows by logical keys before windowing. Isolated Chromium checks at desktop and narrow widths preserve keyboard focus, expanded evidence, route and scroll across replacement HTTP snapshots. Include subsystem completion obligations and a content-bound browser receipt.

Does not qualify the full application scroll-jump report in #1869 or reporter resolution.

Change-source: pulse-maintainer
2026-09-05 01:33:47 +01:00
pulse-triage[bot] 7726539f83 fix(alerts): keep TrueNAS information out of actionable incidents
Issue #1892 reports successful replication information requiring acknowledgement. Preserve provider information on resources while excluding TrueNAS INFO-level conditions from active alert synchronisation. Warning conditions still activate and clear when downgraded to information.

Resource-incident timeline events contain numeric placeholders, not threshold evidence. Avoid displaying these as a fictitious 0 >= 0 trigger while retaining numeric metric formatting. Focused regressions reproduce both failures and pass with these changes.

Change-source: pulse-maintainer
2026-09-05 01:27:10 +01:00
pulse-triage[bot] 3c5d426543 Merge core runtime TrueNAS replication outcome fix
Change-source: pulse-maintainer
2026-09-05 01:13:40 +01:00
pulse-triage[bot] 62c6e07477 fix(truenas): recognise finished replication outcomes (#1892)
TrueNAS emits FINISHED for successful replication, but the recovery mapper treated it as unknown. Recognise that provider state while preserving error precedence and the missing-run guard; add regression coverage reproducing the reported outcome.

Change-source: pulse-maintainer
2026-09-05 01:07:18 +01:00
pulse-triage[bot] ddea7cd0bf Guard expanded backup evidence across workload polling
Issue #1869 reports views resetting during refresh. Exercise the mounted backup coverage view through three replacement workload snapshots so losing expanded restore evidence is caught before release. Confirm each refreshed workload name renders to exclude stale-state false positives.

Contract-Neutral: regression coverage only; no runtime or API changes.

Change-source: pulse-maintainer
2026-09-05 01:06:14 +01:00
pulse-triage[bot] e2e2990550 Guard authentication strategy selection across polling
Exercise the mounted credential slot through repeated snapshots and a different edit target. A mutation that stops marking strategy selections dirty fails the new regression test.

Contract-Neutral: regression coverage only; no runtime or API changes

Change-source: pulse-maintainer
2026-09-04 23:58:11 +01:00
pulse-triage[bot] bebe9b5df5 Merge core runtime Unraid pool-only alert fix
Change-source: pulse-maintainer
2026-09-04 23:50:24 +01:00