From 3a638cc9a4edbc0df659a2a6dfcfa889d45145b8 Mon Sep 17 00:00:00 2001 From: vikingowl <26+vikingowl@noreply.somegit.dev> Date: Wed, 20 May 2026 01:35:27 +0200 Subject: [PATCH] docs(todo): add stream-error failover to backlog Today an arm's stream error (auth, rate limit, subprocess exit) kills the turn. Backlog item to retry on the next-best arm for the task type and surface a one-line hint to the user. --- TODO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TODO.md b/TODO.md index c60a624..de4f23e 100644 --- a/TODO.md +++ b/TODO.md @@ -35,6 +35,7 @@ Phases (2026-05-07 roadmap): - **Thinking mode** (disabled / budget / adaptive) — M12 in milestones - **Structured output** with JSON schema validation — M12 - **Native agy JSON output** — update subprocess provider to use `--output-format stream-json` once supported by agy CLI, replacing the current prompt-augmentation fallback. +- **Stream-error failover** — when an arm's `Stream` returns an error (auth failure, rate limit, subprocess exit, transport error), the router should transparently retry on the next-best arm matching the task type and surface a one-line hint to the user (e.g. `↻ vibe failed (Invalid API key), retried on anthropic/claude-opus-4-7`). Today the error bubbles straight to the TUI and the turn dies. Needs: classify retryable vs. fatal errors, cap retries per turn, ensure no duplicate billing on streams that emitted partial usage. - **SQLite session persistence** + serve mode — M10 - **Task learning** (pattern recognition, persistent tasks) — M11 - **Web UI** (`gnoma web`) — M15