Version v1.79.0 Changelog July 17, 2026
Breaking Changes
- Engine/Swift, Editor/iOS, Camera/iOS: Packages for Apple platforms are now built with Xcode 26.4.1 and Swift 6.3.1, which are the new minimum requirements for using them.
Non Breaking Changes
-
Editor/Web: Added the following new keyboard shortcuts:
F6/Shift+F6— cycle focus forward / backward through the main editor regions (canvas, inspector bar, canvas menu).Alt+1/Alt+2/Alt+3— move focus directly to the canvas, the inspector bar, or the canvas menu.Escape— dismiss the tooltip that is currently shown.
-
Engine: Added asset source faceting.
findAssetsaccepts afacetsrequest (property pathsgroups,tags, ormeta.<key>) and returns value distributions with counts over the matched set. Local asset sources compute these automatically; custom sources can return them from theirfindAssetscallback. -
Engine/Android: Added the structured
filterandfacetsparameters to asset queries and facet distributions on query results. -
Engine/Swift: Added the structured
filterandfacetsparameters to asset queries and facet distributions on query results. -
Editor/Web: The typeface library’s language filter now derives its options from typeface
meta.languagesvia asset facets, instead ofgroups. -
Editor/Web: Added the UI for clip-to-clip transitions. Add one between two adjacent clips on the timeline, choose a type from the library (cross fade, cross blur, wipe, push, slide, and more), tune its settings with a live canvas preview, and apply or remove transitions across a whole track at once.
-
Engine: Added clip-to-clip transitions — a new API (
createTransition,setTransition,removeTransition,getTransition,supportsTransition), exposed in the Web, Android, iOS, and Node.js bindings, with a catalog of transition types (none,cross-fade,cross-blur,cross-spin,cross-zoom,cross-warp,push,slide,stack,splice,diagonal-splice,fade,fade-to-white,fade-to-black,wipe,line-wipe,clock-wipe,color-wipe,gradient-fade,chop,two-stripes). Transitions overlap adjacent clips with a clamped duration, cross-fade audio automatically, and expose editable properties (duration, direction, color, slices, and amorphflag) via generic block setters; when morph is enabled, position, rotation, scale, and shape are interpolated between the outgoing and incoming clip. -
Editor/Web: Added keyboard shortcuts that mirror pointer/drag gestures on the canvas and the video timeline, so both can be driven from the keyboard for accessibility.
- Canvas transforms (selected block): nudge the crop area with the arrow keys, rotate with
Alt+arrows, and resize withMod+arrows (orMod+Alt+arrows to resize from the opposite edge). HoldShiftfor a larger step. - Video timeline (selected clip): move a clip earlier/later with the arrow keys, insert it into a gap while pushing later clips with
Mod+arrows, move it to the track above/below or to a new track withMod(+Shift)+ArrowUp/ArrowDown, and trim its in/out points withAlt(+Shift)+arrows. HoldShiftfor a larger step. - Playhead: skim frame-by-frame with
,/., jump further withShift+,/Shift+., and jump to the start/end withHome/End.
See the Keyboard shortcuts guide for the full list.
- Canvas transforms (selected block): nudge the crop area with the arrow keys, rotate with
-
Engine: Added the
text/useContextualAlternatesandcaption/useContextualAlternatesboolean properties to enable or disable the OpenType contextual alternates (calt) feature during text shaping. Contextual alternates remain enabled by default. Disabling them keeps a font’s context-dependent glyph substitutions (such as the connectedtswashes in Caveat) from being applied, so identical characters render with identical glyphs. -
Editor/Android: The asset library now refreshes automatically when a source’s contents change via
engine.asset.assetSourceContentsChanged(sourceId=_). Any open library showing that source re-queries and updates in place. -
Editor/Web: Fixed the Bold/Italic and Underline/Strikethrough toggles being unresponsive on caption blocks in the video editor. These controls now apply to the selected caption, matching their behavior for text blocks. The inspector bar’s font weight/style dropdown is now also available for captions.
-
Editor/Flutter: Fixed an issue where effects applied to paused videos were not immediately visible when using TextureView.
-
Editor/iOS: The “Could not create View for …” error messages shown when the Dock, Canvas Menu, Inspector Bar, Navigation Bar, or an editor component fails to build are now localizable (and ship with German translations), matching the rest of the editor UI. Previously they were hardcoded in English.
-
Editor/iOS: Fixed the sheet dismiss button rendering a doubled circle under iOS 26 Liquid Glass.
-
Engine/Node:
@cesdk/nodeno longer probes the browserlocalStorageglobal during initialization on Node.js. On Node 22.4+ the experimental Web Storage global is a getter thattypeofevaluates, which printed anExperimentalWarning(Node 22.x) or threwERR_INVALID_ARG_VALUE(Node 23+/24) when--localstorage-filewas not provided. Headless Node has no browser Web Storage, so the engine now short-circuits this feature detection there. Browser detection is unchanged. -
Editor/Web: Fixed the “Resize Page” panel rendering completely empty when no page preset sources are configured. The page size inputs are now always shown and only the preset library section is omitted.
-
Engine: Rendering a block with a broken fill, effect, or frame reference (e.g. from a corrupt scene file) now flags the block with an error state instead of crashing the render loop.
-
Engine: Loading blocks or templates whose serialization contains references to missing elements now removes those references and flags the affected blocks with an error state, instead of leaving the references pointing at unrelated blocks, which could corrupt rendering.
-
Engine: Added the block error code
BROKEN_BLOCK_REFERENCE, reported when a broken block reference is removed on load or encountered during rendering. -
Editor: Fixed snapping guides appearing for hidden blocks and pages.
-
Engine: Fixed a crash when rendering text whose font resource had been evicted under memory pressure, e.g. while generating page thumbnails for the page overview. Text now falls back to the default font while the evicted font reloads and switches back automatically once it is ready.
-
Editor/Web: Fixed timeline duration formatting to zero-pad single-digit minutes when hours are present (e.g.
2:01:51.7instead of2:1:51.7). -
Editor/Web: Fixed the typeface library panel collapsing an expanded typeface’s variants when a search was typed just before expanding it. Search mode now activates as you type instead of after the debounced query settles, so the list is no longer torn down under an in-progress interaction.
-
Engine: Loading a video whose codec is not supported (e.g. AV1 video or Opus audio in an MP4) now fails with a clear, actionable error naming the actual codec fourcc and the supported codecs to re-encode to, instead of a generic “OTI=0” message. The failure is surfaced as a distinct
VIDEO_CODEC_UNSUPPORTED/AUDIO_CODEC_UNSUPPORTEDerror code so it can be distinguished from a generic decode failure. -
Editor/Web: Fixed video clip thumbnails in the timeline sometimes not updating after replacing a video, and sometimes staying stuck on the loading indicator.
-
Engine: Per-character and per-word text animations that fade each glyph (Pan, Fade, Blur, Zoom, …) now play back smoothly on large text blocks, including curved text
-
Engine: Underlines and strikethroughs now animate together with the text during per-character and per-word in and out animations, instead of only appearing once the animation finishes