Skip to content

Releases: Snapchat/Valdi

beta-0.1.0

29 May 16:41

Choose a tag to compare

beta-0.1.0 Pre-release
Pre-release

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

Upgrading

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)

beta-0.0.3

17 Feb 19:07

Choose a tag to compare

This is the third Valdi beta release that contains a number of fixes and improvements:

  • New cursor rules for the core framework
  • Updated dependencies (boringssl, harfbuzz, protobuf, rules_apple, Android NDK)

Improvements to the CLI published to npm:

  • Broader Linux distro support in doctor and dev_setup
  • Bootstrapped apps are pinned to beta-0.0.3
  • Bootstrapped apps now include cursor rules to help distinguish Valdi from other platforms
  • Templates for new modules with --template (ui_component, cpp_bridge_module, ios_android_bridge_module, ios_android_view_module)
  • Project name sanitization to avoid reserved keywords and dashes

Getting started:

# Install globally
npm install -g @snap/valdi

# Set up your development environment
valdi dev_setup

# Verify your setup
valdi doctor

# Create a new directory for your project
mkdir my_valdi_app
cd my_valdi_app

# Initialize the project
valdi bootstrap

# Build and install on iOS
valdi install ios

# Or build and install on Android
valdi install android

# Start hot reload for development
valdi hotreload

beta-0.0.2

09 Feb 18:45

Choose a tag to compare

beta-0.0.2 Pre-release
Pre-release
Add files from GCS archives

beta-0.0.1

08 Nov 17:20

Choose a tag to compare

Our first beta release.