Repository navigation
New Features
-
Edit blocks from the page preview
When you select a block in the Visual Editor preview, a small toolbar now appears on it. You can move the block up or down, duplicate it or delete it (delete asks you to click twice) without going back to the form. The form uses the same rules and keeps the changes as unsaved edits until you save. -
Flexible preview URLs
Environment URLs now accept placeholders:{fullSlug},{slug},{parentSlug},{documentId},{locale}and{locale/}. The locale can even go in the host, as inhttps://{locale}.site.com/{slug}. Each URL field shows an example of the page it will open, and unknown placeholders are rejected. URLs without placeholders work as before. -
Clearer preview connection
The preview tells you what's going on instead of failing silently:- If the page doesn't connect within a few seconds, a hint lists what to check.
- The status tooltip shows which SDK version connected.
- A warning appears when the page loads content from a different Localess deployment.
- A notice appears when the page shows a different document than the one you're editing, with a button to go back.
- Reloads and in-page navigation reconnect automatically.
-
Raw translation export
A new endpoint,GET /api/v1/spaces/:spaceId/translations/:locale/values, returns only the values actually stored for a locale, without fallback filling. You can pull a file, edit it and push it back without the fallback language's text being saved as translations. The CLI uses it forlocaless translation pull --raw. -
Choose whether to overwrite when translating a locale
Translating a whole locale can now replace existing values instead of only filling the empty ones.
Improvements
-
Sync script for multi-document pages and debugging
- Editor events (
save,publish,unpublish,input,change) now includedocumentId, so a page that renders several documents (for example a shared header plus the page) updates only the matching one. on()andonChange()now return an unsubscribe function, and there is a newoff().- Console logs and snackbar messages now only show when debug mode is on (
data-debugon the script tag).
- Editor events (
-
Shareable space links
The URL now decides which space is open. A link to another space opens that space instead of whatever was selected last. Links to deleted or unknown spaces redirect cleanly with a warning. -
More reliable live data
The schema and document listeners now follow the selected space, retry with exponential backoff after an error and show a notification when something goes wrong. -
Correct translatable flags
Reference, References, Schema and Schemas fields can no longer be marked translatable. Their value is the same in every locale, and nested blocks translate their own fields. Schemas pushed through the API have the flag removed, and old flags already stored are ignored. Fields that aren't translatable are read-only outside the default locale. -
Safer schema push
Schema push (POST /api/v1/spaces/:spaceId/schemas) rejects Schema/Schemas fields that have no allowed schemas, because the editor couldn't add any block to them. The schema editor now requires this list too. Imports still accept such fields.
⚠️ Breaking Changes
-
Translation push:
delete-missingwas split in two
Thetypefield ofPOST /api/v1/spaces/:spaceId/translations/:localeno longer acceptsdelete-missing. Use one of:delete-missing-keydeletes the whole translation, in every locale, for each ID not invalues. Run it with a complete file, normally the source locale.delete-missing-valueremoves only the pushed locale's value. Other locales keep theirs.
-
Translation push response is simpler
Thecountsobject is gone, andidsis now a flatstring[]with only the IDs that the request'stypewrote (or would write, on a dry run).update-existingskips values that didn't change. -
schemais no longer a reserved field name in content
A block's schema is now stored only in_schema, and the API no longer returns the legacyschemakey. Blocks saved under the old key are still read, and they move to_schemathe next time they're saved. If your frontend readsblock.schema, switch it toblock._schema.
Please upgrade
@localess/cliand your Localess SDKs together with this release.
Bug fixes
- CDN cache redirects now URL-encode the path and query values they copy into the redirect URL, so a crafted value (for example
en&token=x) can no longer add parameters to the redirect. - Unsaved changes in the document editor are no longer lost or overwritten during quick edits or while the preview is connected.
- Cloud Build now enables all the Firebase APIs it needs (Hosting, Firestore, Rules, Identity Toolkit) and no longer needs the Billing API.
- The Docker image now uses Java 21 for the Firebase emulators.
- Updated Firebase and AngularFire.