Skip to content
Omena
Releases

Omena 5.3.0 and Rust crate train 0.3.0

Coordinated editor, CLI, crate, and npm binding changes in the 5.3.0 release.

This release coordinates the editor, Rust crate, CLI, and selected npm binding lines. It does not imply that every channel completed publication at the same version.

Availability

SurfaceAvailable versionChannel
VS Code extension5.3.0GitHub Release VSIX and Open VSX
Legacy VS Marketplace listing5.2.0Visual Studio Marketplace
CLI archives0.3.0GitHub Release
Rust crates0.3.050 of 51 publishable crates on crates.io
WASM binding0.3.0npm
NAPI binding0.2.1npm

omena-reactive is the one publishable Rust workspace crate not present on crates.io at 0.3.0. The repository contains an unreleased NAPI 0.3.0 surface, but npm consumers receive the 0.2.1 API.

Platform surface

  • The Rust CLI exposes a 12-command family: 11 wired product commands plus the reserved check compatibility alias. The shipped commands cover linting, formatting, minification, bundling, CSS Modules, Sass, intelligence, migration, validation, CI, and explanations.
  • The Rust language server, workspace daemon, bundler host, NAPI/WASM bindings, and TypeScript SDK adapters now share the same semantic query and error boundaries instead of maintaining surface-specific interpretations.
  • Bundle planning carries typed closed-world admission and linked-order plans. The existing import-inline emission path remains the default.

Explicit opt-ins

  • Linked-order bundle emission remains opt-in while its full-corpus differential and release-boundary conditions remain unsatisfied.
  • External Sass Interface File trust tiers, external-tool evidence, strict minification, and closed-world transforms remain explicit choices rather than default behavior changes.
  • Build-tool integration packages remain independently versioned. This release does not change their npm availability as a side effect of the Rust and WASM publication.

Behavior corrections

  • CSS keyword case: mixed-case CSS keywords were previously handled inconsistently after parsing, which could silently omit layer names, CSS Modules value/composes facts, keyframe reachability, and !important handling. They now use the shared ASCII-insensitive keyword authority.
  • Property value grammar: valid declarations containing unitless zero, nullable grammar branches, or all-in-any-order constructs were previously reported as definitely invalid. They now follow the pinned grammar matcher, while malformed declarations continue to produce findings.
  • Style alias resolution: existing style files reached through tsconfig, jsconfig, or bundler aliases were previously reported as missing on some workspace paths, while related selector checks could be skipped. Resolution inputs now reach those product paths; genuinely absent targets still produce findings.

Static SIF lock migration

Static SIF generator identity omena-sifgen-static@0.2.0 intentionally rekeys the interface, transitive, and artifact hashes produced by the earlier 0.1.0 identity. The source leaf hash is unchanged. Regenerate each artifact and update its lock entry:

omena sif generate tokens.scss \
  --canonical-url pkg:release-fixture/tokens.scss \
  --output tokens.sif.json
omena lock update pkg:release-fixture/tokens.scss \
  --lockfile omena.lock \
  --sif tokens.sif.json
omena lock verify --lockfile omena.lock --frozen

These commands were executed against a lock authored from a 0.1.0 generator artifact. The frozen check first reported all three generator-bound hash mismatches, then passed after the lock update.

Version scope

The Rust 0.3.0 minor is intentional because generator-bound lock identity and public surface growth are breaking changes on a pre-1.0 line. The editor does not move to its reserved next major, and this release does not change the default byte-producing bundle authority. See version governance for the machine-checked axis policy.

On this page