Skip to content

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.

  • 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 GetRunSteps and 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 Date objects instead of strings on both the resume and replay paths (#2198)
  • Node SDK: fire-and-forget spawn fan-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)
  • The SYS_provisioning_mutex NATS KV bucket is renamed to SYS_cluster_mutex to match what it actually guards — provisioning, resize, deprovision, snapshot, and remediation sagas (#2156, #2161)