v0.15.4 - Billing receipts and dependency upgrades
Charge receipts download again after the Pay 12 and receipts 3 upgrades, and nested navigation items stay valid under acts_as_tenant 2.
Read moreTrack the latest updates, features, and improvements to Airogel CMS.
Charge receipts download again after the Pay 12 and receipts 3 upgrades, and nested navigation items stay valid under acts_as_tenant 2.
Read moreThe chat assistant's persistence and tools move to RubyLLM 2.0.
Read moreCustomer sites answer malformed and probing requests with a plain 404 instead of 406, 422 or 500.
Read moreRedirect rules send an exact path or a whole path prefix to another URL, including another host, optionally per domain.
Read moreOld MCP tool names are routed to their current tools, so cached tool lists and connector manifests keep working.
Read moreDependency updates only; no customer-visible changes.
Read moreA collection's ETag now changes when its blueprints change, so if_match detects schema edits.
Read moreentries_patch_field edits part of a text field without resending it, and entries can be saved into a collection that owns no blueprint.
Read moreCollections and globals with hyphenated handles created before the snake_case rule can be updated again.
Read moreSecond deploy of the entity-reference change; readers use the single key and export takes the first reference.
Read moreSingle and multiple entity selections are stored under one key; existing rows were backfilled.
Read moreReal-time updates follow the account you switched to, unresolved routing tokens no longer claim URLs, and several 500s become proper errors.
Read moreThree validations are now enforced: event ticket pricing consistency, navigation item parents, and snake_case context handles on every write path.
Read moreentries_query_by_relation gains summary truncation, entity not-equals filters work, and multi-file theme uploads commit together.
Read moreREST validation errors have one shape, image fields return asset ids, {% paginate %} pages in the database, and form notifications wait for the spam verdict.
Read moreAccount subdomains and collection handles are now unique at the database level.
Read moreExpired API tokens are rejected, if_match is a strict lock on every save tool, and plan-tier features come only from live subscriptions.
Read moreFixes MCP connections from Claude Code, lets users without an account create one, makes account deletion complete, and tightens constituent identity.
Read moreOAuth tokens now only see and call the MCP tools their scopes allow, and blueprint field writes are validated in full before anything is changed.
Read moreAsset filenames are now required at the database level; no change for API callers since filenames are derived automatically.
Read moreCustom domains are canonical, globally unique hostnames; blueprint handles are unique per account; every asset gets a filename.
Read moreEvery blueprint in an account now has its own handle.
Read moreA blueprint now belongs to exactly one collection, navigation or global, enforced by the database.
Read moreAsset paths, blueprint field handles, stored values and content paths are now unique at the database level, and collections_save no longer shares one blueprint between collections.
Read moreRemoves two Liquid tags that could never render, and adds read-only data audits ahead of new integrity constraints.
Read moreThe central app and API answer only on platform hostnames, blueprint field edits are bound to their parent blueprint, and search reindexes on handle changes.
Read moreMCP gains delete tools for blueprints, collections, globals, navigations and forms, and collections_save can now clear fields and detach templates.
Read moreDependency updates only; no customer-visible changes.
Read moreServing / now requires root_routing, bounced and complained addresses are suppressed automatically, REST errors carry the right status code, and unsupported query filters error instead of returning everything.
Read moreCloses a hostname spoofing hole, fixes content import losing every asset reference, and corrects several MCP and chat-tool contracts.
Read moreDependency updates and template-linting setup; no customer-visible changes.
Read moreForm submissions are screened by fast deterministic rules before the AI classifier, and the model registry can be refreshed from the spam settings card.
Read moreRich-text fields saved through MCP no longer accumulate nested wrappers on every edit.
Read moreFixes globals created with values in one call, SEO title/description fallbacks on entries, and asset uploads that silently did nothing when a file already existed.
Read moreDependency updates only; no customer-visible changes.
Read moreAdded a Number blueprint field type and URL redirects, plus a Rails security update
Read moreAdded a shared constituent identity layer, a member portal, and the {% doc %} Liquid tag
Read moreAdded a /content admin UI for Events and rebuilt the default starter site
Read moreUpgraded to Avo 4 and Pagy 43, replaced Trix with Lexxy, and added Events/EventTickets
Read morePatched a CVE in Avo and shipped a broad set of gem/npm security upgrades alongside API and Liquid fixes
Read moreAdded entity field routing, a markdown-based site scraper, and chat token-window safeguards
Read moreAdded AI Contexts, a model benchmark system, and account/subscription creation via API and MCP
Read moreFixed several Creator Mode and account management issues
Read moreOverhauled Creator Mode's provisioning infrastructure and fixed a wide range of editor bugs
Read moreLaunched Creator Mode, an AI-driven site building workflow with its own provisioning and billing
Read moreAdded Stripe subscriptions, plans, and manual entry ordering
Read moreAdded custom domain auto-registration and upload sessions for MCP clients
Read moreAdded Account Contexts to steer AI behavior per account
Read moreIntroduced an in-app AI chat interface with admin support
Read moreRefactored the dashboard, split out analytics, and laid the groundwork for chats
Read more