This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+2 more
Affected surfaces
ReleasePort's take
Moderate signalRelease v3.1.0 adds multiple onboarding and API enhancements while introducing a breaking change to webhook event naming.
Why it matters: The unified `content.changed` and `translation.changed` webhook events replace existing ones, requiring integration updates; severity score is 70.
Summary
AI summaryBroad release touches 🔌 V1 Public API, 🔧 Backend / Infrastructure, 📄 Contents, and ✨ New Features.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | High |
Breaks webhook events: replaces `content.updated` / `translation.updated` with unified `content.changed` / `translation.changed` Breaks webhook events: replaces `content.updated` / `translation.updated` with unified `content.changed` / `translation.changed` Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Adds Setup Component onboarding flow for initial user configuration Adds Setup Component onboarding flow for initial user configuration Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Adds Schemas API endpoint to retrieve all schemas for a space (`GET /v1/spaces/:id/schemas`) Adds Schemas API endpoint to retrieve all schemas for a space (`GET /v1/spaces/:id/schemas`) Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Adds CDN image transform parameters `h`, `q`, and `f` to asset CDN endpoint Adds CDN image transform parameters `h`, `q`, and `f` to asset CDN endpoint Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Persists selected environment across sessions Persists selected environment across sessions Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Shows fallback locale link by default on content pages Shows fallback locale link by default on content pages Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Generates draft automatically after write operations without manual publish step Generates draft automatically after write operations without manual publish step Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Conditionally generates draft files only when translations are imported Conditionally generates draft files only when translations are imported Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Adds change detection for asset, content, schema, and translation imports (skips unchanged files) Adds change detection for asset, content, schema, and translation imports (skips unchanged files) Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Improves translation status indicator UI Improves translation status indicator UI Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Detects dirty/unsaved changes in content visual editor Detects dirty/unsaved changes in content visual editor Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Improves content document status UI with multiple status transitions Improves content document status UI with multiple status transitions Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Enhances save form functionality in the visual editor Enhances save form functionality in the visual editor Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Enhances tracking of content history changes Enhances tracking of content history changes Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Improves link selection component handling of documents and adds unit tests Improves link selection component handling of documents and adds unit tests Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Rebuilds export dialog with reactive forms and dynamic asset/content search Rebuilds export dialog with reactive forms and dynamic asset/content search Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Removes `fromDate` field from export tasks, simplifying the export model Removes `fromDate` field from export tasks, simplifying the export model Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Redesigns import dialog layout for improved usability Redesigns import dialog layout for improved usability Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Enhances request/response logging for the public API Enhances request/response logging for the public API Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Updates OpenAPI service summaries for clarity Updates OpenAPI service summaries for clarity Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Makes Firebase Functions region configurable via environment variable Makes Firebase Functions region configurable via environment variable Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Dependency | Low |
Upgrades Tiptap rich text editor to v3.x (renamed to Rich Text component) Upgrades Tiptap rich text editor to v3.x (renamed to Rich Text component) Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Dependency | Low |
Upgrades Angular dependency Upgrades Angular dependency Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Dependency | Low |
Updates `@stoplight/elements` for improved OpenAPI UI Updates `@stoplight/elements` for improved OpenAPI UI Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Performance | Low |
Upgrades Node.js to version 24 Upgrades Node.js to version 24 Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Performance | Low |
Streams file uploads directly to GCS in Firebase Functions, reducing memory usage Streams file uploads directly to GCS in Firebase Functions, reducing memory usage Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Bugfix | Low |
Fixes asset click not opening preview Fixes asset click not opening preview Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Bugfix | Low |
Resolves form validation issue in multiple dialogs Resolves form validation issue in multiple dialogs Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Refactor | Low |
Refactors schema retrieval to use a `Record<id, schema>` map for better performance Refactors schema retrieval to use a `Record<id, schema>` map for better performance Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Refactor | Low |
Improves `resolveLink` and `resolveReference` logic in content API responses Improves `resolveLink` and `resolveReference` logic in content API responses Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
Full changelog
What's Changed
✨ New Features
- Setup Component — New onboarding flow for initial user configuration
- Schemas API Endpoint — New endpoint to retrieve all schemas for a specific space (
GET /v1/spaces/:id/schemas) - CDN Image Transform Parameters — Added
h(height),q(quality), andf(format) query parameters to asset CDN endpoint - Environment State Persistence — Selected environment is now persisted across sessions
- Fallback Locale as Default Content Link — Content pages now show the fallback locale link by default
🔄 Translations
- Automatic draft generation after write operations (no manual publish step required)
- Draft files are conditionally generated only when translations are imported
- Change detection for asset, content, schema, and translation imports (skip unchanged files)
- Translation status indicator improvements
📄 Contents
- Content dirty/unsaved-changes detection in the visual editor
- Content document status UI improvements (multiple status transitions)
- Save form improvements for the visual editor
- Content history tracking enhancements
- Link selection component: improved document handling + unit tests added
- Fixed handling of non-translatable fields in document schema editor
📤 Export / Import
- Export dialog rebuilt with reactive forms and dynamic asset/content search
- Removed
fromDatefield from export tasks (simplified export model) - Import dialog layout redesigned for improved usability
🎣 Webhooks
- Content and translation webhooks now emit a unified
changedevent (breaking: replaces separate events)
🔌 V1 Public API
- Improved
resolveLinkandresolveReferencelogic in content responses - Improved request/response logging
- Updated OpenAPI service summaries for clarity
- Schema retrieval refactored to use a
Record<id, schema>map for better performance
🎨 UI / Design System (Spartan UI Migration)
- All major dialogs migrated from Angular Material to Spartan/Helm (
hlm) components:- User & invite dialogs, space dialogs, assets-select dialog, references-select dialog, debug panels
mat-expansion-panelreplaced withhlm-accordionthroughout- New
hlm-selectcomponents with clearable option and placeholder support - Markdown editor: improved heading styles and visibility
- Auth page: redesigned layout with repositioned theme switcher and logo
- Feature carousel: improved image formatting
- New animated background components (beams, meteors, galaxy, matrix, starfield, laser-grid, pollen, prism, topography, dot-pattern)
🔧 Backend / Infrastructure
- Firebase Functions: file uploads now streamed directly to GCS (reduced memory usage)
- Functions region now configurable via environment variable
- Node.js upgraded to v24
- Tiptap rich text editor upgraded to v3.x (renamed to Rich Text component)
- Angular dependency upgrade
- Docker image updates
@stoplight/elementsupgraded for OpenAPI UI
🐛 Bug Fixes
- Fixed asset click not opening preview
- Fixed form validation issue in multiple dialogs
- Fixed CI cloud build YAML formatting
🔖 Migration Notes
- Webhook event change:
content.updated/translation.updatedevents are replaced by a singlecontent.changed/translation.changedevent. Update your webhook consumers accordingly. - Tiptap v3 upgrade may require template updates if you use the rich text field type in custom integrations.
Breaking Changes
- Webhook events `content.updated` and `translation.updated` replaced by unified `content.changed` and `translation.changed`.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About localess
Localess is a powerful translation management tool and content management system built using Angular and Firebase. With Localess, you can easily manage and translate your website or app content into multiple languages, and it uses Artificial Intelligence to translate faster.
Beta — feedback welcome: [email protected]