v0.17.1 β resilient LLM calls + calmer error display
Fixes #30.
- Retry on transient failures β a momentary LLM overload (e.g. Gemini 503), rate-limit (429) or network/timeout blip is now retried with exponential backoff instead of throwing away the whole cycle. Genuine errors (auth 4xx, malformed responses) still fail fast to a safe HOLD.
- No raw errors on the dashboard β a failed cycle shows a calm
β³ RETRY β retrying at next decision Β· in Xh Ymnote instead of the raw provider error. API keys are also scrubbed from error strings so they can never reach the ledger or the page.