changelog
Define the database view once, in Go
go / declarative views moves the SQL of a database view into Go. A list of field definitions generates the view, and the same list drives the filter UI, so only one copy of the SQL exists. web / css describes a stylesheet in five layers with a lint for class names. Before, a style change on one page sometimes broke another page.
The job queue, pool, and test articles now say how a pool recovers after it loses a database connection, and what to do after editing a migration that already ran.
cmd / sockeye changed the most. It is my own git forge, so when a 277 KB diff didn't display, I raised its patch limit to 2 MiB.
A health check must fail when the service is broken
In web / health checks, the health endpoint now reads data that the service uses. That endpoint blocks traffic to a new version until it passes, and it runs every minute after that.
One rule changed in unix / systemd. Each service runs
as its own system user, so app state and credentials stay out of my
home directory. A missing useradd step doesn't matter anymore,
because StateDirectory= makes systemd create the directory.
apps / sports also has a description of the sports content agent.