v3.1.0
3.1.0 (2026-04-02)
Bug Fixes
- blog/dependency-peg: fix BotStopper link (32a5afa)
- blog/markdownlang: fixups after being reviewed (48745b4)
- blog: correct conversation tag from Mara to Cadey in Paranoid NixOS Setup post (#1058) (2a71365)
- builds now work (cf84bce)
- cmd/sponsor-panel: bring styles into line with my website (#1125) (907f1de)
- correct spelling in resume (#944) (355c6be)
- devcontainer: add other missing dependencies (00a5fee)
- disable series page (aa5fe25)
- distributed-git-ddos: add repo size public clone caveat (8b01e01)
- first go at replacing AI illustrations with photography in reverse chronological order (f75ec69)
- homelab-is-down: more words for the word gods (0fa9064)
- hydrate: print created filename to stdout (e6ea7d7)
- k8s/xesite: disable Anubis for now (4805df7)
- lume: exclude patron-exclusive posts from sitemap (#1057) (9b50a8c)
- make dev container ci build work (da1610f)
- manifest: use the right anubis image (13d99c8)
- mime: register SVG MIME type in init function (#1060) (3cdac09)
- notes/discourse: remove incorrect assertion about the bot owner (d3b42dd)
- notes/dubdub: link to github (69add04)
- notes/matrix: add smug thingy (916d815)
- notes/tormentmaxxing: small fixup (30b9bd8)
- oops (504e2d3)
- oops (47a8809)
- oops (c1b2805)
- remove resume from navbar (ffae9db)
- rolling-ladder: add Elder Kronk (0aee584)
- rolling-ladder: add Layl (c5ec63e)
- rolling-ladder: contra (3aec353)
- rolling-ladder: gdocs export issue fix (b1ce61c)
- see (631c260)
- skills/blogpost-creator: allow more tools (eb0a937)
- sponsor-panel: fake email shim for private GitHub users (#1197) (ff89f87)
- sponsor-panel: set public-read ACL on S3 uploads for Tigris (a39268a)
- thoth: avoid hairpinning by connecting directly to thoth in the cluster (01b9eb2)
- yotld: remove test (c1fe04f)
Features
- add ai-writing-tropes skill from tropes.fyi (#1164) (be73ea4)
- add donate page (9ae6cd1)
- Add GitHub Actions check to prevent future-dated content (#1065) (2943491)
- add neon-postgres skill from neondatabase/agent-skills (367049e)
- anubis: add S3 backend storage configuration (b97a59d)
- anubis: enhance bot detection with advanced browser validation (8f9696f)
- blog: add Anubis v1.25.0 linkpost (e1a9760)
- blog: add linkpost about billing with Prometheus (4df3b5d)
- blog: add linkpost about data time travel with DuckLake (5be94c5)
- blog: add linkpost about dataset experimentation with bucket forking (729b347)
- blog: add linkpost about filing abuse reports against cloud providers (4ea3070)
- blog: add linkpost about global replication (ba4cd04)
- blog: add linkpost about gpt-oss for AI agents (8b558cb)
- blog: add linkpost about odd CPU core handling (1aa8b3d)
- blog: add linkpost about Python development containers (59111bd)
- blog: add linkpost about Tigris Storage SDK (ca38789)
- blog: add linkpost for Tigris bucket forking deep dive (#1064) (f197ea7)
- blog: add note about Assisted-by commit footers being a good idea (78f6a93)
- blog: add reviewbot post (#1107) (bbec473)
- blog: An year of the Linux desktop (94aaef2)
- blog: avoiding becoming the lone dependency peg with load-bearing anime (fec22e7)
- blog: did zendesk get popped? (046c180)
- blog: discord migration linkpost (1e41aa6)
- blog: first look at the DGX Spark (c51f311)
- blog: hastily made coffee video (a7a8eac)
- blog: markdownlang (ea11a48)
- blog: portable monitors are good (#1135) (530adea)
- blog: rolling the ladder up behind us (4aaa803)
- blog: the discourse has been automated (c2ff5cc)
- blog: valve is about to win the console generation (13ebc01)
- blog: We dodged a bullet (f537aff)
- ceremony of eternal bonding (7ffbf8e)
- ci: allow scheduled posts with DO NOT MERGE instruction (#1129) (061445e)
- cmd/sponsor-panel: add background sponsor sync with pgxpool (#1130) (2ae28ad)
- config: update clacks (877872b)
- deployment: add data persistence and update ingress configuration (b6649f4)
- devcontainer support (d58110a)
- dhall: obviate the use of Prelude (0e079ce)
- docker: update Go version from 1.24 to 1.25 (881e3f0)
- feed: add external tag to linkposts in RSS feeds (#1059) (fe0c6c4)
- github sponsors webhook ingress (#1061) (0933293)
- index: replace GitHub sponsor iframe with styled sponsor card (6b5d46d)
- k8s: add Keel annotations and update anubis image tag (35ea9c7)
- k8s: add Keel annotations to xesite deployment (c2f08c6)
- linkpost to TI-20250709-0001 (f343370)
- lume: use ISO date format (bdf48cf)
- notes: add small post about ffxiv on a mac with keyboard and mouse (6e78f9a)
- notes: add steam deck bluetooth speaker post (9ca6532)
- notes: containerization framework (44e3696)
- notes: dns fight (a6f33fd)
- notes: don't use matrix (821093a)
- notes: experiment with dev containers (aff78cd)
- notes: git ddos (b9bcbba)
- notes: life update: medical leave (#1127) (9ca907d)
- notes: publish about tormentmaxxing simple requests (ea4ccd7)
- notes: slop signal: weird indentation for command lists (737f512)
- notes: the homelab is down (85fb14f)
- notes: the year of the linux desktop (ff86279)
- notes: writeup on Arcane Cheese (7bcead9)
- notes: zendesk complaint post 2 (463dd25)
- one of the howling blades of all time (2eb08bd)
- secrets: add Tigris integration secret (451b5d9)
- shitposts: CVE-2025-62229 (#1062) (39ce049)
- skill: add publication date extraction and safe file reader (15ec6a5)
- skill: add publication date extraction for linkposts (e005b41)
- skill: enhance blogpost-creator with URL slug extraction and auto-fetching (81ede12)
- skills: add conventional commits skill from tigrisdata/skills (#1159) (5a8620e)
- sponsor-panel: add Patreon OAuth login support (#1179) (0bed8e5)
- sponsor-panel: add Thoth token issuance card (#1196) (a124314)
- sponsorship panel (#1117) (8cd83af)
- talks: add BSDCan lightning talk (e48c196)
- use time tag for date (#760) (a161467)