chaipro v0.3.0
Released 2026-08-02. Upgrading from v0.2.7.
A minor bump, which in the pre 1.0 line is where breaking changes land. Read the
breaking group before upgrading. The theme of the release is AI plumbing: credit
accounting consolidates into one plugin, and a provider that cannot be loaded now says so
instead of quietly routing your requests somewhere else.
Breaking
- The
ai-creditsplugin is removed. Credit accounting, the credit schema and the action that reads a balance all live in the plans plugin now, which already carried a superset of them. Remove the AI credits plugin from your plugin list and make sure the plans plugin is registered instead, on both the server and the client. The deprecated alias that stood in for it since the merge is gone, so an unchanged config fails at registration rather than silently doing nothing. - The AI credits balance in the builder is owned by the plans plugin. The balance shown in the AI panel header comes from the plans client plugin, so registering only the AI plugin leaves it out. The AI credits feature flag is set exclusively by the plans plugin and cannot be turned on from your own config, which means the builder can no longer render a credits balance against an action that is not registered.
- The AI credit purchase flow is a dedicated page, not a sidebar panel. Update any deep link you kept to the old panel.
Added
- A client half of the plans plugin, which contributes the AI credits balance into the AI panel header. Register it alongside the server plugin if you meter AI usage.
Changed
- Builder interface polish: interactive controls across menus, dialogs, tabs, sliders and accordions show a pointer cursor and a blocked cursor when disabled, and the shared search box in the add block panel sits below the tab strip rather than above it, so the tabs stay in the same place as you move between them.
Fixed
- An AI request with an unloadable provider fails with a message you can act on. A provider that was configured but could not be built used to be logged once on the server and then ignored, with every request quietly routed through the default gateway instead. The gateway's own errors then surfaced in the builder as unrelated AI failures, most commonly a usage limit warning for an account you never meant to use. The error now names the provider, names the package to install, and says how to opt back into the gateway.
- Optional AI provider packages are reachable under Turbopack. The optional import was rewritten by the bundler into a stub that always failed, so an installed provider was unreachable and a configured provider key was silently ignored. A genuinely missing package still reports as missing.
- A provider that failed to build is retried when its configuration or its credentials change, instead of the failed attempt being cached indefinitely.
- Bound page metadata no longer renders escaped HTML entities. A page title bound from content containing an ampersand showed the raw entity in the browser tab and in search results. Metadata is plain text end to end, so entities are decoded across all SEO fields.
- Heading anchor ids survive raw binding sanitization. The sanitizer stripped the ids stamped on headings inside bound rich text, so every in page anchor link and every search deep link landed at the top of the page instead of the section. Headings may now keep their id, and nothing else the sanitizer strips has changed.
- The scroll to bottom button in the AI panel is clickable while a generation is running. It was visible but sitting behind the loading overlay.
- A failed AI task no longer renders a trailing ellipsis after its label.
Removed
- Stock image search during AI page generation. Hotlinked provider images break when the source moves or deletes them, and the licensing and attribution their terms require could not be guaranteed. AI generated pages use neutral placeholders again. The media manager's own stock photo search is unaffected, because it downloads the image properly, and the stock photo provider environment variables now apply to that tab only.
Upgrade notes
- Swap the AI credits plugin for the plans plugin, server and client, before upgrading. If you do not meter AI usage, you can drop it without a replacement.
- Check your AI provider configuration after upgrading. Failures that were previously swallowed now surface as errors in the builder, so a misconfiguration that looked like it was working may start reporting.
Related
- AI Setup - provider credentials and the gateway default.
- Configuration - the plugin list and feature options.
- Data Binding - bound values in content and SEO fields.
- chaipro Changelog - all releases.

