Skip to content
quarry Timeline
Login

Timeline

50 descendants and 50 ancestors of b4d393c974843fb1

2026-08-31
15:49
serve the stylesheet instead of inlining it in every page

112,118 bytes of <style> rode on every response — 40% of a 309,584-byte timeline page, byte-identical each time and uncacheable because it had no URL, while the JS assets already carried Cache-Control. Now one hashed asset served immutable: a rule change mints a new URL, so a stale cache is impossible without anyone revalidating. check-in: eb4793ee8e user: quarry tags: trunk

15:39
the zit figure's count suffix is two bytes, not one

The multiplication sign in 'zit 34.1ms×2' never matched a byte compare, so the duration parsed as zero and the store note appeared beside an identical zit figure — claiming a wait already accounted for. check-in: 433a022052 user: quarry tags: trunk

15:37
the footer names store wait the timing context missed

A call on context.Background() carries no timer, so a page blocking six seconds on a warm pass reported 'ops 11.09s, zit 32.9ms' — and the ops panel's claim that ops minus zit is index work was false while it did. Overlap catches what attribution misses: subprocess busy time inside the render window, unioned, reported only when it exceeds what was already attributed. check-in: 17454ef71f user: quarry tags: trunk

15:24
fold the branch summary instead of deriving it per request

branch.list grouped every check-in in the repository on every request: ~150ms in sqlite on tcl, 460-850ms through the driver, on a page whose budget is 500ms. A LIMIT could not help — the grouping happens before the limit applies. Same remedy as the ticket table: fold once when the shape changes, read by index. Refreshed in both fold paths, which the parity test insisted on. check-in: d6bf4e65b3 user: quarry tags: trunk

15:17
warm the default branch too, so ops minus zit means what it says

A subprocess on a render path is latency one reader pays for everybody, and one on a detached context is invisible in the footer while still counting toward the total — which is what sent the last investigation chasing SQL for an hour. check-in: 8c5b6e5392 user: quarry tags: trunk

13:25
leaf set keys on zit's abbreviation, not one subprocess per leaf

Leaves expanded every twelve-character hash zit printed into a full one with a zit info call each: 473 leaves on sqlite meant 357 spawns and 6.1s in a single page-load window. The one consumer asks a membership question, which a twelve-hex-character key answers. Contract test now pins the prefix contract and that a full hash finds its leaf. check-in: 00e90b88cc user: quarry tags: trunk

13:16
warm the leaf set instead of making a reader pay for it

zit leaves is 6.4s on sqlite, not the ~10ms this comment claimed, and the first reader paid it: 10.8s cold against 0.5s warm. Invisible in the footer too, since a detached context carries no timer. Warmed at registration and after each ingest; a reader arriving early gets no leaf marks rather than a six-second wait. check-in: e16d738900 user: quarry tags: trunk

13:14
prefix lookups seek instead of scanning; sqlite tuned for this workload

col LIKE ? || '%' cannot use an index: the pattern is not a literal when the statement is prepared, so finding ONE check-in by its full hash read all 36,853 rows of sqlite's tree. That was 10s on a first timeline render and 40ms after, which reads as cold I/O and is not. Half-open hex ranges seek. Also sets cache_size, mmap_size and temp_store, none of which were configured. check-in: 22346a81a7 user: quarry tags: trunk

12:57
name the slow op in the log

A ten-second page said 'ops 11.09s x8' and stopped there: the container is timed, its contents are not, so the slow one cannot be identified. Anything past 250ms now says which op it was. check-in: 3f926fafe8 user: quarry tags: trunk

12:55
branch pickers ask for a picker, not every branch

The repository home fetched all 1,759 of sqlite's branches to draw a selector of twenty-five: 478ms of a 520ms page, spent building and marshalling rows nobody saw. branch.list gains limit and open, applied in SQL — the filter cannot follow the limit, or an old repository's first rows are all closed and the picker comes back empty. check-in: 1fc5dd6ba2 user: quarry tags: trunk

12:46
file pages draw a window, not the whole file

Chroma emits a span per token, so whole-file renders built DOMs nobody asked for: 198KB of build.c became 40,083 nodes and 137ms of parse. Lexing still starts at byte zero — a window opening inside a block comment cannot colour itself — but the iterator stops at the window's last line, so the tail is never tokenised. 103ms to 2.7ms for a first screen. Scroll fetches the next window; no-script gets a link. check-in: c517ec9464 user: quarry tags: trunk

12:35
licences: x/sync is now a direct dependency check-in: 335c4703c3 user: quarry tags: trunk
12:34
collapse concurrent highlight misses into one tokenisation

A read-through memo only helps once a value exists: ten cold readers of sqlite's where.c each took 0.95s against 0.42s for one, all tokenising the same immutable bytes. Safe because the value is a pure function of its key. x/sync was already in the module graph. check-in: 05dbba300d user: quarry tags: trunk

12:25
the highlight gate is a safety valve, not a policy

256KB turned ten of sqlite's src files permanently grey, which trades the feature for the fix. Raised to 2MB; the per-blob cache carries the cost until windowing removes the need for a threshold at all. check-in: 937b10d6de user: quarry tags: trunk

12:18
large files arrive: size-gate the highlighter and cache it by content

Highlighting was paid on every request with no cache, and its cost tracks token density: sqlite's btree.c, 407KB of dense C, took 490ms and rendered 2.3MB of HTML. Past 256KB the lexer is skipped and the page says so; below it, identical content is highlighted once. check-in: f4e226e5a4 user: quarry tags: trunk

2026-08-30
15:50
land landing-ping check-in: c53a183de9 user: dmestas tags: trunk
14:19
notify the opener and branch owners when a landing settles closed check-in: ac8bd4b194 user: dmestas tags: landing-ping
13:24
selected reads as the accent, not a grey wash

nav.seg-box (the tickets tabs) filled a.here with --surface, which is one value for both themes by design and so lands heavy on the light paper — and hover used the same value, making a hovered tab and the current one identical. Tabs now carry an accent rule, rails an accent edge, matching the ink underline the repobar and explore tabs already use. check-in: abe111b60e user: dmestas tags: trunk

13:18
imports are visible: a cloning repository exists from the first second

repo.add registers the row, returns, and copies behind it. State is cloning until the store lands, failed with the reason if it does not, and a restart settles rows it interrupted rather than leaving them claiming to clone forever. The fleet page grows an Importing section. check-in: 58c34af8f6 user: dmestas tags: trunk

13:02
record the branch-closed-tags merge: 84b8fed1 carried the content but not the merge edge check-in: 89a654bfba user: dmestas tags: trunk
12:53
land ops-durability-1 check-in: 4af8540cf1 user: dmestas tags: trunk
11:40
land branch-closed-tags: closed branches honour propagating and inherited tags check-in: 84b8fed157 user: dmestas tags: trunk
11:38
docs: scratch-tree deploys, what survives a reboot, two more multi-agent rules closed check-in: 8d5610cacb user: dmestas tags: ops-durability-1
11:33
land ci-live-sse check-in: 97dd341966 user: dmestas tags: trunk
11:33
land attention-dedupe check-in: 62731b2cac user: dmestas tags: trunk
11:12
land fleet-tabs-1 check-in: 7b3c7f554f user: dmestas tags: trunk
11:07
merge trunk into ci-live-sse closed check-in: 9f856b6148 user: dmestas tags: ci-live-sse
11:07
merge trunk into attention-dedupe closed check-in: 3f44083712 user: dmestas tags: attention-dedupe
10:46
closed branches: honour propagating tags and inherited closure

The selector kept five finished branches because Branches() tested only a '+' tag on the tip: a 'closed:*' on the tip, or inherited from an ancestor, both read as open. closed check-in: c03438d3eb user: dmestas tags: branch-closed-tags

10:41
merge trunk (clone-base + intake fixes) into fleet-tabs-1 closed check-in: 89d5dd7dec user: dmestas tags: fleet-tabs-1
10:25
land clonebase-1 check-in: 2cc5ebef9b user: dmestas tags: trunk
10:24
also normalise 0.0.0.0 and [::] to a dialable host closed check-in: 168321a74f user: dmestas tags: clonebase-1
10:23
ci: a hostless --addr must not become an invalid clone URL check-in: a0c008e728 user: dmestas tags: clonebase-1
10:15
merge trunk into fleet-tabs-1: keep trunk's four-surface fleet nav, wear the tab convention check-in: 73c9f1ca68 user: dmestas tags: fleet-tabs-1
10:11
merge trunk into ci-live-sse check-in: 4866aadf00 user: dmestas tags: ci-live-sse
10:09
merge trunk into attention-dedupe check-in: 6ba137a7bf user: dmestas tags: attention-dedupe
04:22
land local-tickets-4 check-in: 235347de0e user: dmestas tags: trunk
04:07
ci: live run page over the event stream; ci.started/ci.completed raised; WatchNoun check-in: 3d493504b9 user: dmestas tags: ci-live-sse
03:55
exceptions: shrink the trace panel on a phone, salvaged from the abandoned fleet-tabs-1 check-in: 37cb3e3c71 user: dmestas tags: trunk
03:52
merge trunk into attention-dedupe check-in: d7d0f65fe0 user: dmestas tags: attention-dedupe
03:48
inbox: pair a mention's notify message with its attention event on the idempotency key, so one event is one row and one count check-in: 7251d16114 user: dmestas tags: attention-dedupe
03:35
land local-tickets-3 check-in: 26df9de56a user: dmestas tags: trunk
03:11
fleet nav: only the page holding the panel may prevent its own clicks, so operations can reach stores and mirrors check-in: 8613942dbc user: dmestas tags: trunk
03:08
dashboard: minmax(0,1fr) so the grid track can shrink, and clamp feed entries to two lines check-in: b84cb135ce user: dmestas tags: trunk
02:58
land attention-4 check-in: 48328f288f user: dmestas tags: trunk
02:55
dashboard: scroll the filter strip instead of widening the page, halve the feed, and stop bolding every line check-in: 5ce8d9506e user: dmestas tags: trunk
02:44
fleet: one nav across stores, mirrors, operations and exceptions instead of a tab that duplicated a page check-in: b7915e938f user: dmestas tags: trunk
02:41
fleet section: shared underline tabs; exceptions readable on a phone check-in: 0ef357773f user: dmestas tags: fleet-tabs-1
02:36
land attention-305 check-in: 607329b136 user: dmestas tags: trunk
02:36
merge trunk into attention-305 closed check-in: 86a5d2f287 user: dmestas tags: attention-305
02:31
land local-tickets-1 check-in: b4d393c974 user: dmestas tags: trunk
02:24
local tickets: oltp staging tier + design doc closed check-in: 10a0a49447 user: dmestas tags: local-tickets-1
01:48
ci: live pages wait on the event plane instead of each keeping a 3s timer check-in: 3d01196d0d user: dmestas tags: trunk
01:08
land attention-3b check-in: 87fb2bd03d user: dmestas tags: trunk
01:07
merge trunk into attention-3b closed check-in: fc8fae785a user: dmestas tags: attention-3b
01:03
web: honest inbox marking, unwritable unknown preferences, guarded push control check-in: b25fe57cc0 user: dmestas tags: attention-3b
00:49
Accepted: the CI list row on a phone. check-in: 4ab202fa5c user: dmestas tags: trunk
00:48
regenerate docs/api.md after the trunk merge closed check-in: 51f44e70f9 user: dmestas tags: ci-rows
00:47
merge trunk into ci-rows check-in: 23a7ede9fe user: dmestas tags: ci-rows
00:39
notify: upsert workflows with onConflict=keep now notify#303 has shipped check-in: 6c3bcec7c4 user: dmestas tags: attention-3b
00:34
land tripwire-1 check-in: dd05aaf941 user: dmestas tags: trunk
00:33
Accepted: the fleet's exceptions surface. check-in: ed382f1148 user: dmestas tags: trunk
00:32
land agreements-1 check-in: f7285ec6e9 user: dmestas tags: trunk
00:31
land throttle-1 check-in: c244c64be6 user: dmestas tags: trunk
00:31
ci list: stack the row on narrow screens so the title is not squeezed mid-word check-in: 29aa10dc8b user: dmestas tags: ci-rows
00:28
update tripwire-1 from trunk closed check-in: bc1781ccd2 user: dmestas tags: tripwire-1
00:28
update agreements-1 from trunk closed check-in: aa9358b576 user: dmestas tags: agreements-1
00:27
update throttle-1 from trunk closed check-in: 0aa2ca5402 user: dmestas tags: throttle-1
00:26
harness: web push, preferences form and inbox Done end to end; running.md push section check-in: 0963f23d8d user: dmestas tags: attention-3b
00:22
web: inbox through inbox.list/mark, notification preferences page, push control check-in: 167e5005da user: dmestas tags: attention-3b
00:04
land attention-3a check-in: b68b9538be user: dmestas tags: trunk
00:03
merge trunk into attention-3a closed check-in: 6c44e8acd8 user: dmestas tags: attention-3a
00:00
gofmt cmd/quarry/main.go closed check-in: a528e67f94 user: dmestas tags: exceptions
2026-08-29
23:59
gate: the bypass tripwire — a protected branch moved past its checks is named check-in: a537f39f53 user: dmestas tags: tripwire-1
23:58
inbox: rebase the paging cursor on notify's own pages, clamp it, tri-state unknown prefs check-in: 81fd758cdf user: dmestas tags: attention-3a
23:52
docs: the multi-agent working agreement; tools/quarry-land check-in: 15f9128280 user: dmestas tags: agreements-1
23:52
merge trunk into exceptions check-in: 395e40d54d user: dmestas tags: exceptions
23:48
worker: -max-tasks gates concurrency; queued waits are said check-in: b438483f23 user: dmestas tags: throttle-1
23:34
inbox: composite paging cursor, workflow-id reasons, explicit prefs, degraded notify routes check-in: 30744ed6ed user: dmestas tags: attention-3a
22:58
land attention-polish check-in: b644d4d37d user: dmestas tags: trunk
22:56
merge trunk into attention-polish closed check-in: dcadacc88b user: dmestas tags: attention-polish
22:51
events: error.raised fires once per failure signature, onto the existing webhook plane check-in: d13fe9308f user: dmestas tags: exceptions
22:51
api: service worker route test, mute list accessor, upgrade note in running.md check-in: d834d704bb user: dmestas tags: attention-3a
22:50
chat and inbox visual polish: avatar gutter, floating toolbar, rounded composer, quote cards, date separators, spacing scale check-in: db208ad1a8 user: dmestas tags: attention-polish
22:49
land resilience-2 check-in: c7c071ba11 user: dmestas tags: trunk
22:45
api: inbox.list/mark, me.prefs, me.push, /sw.js, per-repo mute check-in: a37b13f647 user: dmestas tags: attention-3a
22:36
fleet: an exceptions panel with traces, fed by the background workers too check-in: 6020700930 user: dmestas tags: exceptions
22:34
land resilience-1 check-in: 9d5cb61173 user: dmestas tags: trunk
22:30
notify: mark, page, count, web-push credentials and preferences; push and digest steps check-in: 7b8e6cd212 user: dmestas tags: attention-3a
22:09
land attention-2 check-in: 9eb8e48c21 user: dmestas tags: trunk
22:05
merge trunk into attention-2 closed check-in: 81239b3941 user: dmestas tags: attention-2
22:01
zitcli: the zit contract canary; worker pins its zit closed check-in: e12fc79839 user: dmestas tags: resilience-2
21:56
ci: hold the watermark through transient faults closed check-in: 8d50246065 user: dmestas tags: resilience-1
21:50
Chat author groups with hued rails, inline #seq quotes, and an inbox triage queue check-in: 1c3ed0f2a5 user: dmestas tags: attention-2
21:23
land fmtfix-2 check-in: 609a683614 user: dmestas tags: trunk
21:21
quiet the chat row: grouped headers, one inline action row, chip mentions check-in: ad7ded34a6 user: dmestas tags: attention-2
21:18
gofmt the stragglers closed check-in: eb84f9798c user: dmestas tags: fmtfix-2
21:10
take attention delivery off the write path and count unread without scanning the window check-in: b1e3e4f387 user: dmestas tags: attention-2
21:07
land zitdrift-1 check-in: 323736149b user: dmestas tags: trunk
21:06
zitcli: read zit 0.3.0's new output shapes closed check-in: db4e4547c5 user: dmestas tags: zitdrift-1
20:46
Accepted: a verdict a reader can follow, and the right verdict after a landing. check-in: 5a6dd9916c user: dmestas tags: trunk