Skip to content
quarry Timeline
Login

Timeline

26 check-ins that include changes to files matching 'internal/evt/*'

2026-10-01
15:16
Merge trunk; delete also purges unversioned catalog, publisher cursor keys and finishes event scans on pending count (#294) check-in: ea6e1d281e user: zeitgeist tags: delete-forgets-the-repository
12:04
Merge trunk check-in: 1221ef747b user: zeitgeist tags: ci-tests-each-change-once
11:49
land rfc20-uv-catalog

Checks tested the merge with trunk at 9a702adb7806; trunk has moved since. check-in: eba0ccd4bf user: dmestas tags: trunk

11:29
RFC 0020 rung 2: the unversioned-file catalog, stored in the repository's bucket, with uv ops gated on y closed check-in: d5ef6207dc user: zeitgeist tags: rfc20-uv-catalog
2026-09-16
06:57
land team-events check-in: 125f884548 user: dmestas tags: trunk
06:55
teams gain an event noun, and /me gets its layout back from the CSP check-in: fe7cc96d81 user: dmestas tags: team-events
2026-09-11
16:31
land attachments-read check-in: 726916a183 user: dmestas tags: trunk
15:43
Attachments, read side (RFC 0016 Phase 1): wiki, technote and forum posts carry theirs; attachment.list; attach:NAME in bodies; inline view gated by sniffed image bytes; attachment events closed check-in: a57e65e937 user: dmestas tags: attachments-read
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-05
17:28
land stamp check-in: 00e9f33e9e user: dmestas tags: trunk
16:17
Rename praise to stamp; events become stamp.added/removed and old rows carry over check-in: dd4f014616 user: dmestas tags: stamp
2026-08-30
01:07
merge trunk into attention-3b closed check-in: fc8fae785a user: dmestas tags: attention-3b
00:47
merge trunk into ci-rows check-in: 23a7ede9fe user: dmestas tags: ci-rows
00:33
Accepted: the fleet's exceptions surface. check-in: ed382f1148 user: dmestas tags: trunk
2026-08-29
23:52
merge trunk into exceptions check-in: 395e40d54d user: dmestas tags: exceptions
22:51
events: error.raised fires once per failure signature, onto the existing webhook plane check-in: d13fe9308f user: dmestas tags: exceptions
22:09
land attention-2 check-in: 9eb8e48c21 user: dmestas tags: trunk
20:22
an attention stream, the ops that read it, and the activity robot check-in: 24aa859ca1 user: dmestas tags: attention-2
2026-08-24
23:12
land praise-ui check-in: 411e60c2d5 user: dmestas tags: trunk
20:26
Praise UI: a button on the repo, a listing to reverse it

Restores the backend the trunk merge dropped, and adds the two surfaces that get pressed.

The button sits in the stats strip beside the clone count, drawn only when there is an account behind it. Pressed state rides on aria-pressed as well as colour.

/praised is where praise is revisited and withdrawn. It exists apart from /people/{user} because that page lists CONTRIBUTORS derived from the DAG, and a praiser need never have authored anything. check-in: 0cba46d4ed user: dmestas tags: praise-ui

19:59
Praise: vocabulary, storage, ops

Any signed-in account may praise any repository it can SEE — no capability letter, because the read gate has already decided whether the repository exists for this caller and past that gate praising is not a privilege anyone needs granting.

Per account, not per contributor: someone who has never authored an artifact can still say a repository is worth attention, which is why this cannot hang off the contributor pages.

praise.list filters by the VIEWER, never the owner. Praise is public; the existence of a private repository is not, and this is where the two meet.

UI deferred: the button belongs in the repo stats strip, which is on the unlanded clone-counts branch. check-in: f1a6be9a77 user: dmestas tags: praise

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

16:27
Publish the vocabulary on quarry.evt.<repo>.<noun>.<action>

RFC 0005 picked zit.evt., which the fold consumer already claims with a trailing wildcard — every vocabulary event would have been handed to the artifact parser. Own stream, own root, tests pinning both. check-in: 3bca39d8f5 user: dmestas tags: trunk

15:57
RFC 0005: dagnats already has the triggers; correct the record

I probed HTTP and concluded dagnats had no scheduler. Wrong lens — triggers are NATS and KV native. It has cron, subject, webhook, durable HTTP, worker-contributed kinds and debounce. So quarry builds none of that: it owes well-named subjects, and the vocabulary IS the hierarchy. check-in: 3aef7f3211 user: dmestas tags: trunk

15:50
events: the vocabulary as code, and what the bus really does

RFC 0005 §1 as internal/evt, named at the eight sites that raise events instead of sliced out of a TxnID — so a ticket change that closes one is ticket.closed, not ticket. Measured the window: a gap IS detectable (first_seq - ack_floor) but the next fetch succeeds silently, so every consumer must check. dagnats has no scheduler; quarry owns the clock. check-in: f08add75f5 user: dmestas tags: trunk