Download Latest Version beta-0.1.1 source code.zip (166.7 MB)
Email in envelope

Get an email when there's a new version of Valdi

Home / beta-0.1.0
Name Modified Size InfoDownloads / Week
Parent folder
beta-0.1.0 source code.tar.gz 2026-05-29 163.5 MB
beta-0.1.0 source code.zip 2026-05-29 166.7 MB
README.md 2026-05-29 3.7 kB
Totals: 3 Items   330.1 MB 0

What's new

Build system: WORKSPACE → bzlmod

The standalone Valdi build and the CLI bootstrap now use Bazel's module system (bzlmod) instead of WORKSPACE. Bootstrapped projects generate MODULE.bazel with archive_override entries for Valdi and all sub-modules. A custom Bazel registry ships pre-patched versions of rules_swift, rules_kotlin, rules_nodejs, websocketpp, and others so consumers don't need to carry patches.

Hermetic Android SDK & NDK

Android builds no longer require a locally installed SDK or NDK. Both are downloaded hermetically by Bazel with SHA-256 verification, eliminating version mismatch issues across contributor machines.

App icon generation from SVG

valdi_application() now accepts an SVG source and generates platform-specific icon variants at build time. No more default icons on sample apps. (#99, @scorsin-oai)

WebView native template element

New <webview> element for embedding web content in Valdi views, with platform-native implementations on iOS, Android, and macOS. (#97, @scorsin-oai)

New WebNavigator and WebNavStack classes integrate with the browser History API, enabling push/pop navigation, deep linking, and browser back/forward for Valdi web apps.

Snapshot (pixel) tests

Visual regression testing infrastructure: a headless CLI rasterizes fixture components via SnapDrawing, diffs them pixel-by-pixel against baselines, and produces 3-panel diff images. Runs in both internal and GitHub Actions CI.

Runtime fixes

  • maskImage property on <view> elements
  • Fix Value::operator== for cross-subtype string equality
  • Guard font loader to prevent crashes on unknown font names
  • ConsoleLogTransformer: use optional chaining for runtime guard
  • Fix ANDROID_WITH_JNI define for Android platform builds

CI and build improvements

  • Expanded CI coverage with Yoga layout tests
  • Node 22 registry entry for rules_nodejs 6.2.0
  • Disk cache and build optimization for CI
  • Shared CI env setup scripts
  • Repo hygiene: license detection, area labeler, sensitive file notices

CLI improvements

  • valdi agent-check: single command for resolve → build → lint → test validation
  • valdi analyze duplicates: scans modules for reinvented UI patterns, clusters by AST similarity
  • 10+ new AI skills: navigation, animations, gestures, localization, error handling, component dedup
  • valdi doctor no longer requires local Android SDK/NDK
  • Bootstrap defaults to beta-0.1.0 for both Valdi and Valdi_Widgets

Documentation

  • module.yaml removed; BUILD.bazel is now the source of truth
  • Updated setup and contribution docs

Community contributions

  • App icon generation from SVG (#99, @scorsin-oai)
  • WebView native template element (#97, @scorsin-oai)
  • Fix const enum IR emission — skip runtime codegen for const enum declarations (#89, @AugustHagedal)
  • Fix typo in title label reference (#21, @catalinmiron)

Upgrading

:::bash
npx @snap/valdi@1.1.0 bootstrap

New projects default to beta-0.1.0. Existing projects: update VALDI_TAG in your MODULE.bazel and the --registry URL in .bazelrc to point at beta-0.1.0.

Known issues

  • Yoga 2.x upgrade and SVG runtime support are in progress on main but not included in this tag
  • valdi_widgets should use beta-0.1.0 (the beta-0.0.3 tag predates bzlmod and will fail)
Source: README.md, updated 2026-05-29