Release notes

Build Stability Upgrade

Removed the recurring build-time `SQLITE_BUSY` contention by isolating author pages from D1 blog reads and shifting feed and index surfaces to runtime generation.

  • Author profile pages no longer read the live blog repository during static generation
  • Sitemap, feeds, and LLM index routes moved off build-time D1 reads
  • Cloudflare builds now complete without the previous SQLite lock warning path

The build pipeline previously hit SQLite contention because several generated surfaces tried to read published content in parallel during static generation. The most visible symptom was an intermittent `SQLITE_BUSY` failure or warning during Cloudflare builds.

That build path has now been hardened by isolating author pages from live D1 access and moving sitemap, feed, atom, and LLM index generation to runtime. The result is a cleaner production build path without the same parallel-content lock pressure.

Related notes

More updates

See the nearby changes that shaped the site, the products, and the publishing layer around them.

New Cleanor iOS cleanup categories for Dark Photos, Blurry Photos, and Dark Videos

Added three new cleanup categories to Cleanor for iOS—Dark Photos, Blurry Photos, and Dark Videos—so low-quality media is easier to find, review, and clear in one pass.

Tool category hubs and permanent `/tools/[slug]` routing

Launched permanent category hubs under `/tools/[slug]`, tightened category naming, and made the tool discovery layer easier to crawl, browse, and retrieve.