v0.2.2
Ships three closed trust/safety gaps (audit tail-truncation now caught by
cw audit head --expect-head/--expect-count, the manual-accept telemetry side door now blocked under--require-attested-telemetrywith an audited--allow-unattestedoverride, and a whole-cyclestate.jsonlock that stops concurrent result recordings from dropping a task's completion), plus locale-pinned replay determinism andcw searchas a real declared capability.
- Capability: Closes three trust/safety gaps —
cw audit headcatches audit-log tail-truncation,--require-attested-telemetrynow blocks a manual accept with no delegation metadata at all (not just a mismatched one), andstate.jsonis locked for the whole read-modify-write cycle so two processes can no longer drop one another's result. Also: every internal sort is now locale-pinned (a differing hostLANGused to shift cache keys and eval-replay comparisons),cw searchis a real declared capability, and three deaddispatchLegacystubs are gone. - Implementation:
core/capability-table.ts(4,300+ lines) is split into a purecore/capability-data.tsplus asrc/wiring/capability-table/layer, backed by a newpurity:checkratchet on the core/shell boundary. A restoredtest:unitlayer (152 tests) runs alongside the smoke and conformance suites. - Tests:
test:gate181/181,test:unit153/153, conformance 104/104,purity:checkandrelease:checkgreen. - Risk: Low to moderate — trust-gate/lock fixes are additive and fail-closed; the capability-table split is proven behaviorally byte-identical. Zero new runtime dependencies.
Provenance & audit
- Reviewed commit:
a9a78134c972 - Independent reviewer verdict (committed):
.cw-release/review-a9a78134c9729c4514dcb7a4a8fc56f5d1a93b57.verdict - Full diff:
v0.2.1...v0.2.2 - npm (provenance-attested):
cool-workflow@0.2.2
Released through the gated flow: deterministic gate → independent release-reviewer (verdict above) → provenance-attested npm publish.