Files
msd-core/.changeset/archived/3095-quota-failure-classification.md
Tom Boucher 8616839cab chore: archive 463 shipped changeset fragments before wiring render (#714)
CHANGELOG promotion was a manual operator step that was never run, so 463
fragments for work already shipped in <=1.3.1 accumulated in .changeset/.
Their notes were already hand-curated into the dated [1.2.0]/[1.3.0]/[1.3.1]
CHANGELOG sections (#690 backfill, PR #694). Rendering them now would
duplicate and mis-attribute shipped work.

Move them to .changeset/archived/ (read non-recursively by all changeset
tooling, so never rendered), keeping only the 3 genuinely-unreleased
fragments at the top level. Prep for wiring `render` into the release
finalize job (#690 follow-up).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 14:53:17 -04:00

1.0 KiB

type, pr
type pr
Added 3095

Distinct quota / rate-limit failure class for dispatched executor subagents — execute-phase step 7 now routes provider quota and rate-limit terminations through a separate recovery branch instead of the generic "real failure" prompt. A new SDK query agent.classify-failure (gsd-sdk query agent.classify-failure -- "<body>") classifies the agent return body as quota-exceeded, classify-handoff-bug, or unknown-failure, extracting retryAfterSeconds when the provider echoes one. Sentinels cover every runtime GSD dispatches into: Claude Code (usage limit, 429), Copilot CLI (rate_limit, user_weekly_rate_limited), Codex (usage_limit_reached, too many requests), and Gemini (RESOURCE_EXHAUSTED, exceeded your). The recovery prompt for quota-exceeded offers wait-for-reset and resume as the first option rather than retry-now, which the runtime would reject again until the quota window resets. The resume path itself relies on the safe-resume gate landing in #3212. (#3095)