Skip to content

Now

core 2.26.15

  • A wave can no longer be signed off without saying who did the work. The step that closes a wave used to pass no matter what: it returned success for any state it could read, so a wave whose tasks were never dispatched looked exactly like one where every task was done. It now asks for one short record per task in the wave — either "this was dispatched" or a declared reason it was not — and refuses the exit by name when a record is missing, listing the tasks it could not account for rather than a count. The sibling command that steps the wave pointer forward asks for the same thing, so the check cannot be walked around by moving the pointer first.
  • Nothing already in flight breaks. A run whose state predates this feature carries no records at all, and the exit passes it with a notice saying enforcement is off rather than blocking it, so an upgrade mid-run still finishes. loop-cohort status reports whether records are being enforced.
  • A run that genuinely has no implementer can still proceed. A wave task can be declined for one of two declared reasons — no implementer is installed, or a human directed the work another way — and a declined task counts as accounted for.

Release notes for core 2.26.15