fix(release): escalate a publish that fails on consecutive commits instead of warning into the void - #9965
Conversation
…stead of warning into the void The retry helper's own comment already drew the right distinction: "Retrying after a short wait resolves it once propagation catches up -- this is NOT the same failure class as a genuine test regression, which would fail identically on every retry." Nothing acted on it. Both classes got the same three retries, and on exhaustion the same `::warning:: ... left for manual follow-up`, which is a signal nobody reads. The MCP and miner publishes then failed on EVERY main commit for as far back as the run history went (#9946, a one-line missing build step), retrying three times per push and never once succeeding, while the only evidence was a red check that reads as release noise. A publish failing on CONSECUTIVE commits is not a flake being retried, it is a standing outage. This counts the failures at the head of the workflow's own run history (`index("success")` = leading non-successes) and, past three, files a tracking issue naming the streak. Escalates ONCE per outage: an open issue for the same workflow suppresses the next filing, because an alert that repeats per attempt is the same unread noise in a different place. It re-files only after a success has reset the streak. The jq was verified against the live API and against synthetic histories for every arm: the all-failure outage shape (4), a streak ending in success (3), a below-threshold streak (2), a healthy head (0), and empty history (0, not a false alarm).
|
Warning ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-30 22:23:53 UTC
Review summary Nits — 8 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionPartially addressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. Decision record
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9965 +/- ##
=======================================
Coverage 91.87% 91.87%
=======================================
Files 928 928
Lines 113697 113697
Branches 27421 27421
=======================================
Hits 104460 104460
Misses 7936 7936
Partials 1301 1301
Flags with carried forward coverage won't be shown. Click here to find out more. |
Closes #9951
The gap
The retry helper’s own comment already drew the right distinction:
Nothing acted on it. Both classes got the same three retries, and on exhaustion the same
::warning:: … left for manual follow-up— a signal nobody reads.The consequence was #9946: the MCP and miner publishes failed on every main commit for as far back as the run history went (a one-line missing build step), retrying three times per push and never once succeeding. The only evidence was a red check that reads as release noise, so neither package shipped for dozens of commits.
The fix
A publish failing on consecutive commits is not a flake being retried, it is a standing outage. The escalation counts failures at the head of the workflow’s own run history —
index("success")is the number of leading non-successes — and past three, files a tracking issue naming the streak.It escalates once per outage: an open issue for the same workflow suppresses the next filing, because an alert that repeats per attempt is the same unread noise in a different place. It re-files only after a success resets the streak.
Wired into all three give-up sites (
publish-mcp,publish-miner,publish-ui-kit);issues: writeadded for it.Verified, not assumed
The detection query was run against the live API for all four publish workflows (all currently
0— the #9947/#9950 fixes landed and both previously-failing publishes now showsuccessat the head), and against synthetic histories for every arm:actionlintclean, including a shellcheck directive for the jq$cbinding that genuinely must stay single-quoted.