feat(harvest): automatic retry + fallback provider for failed runs
attempt_needs_retry triggers on runtime error / empty output / non-object result (GLM StructuredOutput text-return case) / is_error (1301 etc); content-quality failures do NOT trigger (a provider switch won't fix them). Flow: attempt1 primary → attempt2 same provider (10s backoff) → attempt3 FALLBACK_PROVIDER via resolve_continue_provider with its budget override (ccswitch-gpt=30). Idempotent end-to-end (7-day registry dedup + slug-keyed push), so re-runs only fill gaps; per-attempt raw outputs kept as *.attemptN. Verified decision matrix: success/runtime-error/invalid-output/api-error/ business-fail.
Showing
Please register or sign in to comment