Hey Anna app developers! ![]()
Fresh off the big @handle/slug namespacing release in beta.53, these two follow-up drops are all about making that feature bulletproof and opening up our docs to your AI agents. Both are 100% host-side — zero changes needed in your app code. Let’s dive in! ![]()
Wire protocol is unchanged:
dispatcher_versionstays0.10.0,anna-app-schema0.10.0,anna-app-runtime-local0.2.0a9, and pairs with@anna-ai/cli0.1.30. Nothing to upgrade on your side.
beta.54 — Slug Namespacing, The Way It Was Always Meant to Be
Remember the shiny new @handle/slug namespacing from beta.53? Turns out a sneaky leftover constraint was quietly undermining it. We squashed it. ![]()
The fix
Two developers can finally share the same slug — for real this time. The beta.53 migration was supposed to drop the old global UNIQUE(slug)rule and replace it with a per-developer compositeUNIQUE(developer_id, slug). But the drop targeted Postgres’s auto-generated constraint name (anna_apps_slug_key) while the table actually used an explicitly-named one (uq_anna_apps_slug) — so theDROP ... IF EXISTSsilently did nothing, and the old global uniqueness stayed alive.
The symptom you might have hit: create_appsailed through the namespace pre-check, then blew up onCOMMITwith anIntegrityError— surfaced to you as a confusingSLUG_TAKEN_IN_NAMESPACE, even though nobody in your namespace had that slug. If you ever saw “slug taken” for a name you knew was free, this was why.
The cure: a new idempotent migration drops the real leftover constraint by its true name (and defensively the auto-generated one too — both no-ops when absent). Your todois yourtodo, someone else’stodois theirs. As promised.
Plus a tiny ops fix: shortened an over-long Alembic migration revision id that exceeded the version_num varchar(32)column and was tripping up CI. Smoother deploys for everyone.
Why you’ll love it: the whole promise of namespacing — no more slug squatting, your identity is yours — now actually holds end-to-end. If beta.53 gave you a phantom “slug taken,” just try again on a host running beta.54+ and you’re golden.
beta.55 — A Developer Hub Your AI Agents Can Actually Read
Building Anna apps with an AI coding agent? You’ve probably pointed it at our Developer Hub… and watched it come back with an empty shell.
Here’s the thing: our docs are rendered client-side in JavaScript, but agents and crawlers fire a single GET and don’t run JS — so all they got was a hollow HTML skeleton. Not anymore! ![]()
What’s new for you
-
Pure-Markdown content negotiation. Every reference and article page now serves the exact same content as clean Markdown when you ask for it. Three easy ways:- add a
.mdsuffix to the URL - append
?format=md - send
Accept: text/markdown
- add a
-
llms.txtdiscovery, by convention. Point your agent at the new well-known entry points:/llms.txt # the discovery manifest /llms-full.txt # the whole hub, inlined /developers/reference.md # the full Host API reference indexYour AI assistant can now slurp the real docs and write correct app code on the first try.

-
Brand-new Chat Host API reference. A dedicated reference section for the Chat Host API, freshly added to the catalog. -
Reference refresh across the board. Updated and tightened references for the agent, chat, embed, files, image, llm, and storage Host APIs — plus a refreshed developer landing page so humans have a nicer time too. 
Why you’ll love it: whether you’re copy-pasting into an LLM or wiring up an autonomous agent, our docs are now machine-readable with deterministic Markdown output. Less hallucinated API shapes, more shipping.
Compatibility Notes
No app code changes required for either release — both are entirely host-side.
Wire protocol unchanged. dispatcher_version0.10.0,anna-app-schema0.10.0,anna-app-runtime-local0.2.0a9— all steady. Keep@anna-ai/clion0.1.30.
beta.54 is a database migration. Once your host applies it, slug namespacing behaves exactly as advertised in beta.53. Already published/installed apps keep their frozen slugs and stable links. 
Feedback Welcome!
Did beta.54 finally free up that slug you wanted? Got your AI agent reading /llms.txt yet? We’d absolutely love to hear how it goes — drop your questions, feedback, or wild ideas below. Happy building! ![]()
![]()
