Event log: attempts and deliveries show no time, event times have no zone, replays look like originals #386

Closed
opened 2026-10-01 22:06:19 +02:00 by clawbot · 2 comments
Collaborator

Owner's request, #377 (chat, 2026-10-01):

audit the whole app for stupid cases of missing functionality or basic things like this (like the stats panel at the top that i requested).

What is missing, in the event log (templates/source_logs.html; deliveryResultColumns in internal/handlers/delivery_result_view.go):

  • Each attempt shows its number, outcome, status code and duration, but not when it was made. Its stored time is not even loaded. A delivery that retried over an hour looks the same as one that retried within a second.
  • A delivery does not show when it was created. A replay adds a second row with the same target name and status as the original, and nothing says which row is the replay. In the audit, after one replay the event's summary line read "Fulfilment: delivered" twice.
  • Event times are printed as "2026-10-01 19:56:55" with no time zone. The webhook page prints the same kind of time with "UTC".

Definition of done:

  • Each attempt shows when it ran, and each delivery shows when it was created.
  • A delivery created by Replay is labelled as a replay, both in the event's summary line and in its delivery list.
  • Every time in the event log carries its zone, in the same style as the recent events list after #347: relative, with the full UTC time on hover.
  • Pre-1.0: if marking replays needs a new column, it goes into the schema in place, with no migration.
  • Tests: the attempt time, the delivery time, the replay label, and the zone on event times.

PRIORITY: from the owner's audit request of 1 October (#377), in the tier of #367 to #376.

Model: opus-5-5

Owner's request, https://git.eeqj.de/sneak/webhooker/issues/377 (chat, 2026-10-01): > audit the whole app for stupid cases of missing functionality or basic things like this (like the stats panel at the top that i requested). What is missing, in the event log (`templates/source_logs.html`; `deliveryResultColumns` in `internal/handlers/delivery_result_view.go`): - Each attempt shows its number, outcome, status code and duration, but not when it was made. Its stored time is not even loaded. A delivery that retried over an hour looks the same as one that retried within a second. - A delivery does not show when it was created. A replay adds a second row with the same target name and status as the original, and nothing says which row is the replay. In the audit, after one replay the event's summary line read "Fulfilment: delivered" twice. - Event times are printed as "2026-10-01 19:56:55" with no time zone. The webhook page prints the same kind of time with "UTC". Definition of done: - Each attempt shows when it ran, and each delivery shows when it was created. - A delivery created by Replay is labelled as a replay, both in the event's summary line and in its delivery list. - Every time in the event log carries its zone, in the same style as the recent events list after https://git.eeqj.de/sneak/webhooker/issues/347: relative, with the full UTC time on hover. - Pre-1.0: if marking replays needs a new column, it goes into the schema in place, with no migration. - Tests: the attempt time, the delivery time, the replay label, and the zone on event times. PRIORITY: from the owner's audit request of 1 October (https://git.eeqj.de/sneak/webhooker/issues/377), in the tier of https://git.eeqj.de/sneak/webhooker/issues/367 to https://git.eeqj.de/sneak/webhooker/issues/376. Model: opus-5-5
clawbot self-assigned this 2026-10-01 22:06:19 +02:00
Author
Collaborator

Plan.

  • Attempt and delivery times: each attempt shows when it ran (its stored time, now loaded), and each delivery when it was created, in the event log and on the event's page, through the one shared delivery renderer.
  • Replays: a delivery records whether Replay created it, in a new column on the delivery, added to the schema in place with no migration. The event's summary line and its delivery list label such a delivery as a replay.
  • Zones: every time in the event log reads as the recent events list does since #347: relative (the same humanize helper), with the full UTC time on hover. The paused-target times from #385 keep their own form.
  • Tests: the attempt time, the delivery time, the replay label in both places, and the zone on event times.
  • Deploy note: if the new column means existing event databases must be recreated, the PR says so once; they are already being recreated for this milestone.

Model: opus-5-5

Plan. - **Attempt and delivery times:** each attempt shows when it ran (its stored time, now loaded), and each delivery when it was created, in the event log and on the event's page, through the one shared delivery renderer. - **Replays:** a delivery records whether Replay created it, in a new column on the delivery, added to the schema in place with no migration. The event's summary line and its delivery list label such a delivery as a replay. - **Zones:** every time in the event log reads as the recent events list does since https://git.eeqj.de/sneak/webhooker/issues/347: relative (the same `humanize` helper), with the full UTC time on hover. The paused-target times from https://git.eeqj.de/sneak/webhooker/issues/385 keep their own form. - **Tests:** the attempt time, the delivery time, the replay label in both places, and the zone on event times. - **Deploy note:** if the new column means existing event databases must be recreated, the PR says so once; they are already being recreated for this milestone. Model: opus-5-5
Author
Collaborator

Done in #487.

In the event log and on the event's page, each attempt shows when it was recorded and each delivery when it was created, as how long ago with the full UTC time on hover; 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 in both pages' delivery lists. Existing event databases gain the column on their next open, so none needs recreating; replays made before this change are not labelled.

  • Judgement call: the delivery's time and replay label sit in each page's delivery row, because the template the two pages share draws only the attempts.
  • Judgement call: the event's page keeps its "Received" time written out in full UTC.

Model: opus-5-5

Done in https://git.eeqj.de/sneak/webhooker/pulls/487. In the event log and on the event's page, each attempt shows when it was recorded and each delivery when it was created, as how long ago with the full UTC time on hover; 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 in both pages' delivery lists. Existing event databases gain the column on their next open, so none needs recreating; replays made before this change are not labelled. - Judgement call: the delivery's time and replay label sit in each page's delivery row, because the template the two pages share draws only the attempts. - Judgement call: the event's page keeps its "Received" time written out in full UTC. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/webhooker#386