v0.1.55
Highlights
Engine
- Production-proven Spirit run settings, with an optional
spirit:config block — schema changes now run with tuned defaults (autoscaled write threads, checkpoint max age, checksum yield timeout); the new server-levelspirit:block exists only to deviate from them, and per-database metadata can override. (#840) - Conformance suite with typed rejections — engines now report completed and missing changes through typed rejections, backed by a cross-engine conformance suite. (#842)
- Plans containing engine-blocked changes are rejected up front — an apply whose plan includes a change the engine refuses is rejected at plan time instead of failing mid-apply. (#838)
- Spirit test containers gate on a real SQL handshake — test MySQL containers are considered ready only after a successful handshake, hardening the engine test suite. (#850)
GitHub Integration
- Promotion-check-name override for shared prior environments — fleets that share one staging instance across several production instances can point the promotion gate at the shared instance's check name via
promotion-check-name. (#847) - Unscoped rollback and control commands fan out in tenant mode — rollback and control commands without an explicit scope now reach every tenant deployment they apply to. (#848)
- Single-responder replies for missing
-eand empty unlock on fan-out — fan-out commands with a missing environment flag or nothing to unlock get one clear reply instead of a chorus. (#857) - Aggregate Check Run rewinds publish a fresh run — rewinding a concluded aggregate check to in-progress publishes a new Check Run so the status is never stuck on the concluded one. (#811)
- Leader aggregate title says tenant applies are pending — the aggregate check title now reflects pending tenant applies instead of reading as idle. (#846)
Data Plane
- Engine terminal truth wins before pending stop/cancel commands are consumed — a change the engine already finished can no longer be flipped by a stale queued stop or cancel. (#843)
- On-start volume convergence skipped for tasks without row-copy work — restarts no longer run needless convergence for tasks that copy no rows. (#844)
- Stop/cancel against an already-completed deploy request settles as completed — cancelling a change whose deploy request already finished records the truthful terminal state. (#841)
Observability
- Single-statement Spirit logs route to the apply log stream — logs from single-statement changes now land in the same per-apply stream as multi-statement ones. (#856)
Contributors
Full Changelog: v0.1.54...v0.1.55