mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 02:25:56 +00:00
Merge candidate 20260906T091009Z-web-product
Change-source: pulse-maintainer
This commit is contained in:
@@ -15,6 +15,17 @@
|
||||
|
||||
## Purpose
|
||||
|
||||
Delivery-attempt and held-event reads in Destinations use latest-started
|
||||
refresh ownership. A delayed mount response must not overwrite evidence from
|
||||
configuration Retry or a queue-action refresh, including a newer unavailable
|
||||
result. Attempt loading reflects only the latest attempt request; held events
|
||||
remain independently asynchronous. Scope disposal abandons both reads.
|
||||
Verification: ordinary overlap, held-event and disposal cases in
|
||||
`useNotificationDeliveryLog.test.tsx`, registered mount/Retry coverage in
|
||||
`useAlertDestinationsTabState.test.tsx`, and positive rendered-content assertions
|
||||
in `scripts/check-delivery-log-ordering.mjs`. Scripted browser evidence is not
|
||||
proof of backend delivery or receipt by an independent recipient.
|
||||
|
||||
The shared delivery-health card wraps action groups according to available
|
||||
space, retaining readable explanation width when Review, Retry, Dismiss and
|
||||
Refresh appear together. Its heading uses the opaque semantic foreground,
|
||||
|
||||
@@ -4774,6 +4774,17 @@ requests only the two held-notification event types over the same seven-day
|
||||
window as its delivery-attempt log, with an explicit bounded limit. That event
|
||||
request runs independently of `GET /api/notifications/delivery-log`; failure
|
||||
of either API must not recast the other response as empty or unavailable.
|
||||
Overlapping Destinations mount, configuration Retry and queue-action refreshes
|
||||
use latest-request ownership: only the most recently started refresh may
|
||||
replace delivery attempts, unavailable/loading flags or held-event rows.
|
||||
An older success cannot hide a newer unavailable result, and an older failure
|
||||
cannot erase newer evidence. Held-event completion remains independent of the
|
||||
attempt-log loading flag. Disposing the owning Solid scope ignores pending
|
||||
completions and prevents further reads through the abandoned loader.
|
||||
Regression coverage lives in the delivery-log and destinations-tab state tests;
|
||||
`scripts/check-delivery-log-ordering.mjs` additionally asserts positive
|
||||
rendered current-attempt content in Chromium at desktop and mobile widths
|
||||
using scripted APIs, not installed delivery or recipient evidence.
|
||||
|
||||
`GET /api/alerts/incidents` with both `alertIdentifier` and `started_at` is an
|
||||
occurrence-qualified timeline read. The incident/resource-history projection
|
||||
|
||||
@@ -20,6 +20,18 @@
|
||||
|
||||
## Purpose
|
||||
|
||||
The Destinations delivery-log state primitive assigns a generation to each
|
||||
refresh and rejects stale completions before updating rows, unavailable state
|
||||
or loading state. Held-event reads share that generation without blocking the
|
||||
attempt-log spinner. Cleanup prevents abandoned requests from updating state
|
||||
and makes subsequent calls through the disposed loader inert; it does not
|
||||
cancel transport requests. Latest-request failure remains unavailable rather
|
||||
than being concealed by an older successful response.
|
||||
Verification combines the hook's ordinary race/disposal tests, registered
|
||||
mount/Retry integration, and `scripts/check-delivery-log-ordering.mjs` Chromium
|
||||
content assertions at desktop and narrow widths. This is component-level
|
||||
presentation proof with scripted APIs, not full-tab or installed qualification.
|
||||
|
||||
The shared delivery-health card wraps action groups according to available
|
||||
space, retaining readable explanation width when Review, Retry, Dismiss and
|
||||
Refresh appear together. Its heading uses the opaque semantic foreground,
|
||||
|
||||
Reference in New Issue
Block a user