- Releases
- Ironflow v0.37.0
Ironflow v0.37.0
Ironflow v0.37.0 adds audit log export, redaction, and named capture profiles, lands the first slice of immutable deployment identity, and closes a run of approval-correlation and cluster-mutex correctness gaps.
Features
Section titled “Features”- Audit Log now supports exporting a full filtered result set as JSONL, not just the rows loaded on screen (#2218)
- A global audit payload redaction policy (
IRONFLOW_AUDIT_PAYLOAD_REDACT_FIELDS) can strip selected fields from run/step payloads before they reach audit storage or exports (#2217) - Named audit capture profiles (
all,run_lifecycle,steps) let functions choose which event families get audited, with a backward-compatible default (#2211) - Audit Log investigation filters (time range, action, API key) are now URL-synchronized, with category presets and a scope-aware event catalog (#2210)
- Deployments gain immutable executable identity and a registration API — slice A of ADR 0081; nothing routes on it yet (#2179)
- Approval request payloads are now persisted on waiting steps and visible through
GetRunStepsand the dashboard, instead of being discarded (#2204) - Approval correlation now requires an explicit value instead of treating comparison expressions as JSON paths, so one approval event can no longer resume unrelated runs (#2199, regression coverage in #2201)
- Approval TTL expiry is now documented and tested as a terminal failure rather than an unreachable resume path (#2185)
- JS SDK: awaited event timestamps now revive as
Dateobjects instead of strings on both the resume and replay paths (#2198) - Node SDK: fire-and-forget
spawnfan-out in a loop no longer collapses to fewer children than were spawned on replay (#2197) - Cloud: snapshot streams are now bounded by the live mutex claim’s remaining lifetime, and the retry envelope fits under the mutex TTL (#2188, #2178)
- Cloud: lost cluster mutex ownership is now reported and recorded as an audit incident instead of treated as a clean release (#2174)
- Cloud: saga replay now validates live mutex ownership instead of trusting a memoized acquisition, closing a window where a resumed saga could run past its mutex’s expiry (#2173)
- Cloud: auto-remediation no longer deadlocks waiting on a mutex it already holds (#2172)
- A skill-tree audit against source fixed a Helm chart doc that silently disabled secrets encryption, plus four other skill defects and the CI gate that missed them (#2183)
- Dashboard: page content now scrolls in its own column instead of stretching the sidebar; desktop Workroom disambiguates same-name files in different folders (#2202)
Improvements
Section titled “Improvements”- The
SYS_provisioning_mutexNATS KV bucket is renamed toSYS_cluster_mutexto match what it actually guards — provisioning, resize, deprovision, snapshot, and remediation sagas (#2156, #2161)