Event log: show attempt and delivery times, label replays, zone event times (closes #386)
check / check (push) Successful in 3m21s

In the event log and on an event's page, attempts and deliveries showed no time, event times had no zone, and a replay looked like the original it repeated. Each attempt now shows when its result was recorded and each delivery when it was created, as how long ago with the full UTC time on hover, and the event log's event times read the same way. A delivery created by Replay records it in a new `replay` column and is labelled a replay in the event's summary line and its delivery list; replays made before this change are not labelled. A delivery's row is now drawn by one template, `delivery_row`, that both pages share.

Model: opus-5-5
This commit was merged in pull request #487.
This commit is contained in:
2026-10-03 04:12:27 +02:00
parent ea8384f4a2
commit d8c60c9b67
14 changed files with 181 additions and 28 deletions
+7 -1
View File
@@ -1831,6 +1831,7 @@ status across potentially multiple attempts.
| `target_id`| UUID | Foreign key → Target |
| `status` | DeliveryStatus | One of: `pending`, `delivered`, `failed`, `retrying` |
| `finished_at` | timestamp | When the delivery became `delivered` or `failed` (nullable; empty while `pending` or `retrying`) |
| `replay` | boolean | Whether the delivery was created by **Replay** |
**Relations:** Belongs to Event. Belongs to Target. Has many
DeliveryResults.
@@ -1850,7 +1851,8 @@ NEW `pending` delivery for the same event and target and hands it to
the engine on the ordinary path — same retries, same SSRF guard, same
circuit breaker as a first attempt. It never touches the delivery it
repeats: that row's status, timestamps and recorded attempts stand as
the record of what happened.
the record of what happened. The new delivery records `replay`, and the
event log and the event's page label it a replay.
What is re-sent is the stored event body, against the target's
configuration **as it stands now** — the point of a replay is to
@@ -1904,6 +1906,10 @@ A `database` or `log` target sends no HTTP request, so in the event log and
on the event's page its attempts show no status: a successful one reads
"archived" or "written to the log".
The event log and the event's page show when each attempt was recorded and
when each delivery was created, as the recent events list shows when an event
arrived: how long ago, with the full UTC time on hover.
**Relations:** Belongs to Delivery.
#### EventTotals, TargetTotals and EntrypointTotals