v0.14.1
Security
Breaking Change
v0.14.1 - Token expiry, strict ETags and live-subscription entitlements
Expired API tokens are rejected, if_match is a strict lock on every save tool, and plan-tier features come only from live subscriptions.
Breaking Changes
This release contains breaking changes. Please review the migration guide below before upgrading.
Security
- Expired API tokens are now rejected. Creator-instance tokens with a sliding 24-hour expiry were previously accepted forever. User tokens without an expiry are unaffected.
- A member removed from an account no longer keeps receiving that account's chat streams on an open tab, and cannot resubscribe with a saved stream name.
Changes
if_matchis strict on all eight save tools (entries, collections, blueprints, globals, navigations, navigation items, templates, forms): a malformed or emptyif_matchis a conflict, not "skip the check". Only omitting it skips. Forms now carry an ETag (they previously returnednulland errored on a well-formedif_match).- Billing: plan-tier features are granted only from an active or paused subscription. A canceled, past-due or unpaid subscription no longer keeps its tier's features.
- The chat assistant can now use the account contexts tools (
contexts_list,contexts_get,contexts_save,contexts_delete). - Account subdomains are normalized (trimmed, lowercased) on save; a mixed-case subdomain that previously 404'd now resolves.
Migration Guide
- Token expiry: clients using creator-instance API tokens must refresh them; a token past
expires_atnow returns401. if_match: send the exact ETag returned by the last read, or omit the parameter. Empty strings and malformed values now fail with a conflict.- Entitlements: accounts on a canceled or past-due subscription lose tier-gated features until billing is current.