commits on main
2026-11-12
477463e6 dawn an activation waits for nginx's reload to swap its workers before publishing the generation
an activation waits for nginx's reload to swap its workers before publishing the generation
2026-11-11
99651f03 dawn a knot runs each configured [[hooks]] entry after an activation, with its own lock, pid, started record and log
a knot runs each configured [[hooks]] entry after an activation, with its own lock, pid, started record and log
migration: replace `[site_hook]` with `[[hooks]]` (`name = "svfe-pages"`, `command`, `args`), and remove old `runtime/site-hook.{lock,pid,started.json}` and `site-hook.log` files on trimounts.
0f3060b5 dawn a repo's og cards are a set named by what they're drawn from, which a generation links to, so a write whose repos didn't move plans and hashes none of them
a repo's og cards are a set named by what they're drawn from, which a generation links to, so a write whose repos didn't move plans and hashes none of them
migration: the cards' keys now take the fonts' digest, so the first generate after the deploy draws every card again (about 15 s on prod's 94 repos, inside the source locks), once. the old og-cards/*.png that no set names go after the hour's grace. Signed-off-by: dawn <dawn@klbr.net>
e65024af dawn the index's og card draws and encodes on the og cards' canvas
the index's og card draws and encodes on the og cards' canvas
Signed-off-by: dawn <dawn@klbr.net>
4e4dbd04 dawn an og card's meta line is a ribbon, a pull's notched holes open through the top edge beside a plain rail, a count of one is singular, and a user's chips sit below the avatar and bio
an og card's meta line is a ribbon, a pull's notched holes open through the top edge beside a plain rail, a count of one is singular, and a user's chips sit below the avatar and bio
Signed-off-by: dawn <dawn@klbr.net>
ce47f74a dawn og cards are drawn dark, and every card is drawn again
og cards are drawn dark, and every card is drawn again
Signed-off-by: dawn <dawn@klbr.net>
ecf8b041 dawn a generation draws an og card for each repo, ticket, pull, recent commit and owner, and nginx serves a page's card, else its repo's, else the knot's
a generation draws an og card for each repo, ticket, pull, recent commit and owner, and nginx serves a page's card, else its repo's, else the knot's
Signed-off-by: dawn <dawn@klbr.net>
bfaafaf8 dawn a generation's file already linked to the active one's copy is left alone, instead of leaving its share link behind
a generation's file already linked to the active one's copy is left alone, instead of leaving its share link behind
Signed-off-by: dawn <dawn@klbr.net>
2026-11-10
fec4b1a7 dawn nginx's map and variable hashes are sized for the keys they hold
nginx's map and variable hashes are sized for the keys they hold
Signed-off-by: dawn <90008@klbr.net>
47a74b09 dawn the case-twin test expects each spelling answered apart on a case-sensitive disk
the case-twin test expects each spelling answered apart on a case-sensitive disk
Signed-off-by: dawn <90008@klbr.net>
c2a06aa2 dawn a seal reads the chain back through the blocks of the last seal
a seal reads the chain back through the blocks of the last seal
Signed-off-by: dawn <90008@klbr.net>
5453e320 dawn list pages serialize each record once
list pages serialize each record once
Signed-off-by: dawn <90008@klbr.net>
d5ddf1fa dawn a settle writes only the records that changed since the last one
a settle writes only the records that changed since the last one
Signed-off-by: dawn <90008@klbr.net>
44916462 dawn a sync that makes an avatar's sizes publishes them
a sync that makes an avatar's sizes publishes them
Signed-off-by: dawn <90008@klbr.net>
09ecc0d9 dawn the front page draws in the web fonts [index.fonts] names, preloading the faces it uses, and keeps the system monospace without them
the front page draws in the web fonts [index.fonts] names, preloading the faces it uses, and keeps the system monospace without them
Signed-off-by: dawn <90008@klbr.net>
fe1434ab dawn the avatar sweep keeps an avatar's sizes
the avatar sweep keeps an avatar's sizes
Signed-off-by: dawn <90008@klbr.net>
7592e131 dawn avatars are served at 42, 96 and 192 px, and kept up to 5 MB
avatars are served at 42, 96 and 192 px, and kept up to 5 MB
Signed-off-by: dawn <90008@klbr.net>
c3283c86 dawn avatars follow a pds's getBlob redirect, and profiles written under sh.tangled are read
avatars follow a pds's getBlob redirect, and profiles written under sh.tangled are read
Signed-off-by: dawn <90008@klbr.net>
62e562ab dawn a write's build reuses the social index the write kept current
a write's build reuses the social index the write kept current
Signed-off-by: dawn <90008@klbr.net>
c4429a14 dawn the write-latency bench takes the repos to write to, and records a repo with many writes
the write-latency bench takes the repos to write to, and records a repo with many writes
Signed-off-by: dawn <90008@klbr.net>
c817dce6 dawn a generation links the files it shares with the active one
a generation links the files it shares with the active one
Signed-off-by: dawn <90008@klbr.net>
9642e650 dawn gc drops a retired generation once nothing older than its retirement can read it
gc drops a retired generation once nothing older than its retirement can read it
Signed-off-by: dawn <90008@klbr.net>
dcbaa5c7 dawn a repo's export keeps a log of its writes' packs, not one per write
a repo's export keeps a log of its writes' packs, not one per write
Signed-off-by: dawn <90008@klbr.net>
9216dd3b dawn a write-latency bench with a 2 s budget
a write-latency bench with a 2 s budget
Signed-off-by: dawn <90008@klbr.net>
7c36418a dawn a burst of writes shares one gc, and gc reads each generation once
a burst of writes shares one gc, and gc reads each generation once
Signed-off-by: dawn <90008@klbr.net>
ddbf4a20 dawn a superseded activation leaves the hook and gc to the newer one
a superseded activation leaves the hook and gc to the newer one
Signed-off-by: dawn <90008@klbr.net>
de236b6b dawn nginx -t skips the git read maps an activation carries over unchanged
nginx -t skips the git read maps an activation carries over unchanged
Signed-off-by: dawn <90008@klbr.net>
2c3f2f41 dawn a deploy that changes only the renderer runs it on the active generation
a deploy that changes only the renderer runs it on the active generation
Signed-off-by: dawn <90008@klbr.net>
12ade965 dawn the front page shows people in two columns in their svfe colours, with a commons and the last 30 days of pushes
the front page shows people in two columns in their svfe colours, with a commons and the last 30 days of pushes
Signed-off-by: dawn <90008@klbr.net>
fbe30d89 dawn the firehose counts the pushes past an offset by the day they landed
the firehose counts the pushes past an offset by the day they landed
Signed-off-by: dawn <90008@klbr.net>
5129f36e dawn the drain timer can activate, and stops rebuilding a handles publish that failed
the drain timer can activate, and stops rebuilding a handles publish that failed
Signed-off-by: dawn <90008@klbr.net>
bba74da9 dawn a deploy publishes a generation the new binary built
a deploy publishes a generation the new binary built
Signed-off-by: dawn <90008@klbr.net>
5b695cdd dawn a generation another binary built is rebuilt instead of counting as unchanged
a generation another binary built is rebuilt instead of counting as unchanged
Signed-off-by: dawn <90008@klbr.net>
f9acf292 dawn nginx sizes its map hashes by the git read entries the maps include
nginx sizes its map hashes by the git read entries the maps include
Signed-off-by: dawn <90008@klbr.net>
d9cb21e3 dawn a write's gc reads only the git reads of the repos it changed
a write's gc reads only the git reads of the repos it changed
Signed-off-by: dawn <90008@klbr.net>
1aa579b3 dawn an activation writes no record per hosted repo
an activation writes no record per hosted repo
Signed-off-by: dawn <90008@klbr.net>
6542e444 dawn a deploy lays out the git read maps instead of the first write after it
a deploy lays out the git read maps instead of the first write after it
Signed-off-by: dawn <90008@klbr.net>
da3bb59e dawn a write reads no git reads of the repos it doesn't change
a write reads no git reads of the repos it doesn't change
Signed-off-by: dawn <90008@klbr.net>
14f8d18a dawn a write answers before the site hook starts and gc runs
a write answers before the site hook starts and gc runs
Signed-off-by: dawn <90008@klbr.net>
2026-11-09
883b4733 dawn mark the params an appview map ignores as any in the site hook's diff lines
mark the params an appview map ignores as any in the site hook's diff lines
afd434a6 dawn a write's candidate survives another activation's gc until it activates
a write's candidate survives another activation's gc until it activates
Signed-off-by: dawn <90008@klbr.net>
03c0e73f dawn a profile or handle change publishes from post-activate without waiting for a push
a profile or handle change publishes from post-activate without waiting for a push
Signed-off-by: dawn <90008@klbr.net>
4474e040 dawn getProfile answers the account's tangled profile record, not only its avatar
getProfile answers the account's tangled profile record, not only its avatar
Signed-off-by: dawn <90008@klbr.net>
e1acf087 dawn keep the lib tests' plc lookups on a dead local address
keep the lib tests' plc lookups on a dead local address
Signed-off-by: dawn <90008@klbr.net>
307f2a98 dawn give an account its handle in the first generation that names it
give an account its handle in the first generation that names it
Signed-off-by: dawn <90008@klbr.net>
19e226b1 dawn refuse config keys knot-static doesn't know instead of ignoring them
refuse config keys knot-static doesn't know instead of ignoring them
Signed-off-by: dawn <90008@klbr.net>
424e78e5 dawn link the index page's owners and repos to a configurable site
link the index page's owners and repos to a configurable site
Signed-off-by: dawn <90008@klbr.net>
89ed6059 dawn verify the handles of everyone the social records name, not only owners
verify the handles of everyone the social records name, not only owners
Signed-off-by: dawn <90008@klbr.net>
8c94a0b5 dawn leave very long file names to the maps instead of failing to lay them out
leave very long file names to the maps instead of failing to lay them out
Signed-off-by: dawn <90008@klbr.net>
996e396a dawn follow the cursor ticket search hands out
follow the cursor ticket search hands out
Signed-off-by: dawn <90008@klbr.net>