From 645302da7e59209e4bb38562996afaf236afb382 Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Sun, 6 Sep 2026 17:42:51 +0100 Subject: [PATCH] fix(alerts): backport delivery diagnosis response ordering Backport runtime and regression tests from 495562ef663e473889490a774a80cf8d04405732. Reproduced both failures on exact release-line parent 101bae339; patched 38 focused tests, TypeScript and three-width Chromium pass. Retain local qualification and exact runtime browser receipt. No recipient receipt or release HOLD clearance claimed. Change-source: pulse-maintainer --- .../release-v6.4-diagnosis-ordering/1440.png | Bin 0 -> 50479 bytes .../release-v6.4-diagnosis-ordering/390.png | Bin 0 -> 44913 bytes .../release-v6.4-diagnosis-ordering/900.png | Bin 0 -> 47643 bytes .../release-v6.4-diagnosis-ordering/README.md | 43 ++++++ .../adjacent-tests.txt | 14 ++ .../fixed-browser.txt | 1 + .../fixed-tests.txt | 14 ++ .../parent-browser.txt | 18 +++ .../parent-tests.txt | 80 ++++++++++ .../typecheck.txt | 3 + .../v6/internal/subsystems/alerts.md | 9 ++ .../subsystems/frontend-primitives.md | 9 ++ frontend-modern/browser-verification.json | 16 +- .../OverviewTab.deliverystatus.test.tsx | 22 +++ .../__tests__/useAlertOverviewState.test.tsx | 29 +++- .../features/alerts/useAlertOverviewState.ts | 6 +- scripts/check-alert-diagnosis-ordering.mjs | 146 ++++++++++++++++++ 17 files changed, 400 insertions(+), 10 deletions(-) create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/1440.png create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/390.png create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/900.png create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/README.md create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/adjacent-tests.txt create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/fixed-browser.txt create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/fixed-tests.txt create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/parent-browser.txt create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/parent-tests.txt create mode 100644 docs/qualification/release-v6.4-diagnosis-ordering/typecheck.txt create mode 100644 scripts/check-alert-diagnosis-ordering.mjs diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/1440.png b/docs/qualification/release-v6.4-diagnosis-ordering/1440.png new file mode 100644 index 0000000000000000000000000000000000000000..11ef19b8861ea0376c62a947dda4e1dc76d96740 GIT binary patch literal 50479 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 I^y?4*2bum^Z2$lO literal 0 HcmV?d00001 diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/900.png b/docs/qualification/release-v6.4-diagnosis-ordering/900.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9a1e0e48b23c30490d778fbce089bd2fddacf5 GIT binary patch literal 47643 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 literal 0 HcmV?d00001 diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/README.md b/docs/qualification/release-v6.4-diagnosis-ordering/README.md new file mode 100644 index 000000000..394c92c6a --- /dev/null +++ b/docs/qualification/release-v6.4-diagnosis-ordering/README.md @@ -0,0 +1,43 @@ +# Release-line Overview diagnosis ordering regression + +Exact runtime parent: `101bae33963ee65a5a83bc229d081b43825de889`. +Backport source: `495562ef663e473889490a774a80cf8d04405732` (main). +Regression provenance: `32e620a6c36b4ce08729de747cb232dfabf5c1ba` +introduced the asynchronous delivery diagnosis projection on 26 August 2026; +it is an ancestor of this parent and v6.4.1. The unversioned completion path +is also present in v6.4.3-rc.1. This repairs an existing candidate surface, +not new product scope (RELEASE_PROMOTION_POLICY, Release Train rules 2/4). + +The main runtime patch and its two regression tests apply without adaptation. +With only those tests and the browser fixture added to the exact parent, +2 tests fail and 11 pass: overlapping reads replace the current disabled +warning, and an obsolete response repopulates an empty active set. Chromium +also fails the retained-warning assertion (0 versus 1) at its first viewport. +These are local release-line reproductions, not inherited main receipts. + +With the six-line runtime patch, all 13 tests pass. Another 25 adjacent +presentation and delivery-action tests pass. TypeScript (`tsc --noEmit`) exits +0. No full repository suite was run for this bounded UI backport. + +Commands: + +- `npm --prefix frontend-modern test -- src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx src/features/alerts/__tests__/useAlertOverviewState.test.tsx` +- `npm --prefix frontend-modern test -- src/features/alerts/__tests__/OverviewTab.deliveryactions.test.tsx src/features/alerts/__tests__/deliveryDiagnosisPresentation.test.ts` +- `npm --prefix frontend-modern run type-check` +- `pulse-heavy-run -- node scripts/check-alert-diagnosis-ordering.mjs` + +The fixture uses the real Overview component and synthetic API responses on +loopback only. It does not exercise an installed backend, actual delivery, +recipient receipt, or production routing. Latest-started ownership prevents +superseded successful reads from updating state, including empty-set +invalidation. Failed refreshes still retain the previous snapshot; no new +freshness claim or indicator is added. + +This does not resolve warning-projection ordering, SQLite crashes, paid +convergence, recipient qualification or the release HOLD. No public release +or issue-resolution claim follows from this component evidence. + +Patched Chromium passes at 1440, 900 and 390 pixels: warning retained, stale +dispatch absent, new alert present, text within viewport and no page errors. +Desktop and phone screenshots were visually inspected: warning and controls +remain visible. Receipt binds the runtime file hash to the exact parent. diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/adjacent-tests.txt b/docs/qualification/release-v6.4-diagnosis-ordering/adjacent-tests.txt new file mode 100644 index 000000000..d08483421 --- /dev/null +++ b/docs/qualification/release-v6.4-diagnosis-ordering/adjacent-tests.txt @@ -0,0 +1,14 @@ + +> pulse-modern@1.0.0 test +> vitest run src/features/alerts/__tests__/OverviewTab.deliveryactions.test.tsx src/features/alerts/__tests__/deliveryDiagnosisPresentation.test.ts + + + RUN v3.2.7 /var/lib/pulse-maintainer/team-worktrees/20260906T163509Z-release-line/pulse@release_v6.4/frontend-modern + + ✓ src/features/alerts/__tests__/deliveryDiagnosisPresentation.test.ts (16 tests) 137ms + ✓ src/features/alerts/__tests__/OverviewTab.deliveryactions.test.tsx (9 tests) 358ms + + Test Files 2 passed (2) + Tests 25 passed (25) + Start at 17:38:35 + Duration 2.35s (transform 1.13s, setup 212ms, collect 1.21s, tests 495ms, environment 727ms, prepare 184ms) diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/fixed-browser.txt b/docs/qualification/release-v6.4-diagnosis-ordering/fixed-browser.txt new file mode 100644 index 000000000..c47cb4689 --- /dev/null +++ b/docs/qualification/release-v6.4-diagnosis-ordering/fixed-browser.txt @@ -0,0 +1 @@ +{"result":"passed","viewports":[1440,900,390],"scope":"Real Overview and Chromium; scripted diagnoses, not installed delivery or receipt"} diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/fixed-tests.txt b/docs/qualification/release-v6.4-diagnosis-ordering/fixed-tests.txt new file mode 100644 index 000000000..cd55867b9 --- /dev/null +++ b/docs/qualification/release-v6.4-diagnosis-ordering/fixed-tests.txt @@ -0,0 +1,14 @@ + +> pulse-modern@1.0.0 test +> vitest run src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx src/features/alerts/__tests__/useAlertOverviewState.test.tsx + + + RUN v3.2.7 /var/lib/pulse-maintainer/team-worktrees/20260906T163509Z-release-line/pulse@release_v6.4/frontend-modern + + ✓ src/features/alerts/__tests__/useAlertOverviewState.test.tsx (8 tests) 41ms + ✓ src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx (5 tests) 156ms + + Test Files 2 passed (2) + Tests 13 passed (13) + Start at 17:38:05 + Duration 1.84s (transform 964ms, setup 109ms, collect 1.18s, tests 197ms, environment 658ms, prepare 123ms) diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/parent-browser.txt b/docs/qualification/release-v6.4-diagnosis-ordering/parent-browser.txt new file mode 100644 index 000000000..695ccd2e2 --- /dev/null +++ b/docs/qualification/release-v6.4-diagnosis-ordering/parent-browser.txt @@ -0,0 +1,18 @@ +node:internal/modules/run_main:107 + triggerUncaughtException( + ^ + +AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + +0 !== 1 + + at file:///var/lib/pulse-maintainer/team-worktrees/20260906T163509Z-release-line/pulse@release_v6.4/scripts/check-alert-diagnosis-ordering.mjs:103:12 { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: 0, + expected: 1, + operator: 'strictEqual', + diff: 'simple' +} + +Node.js v24.20.0 diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/parent-tests.txt b/docs/qualification/release-v6.4-diagnosis-ordering/parent-tests.txt new file mode 100644 index 000000000..eddb46317 --- /dev/null +++ b/docs/qualification/release-v6.4-diagnosis-ordering/parent-tests.txt @@ -0,0 +1,80 @@ + +> pulse-modern@1.0.0 test +> vitest run src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx src/features/alerts/__tests__/useAlertOverviewState.test.tsx + + + RUN v3.2.7 /var/lib/pulse-maintainer/team-worktrees/20260906T163509Z-release-line/pulse@release_v6.4/frontend-modern + + ❯ src/features/alerts/__tests__/useAlertOverviewState.test.tsx (8 tests | 1 failed) 47ms + × useAlertOverviewState > invalidates pending diagnosis reads when the active set becomes empty 13ms + → expected { a1: { alertIdentifier: 'a1', …(1) } } to deeply equal {} + ✓ useAlertOverviewState > owns overview stats, filtering, and acknowledge flows outside the tab shell 4ms + ✓ useAlertOverviewState > keeps a stable id order for alerts sharing a startTime (#1218) 1ms + ✓ useAlertOverviewState > counts alerts with missing startTime in total24h 1ms + ✓ useAlertOverviewState > groups only explicit shared-system correlations across resources 1ms + ✓ useAlertOverviewState > groups explicit infrastructure synthesis without hiding the supporting detector 1ms + ✓ useAlertOverviewState > does not infer correlation by truncating resource paths 1ms + ✓ useAlertOverviewState > still groups multiple detector signals for the exact same resource 1ms + ❯ src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx (5 tests | 1 failed) 167ms + ✓ OverviewTab delivery status line > renders held-notification status from the bulk diagnosis endpoint 95ms + ✓ OverviewTab delivery status line > does not turn dispatch evidence into receipt for 'ready' 16ms + ✓ OverviewTab delivery status line > does not turn dispatch evidence into receipt for 'cooldown' 17ms + × OverviewTab delivery status line > ignores an older diagnosis response after the active alert set changes 24ms + → expected to be null + ✓ OverviewTab delivery status line > renders no delivery line when the diagnosis fetch fails 10ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx > OverviewTab delivery status line > ignores an older diagnosis response after the active alert set changes +AssertionError: expected to be null + +- Expected: +null + ++ Received: + + Dispatch requested 11:15 AM + + + ❯ src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx:145:56 + 143| finishOlder([makeDiagnosis('a1', { lastNotified: '2026-08-26T10:15… + 144| await Promise.resolve(); + 145| expect(screen.queryByText(/^Dispatch requested /)).toBeNull(); + | ^ + 146| expect(screen.getByText('Notifications are turned off')).toBeTruth… + 147| }); + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ + + FAIL src/features/alerts/__tests__/useAlertOverviewState.test.tsx > useAlertOverviewState > invalidates pending diagnosis reads when the active set becomes empty +AssertionError: expected { a1: { alertIdentifier: 'a1', …(1) } } to deeply equal {} + +- Expected ++ Received + +- {} ++ { ++ "a1": { ++ "alertIdentifier": "a1", ++ "reason": "ready", ++ }, ++ } + + ❯ src/features/alerts/__tests__/useAlertOverviewState.test.tsx:85:40 + 83| finish([{ alertIdentifier: 'a1', reason: 'ready' } as AlertDeliver… + 84| await Promise.resolve(); + 85| expect(result.deliveryDiagnoses()).toEqual({}); + | ^ + 86| }); + 87| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ + + + Test Files 2 failed (2) + Tests 2 failed | 11 passed (13) + Start at 17:37:40 + Duration 1.88s (transform 1.03s, setup 143ms, collect 1.24s, tests 214ms, environment 607ms, prepare 329ms) diff --git a/docs/qualification/release-v6.4-diagnosis-ordering/typecheck.txt b/docs/qualification/release-v6.4-diagnosis-ordering/typecheck.txt new file mode 100644 index 000000000..4b83befb6 --- /dev/null +++ b/docs/qualification/release-v6.4-diagnosis-ordering/typecheck.txt @@ -0,0 +1,3 @@ + +> pulse-modern@1.0.0 type-check +> tsc --noEmit diff --git a/docs/release-control/v6/internal/subsystems/alerts.md b/docs/release-control/v6/internal/subsystems/alerts.md index 3a9a796dc..17c361dd9 100644 --- a/docs/release-control/v6/internal/subsystems/alerts.md +++ b/docs/release-control/v6/internal/subsystems/alerts.md @@ -15,6 +15,15 @@ ## Purpose +Overview delivery diagnoses use latest-started refresh ownership. Older bulk +responses cannot overwrite newer card notification status, and an empty active +alert set invalidates outstanding reads. Disposal also prevents updates. Failed +refreshes retain the existing snapshot; this ordering repair does not add a +freshness indicator or establish recipient receipt. Verify response overlap in +`OverviewTab.deliverystatus.test.tsx`, empty-set invalidation in +`useAlertOverviewState.test.tsx`, and rendered ordering at three widths using +`scripts/check-alert-diagnosis-ordering.mjs`. + Confirmed canonical metric recovery publishes the clearing evaluation's value, observation time, and resolved metric wording in the snapshot consumed by recent-resolution reads and notification callbacks. Clone that snapshot before diff --git a/docs/release-control/v6/internal/subsystems/frontend-primitives.md b/docs/release-control/v6/internal/subsystems/frontend-primitives.md index de5dd45da..f721eebeb 100644 --- a/docs/release-control/v6/internal/subsystems/frontend-primitives.md +++ b/docs/release-control/v6/internal/subsystems/frontend-primitives.md @@ -20,6 +20,15 @@ ## Purpose +Overview delivery diagnoses use latest-started refresh ownership. Older bulk +responses cannot overwrite newer card notification status, and an empty active +alert set invalidates outstanding reads. Disposal also prevents updates. Failed +refreshes retain the existing snapshot; this ordering repair does not add a +freshness indicator or establish recipient receipt. Verify response overlap in +`OverviewTab.deliverystatus.test.tsx`, empty-set invalidation in +`useAlertOverviewState.test.tsx`, and rendered ordering at three widths using +`scripts/check-alert-diagnosis-ordering.mjs`. + Proxmox backup presentation treats every manifestless PBS artifact as non-recoverable. It renders the artifact as `Running` when current writer visibility is absent or a matching writer is active, and as danger-tone diff --git a/frontend-modern/browser-verification.json b/frontend-modern/browser-verification.json index f36da173a..11dde8f7a 100644 --- a/frontend-modern/browser-verification.json +++ b/frontend-modern/browser-verification.json @@ -1,13 +1,13 @@ { "version": 1, - "base_sha": "2d550da942c6f0a7e7896e7aca86493983f90b84", - "verified_at": "2026-09-06T15:54:59.817913Z", + "base_sha": "101bae33963ee65a5a83bc229d081b43825de889", + "verified_at": "2026-09-06T16:42:39.585210Z", "result": "passed", "changed_paths": [ - "frontend-modern/src/features/alerts/deliveryDiagnosisPresentation.ts" + "frontend-modern/src/features/alerts/useAlertOverviewState.ts" ], "content_sha256": { - "frontend-modern/src/features/alerts/deliveryDiagnosisPresentation.ts": "bc3eadf8f790517b377430a42eb67e8fdfcadb53bb13b87cd971d6a9ab91d607" + "frontend-modern/src/features/alerts/useAlertOverviewState.ts": "64d0b891e7ad228e8590da859dc25e825b6164c8cf76a01983a219d6cd079b23" }, "routes": [ "/qualification (loopback synthetic Overview, not production routing)" @@ -27,11 +27,11 @@ } ], "states": [ - "Ready and cooldown show Dispatch requested; cooldown says next eligible; missing timestamp shows Notification pending. Scripted diagnoses, not recipient receipt.", - "390px screenshot visually inspected: longer status wraps within card and controls remain visible." + "Newer notifications-disabled response remains visible after older dispatch response completes. Synthetic diagnoses, not recipient receipt.", + "Desktop and phone screenshots visually inspected: current warning and card controls remain visible within viewport." ], "interactions": [ - "pulse-heavy-run -- node scripts/check-alert-dispatch-copy.mjs passed at all three widths; two dispatch labels, no Notified labels, one pending label, text fits viewport, no page errors.", - "Evidence: /var/lib/pulse-maintainer/queue/staging/20260906T155036Z-release-line/browser-dispatch.log and browser-dispatch/*.png." + "pulse-heavy-run -- node scripts/check-alert-diagnosis-ordering.mjs passed at 1440, 900 and 390 pixels: retained warning, absent stale dispatch, new alert present, text within viewport, no page errors.", + "Exact-parent failing and patched passing evidence: docs/qualification/release-v6.4-diagnosis-ordering/." ] } diff --git a/frontend-modern/src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx b/frontend-modern/src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx index 631ae1590..5dcaaaeb7 100644 --- a/frontend-modern/src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx +++ b/frontend-modern/src/features/alerts/__tests__/OverviewTab.deliverystatus.test.tsx @@ -1,4 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { createSignal } from 'solid-js'; import { cleanup, render, screen, waitFor } from '@solidjs/testing-library'; import { DEFAULT_LOCALE, setActiveLocale } from '@/i18n'; import type { Alert, AlertDeliveryDiagnosis } from '@/types/api'; @@ -124,6 +125,27 @@ describe('OverviewTab delivery status line', () => { if (state.reason === 'cooldown') expect(screen.getByText(/next eligible/)).toBeTruthy(); }); + it('ignores an older diagnosis response after the active alert set changes', async () => { + let finishOlder!: (value: AlertDeliveryDiagnosis[]) => void; + getDeliveryDiagnoses.mockReturnValueOnce( + new Promise((resolve) => { + finishOlder = resolve; + }), + ); + getDeliveryDiagnoses.mockResolvedValueOnce([ + makeDiagnosis('a1', { status: 'suppressed', reason: 'notifications_disabled' }), + ]); + const [alerts, setAlerts] = createSignal>({ a1: makeAlert('a1') }); + render(() => ); + await waitFor(() => expect(getDeliveryDiagnoses).toHaveBeenCalledTimes(1)); + setAlerts({ a1: makeAlert('a1'), a2: makeAlert('a2') }); + await waitFor(() => expect(screen.getByText('Notifications are turned off')).toBeTruthy()); + finishOlder([makeDiagnosis('a1', { lastNotified: '2026-08-26T10:15:00Z' })]); + await Promise.resolve(); + expect(screen.queryByText(/^Dispatch requested /)).toBeNull(); + expect(screen.getByText('Notifications are turned off')).toBeTruthy(); + }); + it('renders no delivery line when the diagnosis fetch fails', async () => { const activeAlerts: Record = { a1: makeAlert('a1') }; getDeliveryDiagnoses.mockRejectedValue(new Error('boom')); diff --git a/frontend-modern/src/features/alerts/__tests__/useAlertOverviewState.test.tsx b/frontend-modern/src/features/alerts/__tests__/useAlertOverviewState.test.tsx index edc4f4569..2b3a96ddc 100644 --- a/frontend-modern/src/features/alerts/__tests__/useAlertOverviewState.test.tsx +++ b/frontend-modern/src/features/alerts/__tests__/useAlertOverviewState.test.tsx @@ -4,12 +4,13 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { AlertsAPI } from '@/api/alerts'; import { notificationStore } from '@/stores/notifications'; -import type { Alert } from '@/types/api'; +import type { Alert, AlertDeliveryDiagnosis } from '@/types/api'; import { useAlertOverviewState } from '../useAlertOverviewState'; vi.mock('@/api/alerts', () => ({ AlertsAPI: { + getDeliveryDiagnoses: vi.fn(), acknowledge: vi.fn(), bulkAcknowledge: vi.fn(), unacknowledge: vi.fn(), @@ -47,6 +48,7 @@ describe('useAlertOverviewState', () => { beforeEach(() => { vi.useFakeTimers(); vi.setSystemTime(new Date('2026-03-22T12:00:00Z')); + vi.mocked(AlertsAPI.getDeliveryDiagnoses).mockReset().mockResolvedValue([]); vi.mocked(AlertsAPI.acknowledge).mockReset(); vi.mocked(AlertsAPI.unacknowledge).mockReset(); vi.mocked(AlertsAPI.bulkAcknowledge).mockReset(); @@ -58,6 +60,31 @@ describe('useAlertOverviewState', () => { vi.useRealTimers(); }); + it('invalidates pending diagnosis reads when the active set becomes empty', async () => { + let finish!: (value: AlertDeliveryDiagnosis[]) => void; + vi.mocked(AlertsAPI.getDeliveryDiagnoses).mockReturnValueOnce( + new Promise((resolve) => { + finish = resolve; + }), + ); + const [activeAlerts, setActiveAlerts] = createSignal>({ + a1: makeAlert('a1', new Date().toISOString()), + }); + const { result } = renderHook(() => + useAlertOverviewState({ + activeAlerts, + overrides: () => [], + showAcknowledged: () => true, + updateAlert: vi.fn(), + }), + ); + expect(AlertsAPI.getDeliveryDiagnoses).toHaveBeenCalledOnce(); + setActiveAlerts({}); + finish([{ alertIdentifier: 'a1', reason: 'ready' } as AlertDeliveryDiagnosis]); + await Promise.resolve(); + expect(result.deliveryDiagnoses()).toEqual({}); + }); + it('owns overview stats, filtering, and acknowledge flows outside the tab shell', async () => { const now = Date.now(); const [activeAlerts] = createSignal>({ diff --git a/frontend-modern/src/features/alerts/useAlertOverviewState.ts b/frontend-modern/src/features/alerts/useAlertOverviewState.ts index 650a92063..377bb479e 100644 --- a/frontend-modern/src/features/alerts/useAlertOverviewState.ts +++ b/frontend-modern/src/features/alerts/useAlertOverviewState.ts @@ -68,17 +68,21 @@ export function useAlertOverviewState(props: UseAlertOverviewStateProps) { Record >({}); let diagnosisStateDisposed = false; + let diagnosisRequestVersion = 0; onCleanup(() => { diagnosisStateDisposed = true; }); const refreshDeliveryDiagnoses = async () => { + // A slower previous refresh must not replace a newer notification state. + // Increment even for an empty alert set to invalidate outstanding requests. + const requestVersion = ++diagnosisRequestVersion; if (activeAlerts().length === 0) { setDeliveryDiagnoses({}); return; } try { const list = await AlertsAPI.getDeliveryDiagnoses(); - if (diagnosisStateDisposed) return; + if (diagnosisStateDisposed || requestVersion !== diagnosisRequestVersion) return; const next: Record = {}; for (const diagnosis of list) { next[diagnosis.alertIdentifier || diagnosis.alertId] = diagnosis; diff --git a/scripts/check-alert-diagnosis-ordering.mjs b/scripts/check-alert-diagnosis-ordering.mjs new file mode 100644 index 000000000..45b4e30f4 --- /dev/null +++ b/scripts/check-alert-diagnosis-ordering.mjs @@ -0,0 +1,146 @@ +// Isolated real-browser component qualification; no installed backend or delivery claim. +import { createServer } from "../frontend-modern/node_modules/vite/dist/node/index.js"; +import solid from "../frontend-modern/node_modules/vite-plugin-solid/dist/esm/index.mjs"; +import { chromium } from "@playwright/test"; +import { resolve } from "node:path"; +import { mkdirSync } from "node:fs"; +import assert from "node:assert/strict"; +const root = resolve("frontend-modern"); +process.chdir(root); +const fixture = ` +import { createSignal } from 'solid-js'; +import { render } from 'solid-js/web'; +import { Router, Route } from '@solidjs/router'; +import { AlertsAPI } from '/src/api/alerts'; +import { NotificationsAPI } from '/src/api/notifications'; +import { OverviewTab } from '/src/features/alerts/OverviewTab'; +import '/src/index.css'; +let finishOlder; +let requests = 0; +AlertsAPI.getDeliveryDiagnoses = () => { + requests++; + if (requests === 1) return new Promise(resolve => { finishOlder = resolve; }); + return Promise.resolve([{alertIdentifier:'a1', alertId:'a1', status:'suppressed', + reason:'notifications_disabled', message:'Notifications disabled by current configuration'}]); +}; +window.finishOlder = () => finishOlder([{alertIdentifier:'a1', alertId:'a1', + status:'would_send',reason:'ready',lastNotified:'2026-08-26T10:15:00Z'}]); +window.requestCount = () => requests; +AlertsAPI.getEvents = async () => []; +NotificationsAPI.getHealth = async () => ({queue:{status:'healthy'}}); +const alert = id => ({id,resourceId:id,resourceName:'VM '+id,type:'cpu',level:'warning', +message:'High CPU on '+id,startTime:new Date().toISOString(),acknowledged:false,node:'node1'}); +function Fixture() { +const [alerts, setAlerts] = createSignal({a1:alert('a1')}); +return
+{}} showQuickTip={()=>false} dismissQuickTip={()=>{}} showAcknowledged={()=>true} +setShowAcknowledged={()=>{}} alertsDisabled={()=>false}/>
; } +render(()=>,document.getElementById('root')); +`; +const server = await createServer({ + root, + configFile: false, + optimizeDeps: { + noDiscovery: true, + entries: [], + esbuildOptions: { target: "esnext" }, + }, + esbuild: { target: "esnext" }, + plugins: [ + solid(), + { + name: "dispatch-fixture", + configureServer(s) { + s.middlewares.use((req, res, next) => { + if (req.url === "/qualification") { + res.setHeader("Content-Type", "text/html"); + res.end( + '
', + ); + } else next(); + }); + }, + resolveId(id) { + if (id === "/dispatch-fixture.tsx") return id; + }, + load(id) { + if (id === "/dispatch-fixture.tsx") return fixture; + }, + }, + ], + resolve: { alias: { "@": resolve(root, "src") } }, + server: { host: "127.0.0.1", port: 5199, strictPort: true }, +}); +let browser; +try { + await server.listen(); + browser = await chromium.launch({ headless: true }); + mkdirSync("/tmp/pulse-alert-diagnosis-ordering", { recursive: true }); + for (const width of [1440, 900, 390]) { + const page = await browser.newPage({ viewport: { width, height: 1000 } }); + const errors = []; + page.on("pageerror", (e) => { + errors.push(e.message); + console.error(e.message); + }); + page.on("console", (m) => { + if (m.type() === "error") console.error(m.text()); + }); + await page.route("http://127.0.0.1:5199/api/**", (route) => + route.fulfill({ json: [] }), + ); + await page.goto("http://127.0.0.1:5199/qualification"); + await page.waitForFunction(() => window.requestCount?.() === 1); + await page.getByRole("button", { name: "Add alert", exact: true }).click(); + await page + .getByText("Notifications are turned off", { exact: true }) + .waitFor(); + await page.evaluate(async () => { + window.finishOlder(); + await Promise.resolve(); + }); + assert.equal( + await page + .getByText("Notifications are turned off", { exact: true }) + .count(), + 1, + ); + assert.equal(await page.getByText(/^Dispatch requested /).count(), 0); + assert.equal( + await page.getByText("High CPU on a2", { exact: true }).count(), + 1, + ); + const label = page.getByText("Notifications are turned off", { + exact: true, + }); + assert.equal( + await label.evaluate((el) => { + const range = document.createRange(); + range.selectNodeContents(el); + return [...range.getClientRects()].every( + (b) => b.left >= 0 && b.right <= innerWidth, + ); + }), + true, + "current status must fit viewport", + ); + assert.deepEqual(errors, []); + await page.screenshot({ + path: "/tmp/pulse-alert-diagnosis-ordering/" + width + ".png", + fullPage: true, + }); + await page.close(); + } + console.log( + JSON.stringify({ + result: "passed", + viewports: [1440, 900, 390], + scope: + "Real Overview and Chromium; scripted diagnoses, not installed delivery or receipt", + }), + ); +} finally { + await browser?.close(); + await server.close(); +}