Skip to content

v0.20.0

Choose a tag to compare

@airut-app airut-app released this 27 Mar 17:09
· 123 commits to main since this release
597cb5a

Highlights

Airut-managed Claude Code installation — The gateway now downloads, verifies, and caches Claude Code binaries on the host, bind-mounting them read-only into containers. This eliminates the need to install Claude Code in Dockerfiles, producing smaller and faster-to-build container images — especially beneficial for airut-sandbox and sandbox-action CI sandboxing where Claude Code isn't needed at all. Per-repo version pinning is available via the claude_version config field (supports semver, "latest", "stable"), shareable across repos with !var config variables. An integration test validates compatibility with the upstream install.sh distribution. (#373, #444, #445)

Configurable Dockerfile path — New container_path repo setting lets Airut use an existing project Dockerfile (e.g., .devcontainer/) instead of requiring .airut/container/Dockerfile. Combined with managed Claude Code installation, this enables adopting Airut in repositories that already have a working Dockerfile — no .airut/container/ directory needed. (#439)

Config schema cleanup and migration tooling — Email config fields have been restructured from 18 flat prefixed fields into nested subsections (imap, smtp, account, auth), and global resource_limits replaced with !var variable references. Duplicated schema documentation removed from specs in favor of the canonical airut.example.yaml. A new airut migrate command applies pending schema migrations automatically, and airut check now reports schema version status. Five schema versions (v1→v5) are chained with full migration support. (#440, #442, #447, #448, #453)

Bug Fixes

  • Numeric !var/!env fields in config editor — Fixed !var and !env references on int/float fields (e.g., resource_limits.timeout) rendering as empty in the config editor. HTML5 <input type="number"> silently rejected non-numeric values; the editor now uses type="text" for variable/env sources. (#443)

Other Changes

  • Config editor scroll preservation — Variable add/remove/rename and channel add/remove now use in-place HTMX swaps instead of full-page redirects, preserving scroll position. (#452)
  • Hidden test-only fieldscontainer_command (test-only; production requires podman) is now hidden from the config editor and generated example configs via a new hidden metadata flag. (#441)
  • Documentation refresh — Fixed stale content across security, sandboxing, deployment, and onboarding docs; replaced all "restart the service" instructions with live config reload; flattened YAML examples to match current schema; documented airut migrate. (#449, #450, #451, #454)
  • Screenshot generator README — Added documentation for the dashboard screenshot generator with sandbox-specific instructions. (#446)