mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
62474be1dd
`job.status` for a matrix slot is success|failure|cancelled, but the per-slot writer laundered cancelled into `skipped` before publishing its result, so a slot killed by `timeout-minutes` became indistinguishable from one that legitimately never built. That erased the only signal that could tell a partially-cancelled fleet build from a clean one. GitHub's status functions cannot recover it: `cancelled()` is documented as "returns true if the workflow was canceled" (workflow-scoped, and FALSE for a leg-only cancel), and a cancelled ancestor is not a FAILED ancestor so `failure()` is false too. Add `cancelled` to the BuildOutcome contract, add `cancelledSet()`, and have the aggregator publish `any_cancelled` + `cancelled_services` alongside `any_success`. `successSet` still excludes cancelled slots, so the redeploy intersection is unchanged — a slot that pushed no image still cannot enter the redeploy CSV.