Current status
Repository version: 1.2.0. This is the first stable 1.2 release. The 13 @aelionsdk/*
packages publish under the npm latest tag. The npm badge and registry are authoritative for what
is currently published.
1.2.0 compile freeze and playback
Section titled “1.2.0 compile freeze and playback”This release keeps the rc.2–rc.5 work and additionally:
- incremental compile reuses already-frozen IR subtrees and caches track fingerprints by object identity;
- preview bypass hands the decoded
VideoFrameover uncopied (RenderIrFrameResult.bitmapisImageBitmap | VideoFrame; readwidth/heightfrom the result); - PCM window-cache hits skip decoder and operation admission;
- audio PCM decode sessions are reused across sequential fills;
- pause disconnects the worklet without flushing the ring;
- the preview clears after the last visual clip ends;
- items that own markers can be split.
rc.5 compositor path
Section titled “rc.5 compositor path”This candidate keeps the rc.2–rc.4 work and additionally:
- pooled WebGL2 render targets and one context across render-scale changes;
- preview compositor bypass when the decoded source already matches the frame;
- preview
maxDimensiondownscale at the provider boundary (export stays full resolution); - shared LRU raster cache for text, generators and shapes.
rc.4 interactive preview
Section titled “rc.4 interactive preview”This candidate keeps the rc.2 remediations and rc.3 preview-runtime fixes, and additionally:
- text/caption background plates, with inflated ink boxes and raster targets;
- optional
transientmedia requests so thumbnails and filmstrips bypass the persistent playback decoder; - interactive commits that admit caller-supplied values at the transaction boundary instead of re-cloning the whole Project;
- playback that follows the clock, skips recoverable queue-full errors, and still rejects a superseded or disposed seek.
rc.3 preview runtime
Section titled “rc.3 preview runtime”This candidate keeps the rc.2 contract remediations and additionally:
- pixel-space Y-up preview transforms, with a dedicated text visual shader;
- still images using a synthetic SampleIndex instead of the container indexer;
- Vite 7 worker/worklet URLs that must not be rewritten to
/@fs/@aelion…; historyGroupforwarded into command edit options;- Aelion Studio moved into its own nested repository.
rc.2 remediation
Section titled “rc.2 remediation”The rc.2 source fixes issues found in the post-publication audit of 1.1/1.2:
- distinct immutable Project v1.0 and v1.2 schema identities with safe legacy migration;
- image-sequence Render IR, preview and export execution;
- atomic and duration-preserving subtitle import/export checks;
- correct Bézier endpoint-handle semantics and signed rate envelopes;
- bounded whole-buffer proxies plus a streaming/range-reader encoder contract;
- honest audio-energy analysis and codec capability-descriptor naming;
- release-synchronized device-matrix validation in regular CI.
See the 1.1 audit and 1.2 audit for item-level status.
Verified engine scope
Section titled “Verified engine scope”The repository gates cover Project admission/validation, transactions and restart replay; media index/seek/decode; Render IR and deterministic golden composition; player/audio; local/resumable export; package installation and browser consumers; cancellation, cleanup and resource budgets; security inputs; performance scenarios; documentation and artifact reproducibility.
Evidence is generated by scripts under reports/baseline; reports are not hand-edited to change a
result. Release evidence is valid only for the source manifest to which it is bound.
Known boundaries
Section titled “Known boundaries”- Physical Safari/iOS/Android and broad OS/GPU/driver matrices remain uncertified.
- Local color execution is RGBA8 SDR; HDR/PQ/HLG/10-bit do not silently degrade.
- There is no executable built-in WASM codec fallback.
- ASS/SSA subtitles and pixel-based video scene detection are not implemented.
- The proxy workflow still requires a host encoder.
- WebGPU lacks complete WebGL2 multi-pass parity and physical-device certification.
- Long page-independent rendering and 24-hour physical-device soak evidence are not delivered.
- After 1.2.0, public API changes follow SemVer, CHANGELOG, and the documented deprecation window.
Local verification
Section titled “Local verification”corepack pnpm install --frozen-lockfilecorepack pnpm run cicorepack pnpm test:browsercorepack pnpm test:browser:firefoxcorepack pnpm test:browser:webkitcorepack pnpm test:browser:mobilecorepack pnpm test:goldencorepack pnpm test:securitycorepack pnpm test:soakcorepack pnpm test:packcorepack pnpm release:dry-runcorepack pnpm release:reproducibility