Repository navigation
INVARIANT 0.3.1 — first registry release
Pre-releaseINVARIANT's first registry release is available: invariant-workspace 0.3.1 on PyPI and both Rust libraries 0.1.0 on crates.io.
Use persistent Linux environments for coding agents, compare configurations with shared checks, and review the changes to keep. Embed the capability policy and broker separately in a Rust host.
Install
Python CLI, in a host virtual environment:
python3 -m pip install "invariant-workspace==0.3.1"
invariant --versionExpected: invariant 0.3.1. Supported hosts are macOS/Linux with Python 3.11+; workspaces require Docker. Native Codex uses host ChatGPT sign-in and real account allowance.
Rust libraries, with Rust 1.90+:
[dependencies]
invariant-core = { package = "invariant-workspace-core", version = "0.1.0" }
invariant-broker = "0.1.0"The alias retains invariant_core imports; invariant_broker::core exposes the same policy types. Rust embedding needs no Docker, Python or Codex.
- Python package on PyPI.
- Core on crates.io · core API documentation.
- Broker on crates.io · broker API documentation.
- README · Rust embedding guide · changelog.
Publication and verification
Both Rust packages were uploaded successfully on October 26, 2026, core first and broker after the core became available in the index. The Rust source is tagged rust-v0.1.0, commit e4b571f1845607dec651d240a322af15db261138. The library READMEs document registry installation; implementation code, dependency declarations and workspace lockfile match v0.3.1. Existing public APIs and saved-state behavior are retained.
A fresh independent application with an empty Cargo home downloaded both packages from crates.io on Rust 1.90. Cargo metadata confirmed registry sources for both. Clippy with warnings denied and the locked example run passed: one loopback HTTP call, replay without another admission, scope denial, revocation, private audit and Unix socket transport/cleanup. The committed embedding example now uses registry dependencies and also passed its locked run. Downloaded crate bytes match the exact uploaded archives, registry SHA-256 values and recorded Git provenance.
The Rust release's four Linux/macOS × Rust 1.90/stable CI jobs passed. Source-export package tests, examples, README doctests and independent consumer checks passed locally on Rust 1.90. The updated root README also passed the Python sdist→wheel installation/image checks and strict Twine validation.
PyPI trusted publishing succeeded. Both Python registry hashes match the original GitHub distributions. Its README installation was rechecked in a fresh environment outside the checkout: version/help commands passed.
See the Rust publication record and attached registry-publication.json for registry verification. The original 0.3.0 full acceptance, including 271 application tests, 11 SDK tests and 15 real Codex turns, remains evidence for its own exact source. No new live-provider acceptance run is claimed for these documentation and dependency-location changes.
Release files and source tags
published-invariant-workspace-core-0.1.0.crateandpublished-invariant-broker-0.1.0.crateare the exact crates.io archives.CRATES_IO_SHA256SUMScovers them andregistry-publication.json.- The original wheel/sdist and preparation evidence are unchanged. Their existing
SHA256SUMSremains valid. The original unprefixed Rust archives predate the registry README update and remain historical packaging evidence; use thepublished-archives for the registry release. - Python source remains tagged
v0.3.1; Rust registry source usesrust-v0.1.0. Neither the original Python tag nor existing registry versions were replaced.