Skip to content
quarry Timeline
Login

Timeline

20 check-ins that include changes to files matching 'internal/webhook/*'

2026-10-03
00:48
land admins-send-reset-links

Checks tested the merge with trunk at 83aec99ff875; trunk has moved since. check-in: 6ddc78b549 user: dmestas tags: trunk

00:45
webhook test: wait for each fan-out delivery on its own closed check-in: 0379e9ab02 user: zeitgeist tags: webhook-fanout-test-waits
2026-10-02
00:47
TestFansOutPerSubscription waits for the failing endpoint too instead of racing it check-in: c0f6fcb999 user: zeitgeist tags: admins-send-reset-links
2026-09-26
17:53
Guarded writes begin on the writer, and every caller uses them closed check-in: 48b279e41c user: dmestas tags: check-then-write-is-one-transaction
17:17
land a-ci-result-is-never-lost check-in: ad65a9f4a7 user: dmestas tags: trunk
17:15
A CI result is recorded before the run is marked complete, and CI webhook events carry distinct ids closed check-in: 11209ad672 user: dmestas tags: a-ci-result-is-never-lost
2026-09-22
18:12
land the-endpoints-answer-is-the-answer check-in: c65158c920 user: dmestas tags: trunk
17:47
a webhook ping or redeliver reports the endpoint's answer; it does not fail because the endpoint did closed check-in: 3b97c8942a user: dmestas tags: the-endpoints-answer-is-the-answer
2026-09-06
12:38
landing: decision controls skip the override validation that silently blocked them closed check-in: ef78b6d72f user: dmestas tags: fleet-edit-mirror
2026-09-04
10:48
land hook-parity check-in: 7a5794bff6 user: dmestas tags: trunk
10:45
Hook parity: API verbs, repo-scoped sends, secret rotation with an overlap, settings trail, build filter closed check-in: d04d8a0926 user: dmestas tags: hook-parity
10:19
land hook-deliveries check-in: bc9bb59afc user: dmestas tags: trunk
10:11
Webhook deliveries: record every attempt, show them per endpoint, redeliver and ping closed check-in: 7622c1bc01 user: dmestas tags: hook-deliveries
2026-08-29
16:41
merge trunk into attention-0 check-in: 45774534b5 user: dmestas tags: attention-0
16:26
land flakefix-2 check-in: 788472b04b user: dmestas tags: trunk
16:25
webhook: win the pause race by construction, not by sleep closed check-in: 4c1bc2d5b6 user: dmestas tags: flakefix-2
2026-08-24
18:08
Suite green across 29 packages; merges clean.

Four commits: the fan-out onto the vocabulary, per-subscription event selection, the settings surface, and the RFC correction that preceded them. check-in: 69fc3f06d1 user: dmestas tags: trunk

17:16
Subscriptions select their events

A webhook took everything or nothing. It now names vocabulary patterns: '*', a bare noun for every action on it, or an exact kind. Checked at the moment it is set, because a webhook that silently delivers nothing reads as a broken forge. check-in: e9547dcc49 user: dmestas tags: hooks-vocabulary

17:13
Webhooks fan out from the vocabulary, not from the ops layer

A ticket closed by push notified nobody, because only ops queued webhooks. One consumer on quarry.evt.> turns every raised event into deliveries, so arrival path stops mattering.

Deletes kindOf: the delivery's kind was sliced off an idempotency key. check-in: f2ea5f5c1a user: dmestas tags: hooks-vocabulary

2026-08-16
19:38
webhooks: the standard outbound surface (0001 Principle 6)

Activity events reach third parties over signed HTTP, so an integrator never has to speak NATS. Subscriptions live in forge OLTP; the signing secret is printed once at creation and never readable again.

Delivery is durable rather than a fire-and-forget goroutine: each (event, subscription) is one JetStream message, acked on 2xx, NAKed with growing backoff, MaxDeliver as the dead-letter boundary. An endpoint down during a deploy still gets its events — proven live by writing with the receiver stopped and seeing the delivery land when it returned.

0003 §3 names dagnats for this class of work; it runs on the JetStream quarry already embeds, so this uses that directly and leaves dagnats as the upgrade path when v3 brings the engine in for CI.

Mentions are not forwarded: they address a person, not a repository. check-in: 550b7af81c user: dmestas tags: trunk