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

open commit browse files

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.

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files

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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
5453e320 dawn list pages serialize each record once

list pages serialize each record once

Signed-off-by: dawn <90008@klbr.net>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files

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

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
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>

open commit browse files
996e396a dawn follow the cursor ticket search hands out

follow the cursor ticket search hands out

Signed-off-by: dawn <90008@klbr.net>

open commit browse files
older commits →