0.3.0 — First Open-Source Release
2026-07-27 · Apache 2.0 · breaking rework of the pre-release 0.2.0 draft
FLUX 0.3.0 is the version that went through the fire before going public: two adversarial review rounds, every finding either fixed or honestly documented in the reconciliation ledger.
The FLUID seam, rebuilt
The draft embedded a contract stub whose required promise field never existed in FLUID — every genuine FLUID document failed the seam, and garbage passed it. 0.3.0 references instead of restating: {productRef, exposeId, fluidVersion}, validated against vendored FLUID schemas (0.7.3–0.7.5). The proven contract and the shipped contract are the same bytes.
Hard validation
- JSON Schema 2020-12, versioned
$id, shared$defs. - Closed objects everywhere — the draft accepted any unknown key anywhere; now a typo is an error.
- Envelope aligned with FLUID: top-level
id/name, requiredmetadata.owner, camelCase, and an identifier grammar byte-identical to FLUID's. - Floors and patterns throughout: no empty ref strings, no negative windows or rate limits, ISO-4217 currencies, lexically-bounded RFC 3339 timestamps.
Paper promises, delivered in schema
Root-level agentPolicy + skills on every kind (skills ⇒ agentPolicy, schema-enforced), sovereignty on World and Simulation, Simulation composition refs, the three fidelity modes, the golden-regression digest, CloudEvents attributes on Signal, Module.binds ports, Playback calibration + drift.
The offline validator
scripts/validate.py: kind-typed reference resolution, sums and set membership, agentPolicy bounds, full-bundle FLUID validation, seam conformance, and the consent-strictness rule — with clean error messages on any malformed input, pinned by a 61-check regression suite.
Full diff
Field-by-field: Changelog → 0.2.0 → 0.3.0.