Repository navigation
Release 0.33.0
Release 0.33.0. Version bumped in the six places the previous releases move; no other change.
What is in it
Configurable themes. 47 tokens over thirteen groups — surfaces, text, lines, accents, status, charts, elevation, shape, density, typography, motion, chrome — edited on their own admin page, with a live preview and contrast warnings. Colours are RGB triplets so Tailwind's <alpha-value> keeps working, and five of the tokens are multipliers folded into hand-tuned values through calc(), which makes 0 a feature: shadow-strength: 0 is a flat interface, motion-scale: 0 a still one.
An owner distinct from the other administrators. Federation governance, uploaded fonts and free-form CSS are owner-only and re-authenticate; ownership transfers under an advisory lock and can be relinquished.
Owner-authored CSS, parsed rather than filtered. css-tree builds an AST, the rules are structural, and the output is regenerated from the AST so a browser never sees the bytes that were typed.
Self-hosted fonts. fonts.googleapis.com and fonts.gstatic.com are gone from every Content-Security-Policy; no visitor's IP reaches Google. Owners can upload a woff2 face for a role.
A site default that applies to somebody. users.theme is nullable and NULL means "follow the site default" — so changing the default moves everyone who never chose, which it previously did for nobody.
Upgrading
doc/guide/upgrading.md has the section. The short version: nothing to run, and do not run two versions against the same database at once while the theme migration lands. A single instance that stops and starts is unaffected.
Verified
typecheck clean · 423 API unit · 519 web unit · 449 integration · 178 end-to-end, across both build shapes (front-ssr and the static front).
🤖 Generated with Claude Code
What's Changed
Full Changelog: 0.32.0...0.33.0