IW-513: phase-pr tells a forge that is down from a forge that refused #782
No reviewers
Labels
No labels
agent-ready
bug
contract
documentation
duplicate
enhancement
good first issue
help wanted
invalid
needs-human
needs-input
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
iterative-works/iw-cli!782
Loading…
Reference in a new issue
No description provided.
Delete branch "IW-513"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
phase-prstopped an unattended batch with exit 1 when the forge did not answer (502, rate limit, network fault) before the CI gate. Inside the gate the same condition already exits 3 and the caller resumes. This branch makes the pre-gate path behave the same way, with a bound.Changes
TrackerError(Unreachable/Refused/Malformed) on the GitHub, GitLab and Forgejo clients,ForgeGateway, and the 16 forge methods ofTrackerOps. Linear and YouTrack stayEither[String, A]. Every message string is unchanged; only the classification is new.phase-prretries a silent forge in the same run, then exits 3 with a resume report. The--timeoutbudget is held on the review-state card (forge_wait_started,forge_wait_branch), so it continues across runs. When it is spent, exit 1 with a headline that says how long the forge was silent.--no-waitbehaves the same.PhasePrpre-gate path acts onisTransient. All other callers print.messageand behave as before. The CI gate is unchanged.Phases: #778 (clients and PR/CI/merge calls), #779 (pre-gate budget), #780 (issue calls).
Release order: iw-cli first, then kanon (
ForgeCatchUp.scala,KanonForgejoIssue.scala, test-env fixtures), then the dev-docs skills. Start the dashboard from the same release, because the validator rejects unknown card fields.Review packet:
project-management/issues/IW-513/review-packet.md.Testing
TrackerErrorTest,HttpCallFailureTest), budget (ForgeWaitTest), client cases including a real closed port, ~17 newPhasePrHarnessTestcases, card field set/keep/clear.test/forgejo-phase-pr.batsagainst a real refused connection (exit 3 with stamp, then exit 1 after the budget).Follow-ups filed: #781, and comments on #569, #585, #762, #440.
Release notes
Výpadek forge už nezastaví automatické zpracování fází
Úkol: IW-513
Datum: 2026-10-11
Příkaz pro otevření pull requestu fáze nyní rozlišuje, zda mu forge (GitHub, GitLab nebo Forgejo) odpověď odmítl, nebo zda vůbec nebyl dosažitelný. Krátký výpadek serveru, přetížení nebo chvilkový problém se sítí proto už nezastaví celou automatickou dávku práce na úkolu. Dávka počká a pokračuje, jakmile je forge opět k dispozici.
Když forge při hledání nebo zakládání pull requestu neodpoví, příkaz to nejprve několikrát zkusí znovu s krátkou pauzou a na výstup vypíše, že se o spojení pokouší znovu. Pokud forge mlčí i potom, příkaz skončí s výsledkem „spusťte mě znovu“, který automatická dávka zná z čekání na CI a na který reaguje dalším pokusem. Doba, po kterou se takto čeká, je omezená stejným časovým limitem jako čekání na CI. Začátek čekání si nástroj zapisuje do stavu úkolu, takže limit platí napříč opakovanými spuštěními a nezačíná pokaždé znovu. Když limit vyprší, příkaz skončí chybou se zprávou, že forge je zřejmě mimo provoz a je třeba, aby se na něj podíval člověk. Stejně se příkaz chová i tehdy, když se na CI vůbec nečeká.
Odmítnutí zůstávají konečná, jako dosud. Chybějící nástroj příkazové řádky, nepřihlášený účet, neplatný nebo prošlý přístupový token, uzavřený či již sloučený pull request nebo odpověď, která si odporuje, zastaví práci hned a s původní zprávou. Takové chyby opakováním nezmizí, a nástroj je proto zbytečně neopakuje. Zprávy, které uživatel u ostatních příkazů pro práci s úkoly vidí, se nemění.
Při přechodu na tuto verzi není třeba nic nastavovat. Změna se týká jen autorů rozšíření, která volají jádro nástroje přímo: chyby z GitHubu, GitLabu a Forgejo nyní nesou druh chyby místo prostého textu, takže taková rozšíření je třeba upravit, aby text chyby četla z této nové podoby. Rozšíření pro Linear a YouTrack se změna netýká.
Closes #513
🤖 Generated with Claude Code
Issue: IW-513 Phase: 1 - TrackerError on the forge clients and the port's PR/CI/merge calls This commit marks the checkpoint for phase 1 context generation. Use wf-implement IW-513 to return to this point. The analysis is corrected where the context review found that gh's "Could not resolve to a Repository" refusal and a bare 401 in a URL would be classified as the wrong case. 🤖 Generated with Claude Code Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>TrackerError on the forge clients and the port's PR/CI/merge calls Artifacts: - phase-01-tasks.md 🤖 Generated with Claude Code Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Issue: IW-513 Phase: 3 - TrackerError on the port's forge issue calls This commit marks the checkpoint for phase 3 context generation. Use wf-implement IW-513 to return to this point. 🤖 Generated with Claude Code Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>TrackerError on the port's forge issue calls Artifacts: - phase-03-tasks.md 🤖 Generated with Claude Code Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>