Release v0.0.85
Overview
This release adds the first genuinely parallel task type and cuts the read path's cost in half. FanOutTask (type 21) resolves a collection at runtime and runs a referenced inner task once per item concurrently, joining the outcomes by policy and writing one output to instance data — replacing the $self auto loop that cost N full pipeline hops with a single transition (#905). Component definitions gain an in-process L1 cache in front of the distributed store, keyed by the existing Redis keys so a publish makes stale entries unreachable by construction, plus a five-second generation-token memo that removes the token read from the hot path entirely (#898); script secret bundles are cached in-process with a short TTL and single-flight stampede protection, taking a cold ~8.5 ms vault read down to ~1 µs warm (#899). Traces get flat lanes — one lane per instance instead of nesting equal to chain depth — and job arming moves outside the instance status lock, taking the worst observed lock hold from 30.1 s to 48 ms (#900). Payload envelope detection is resolved by field set rather than a single property, and a rejected payload can no longer come back naming no field at all (#906). Finally, the script compiler and ScriptContext get a measurement-first optimization pass with new metrics, an opt-in PreserveNumericPrecision flag and a LegacyAppendPipeline kill-switch (#907). This release runs on component schema 0.0.53.
