feat(pi): surface a transient "retrying…" hint when Pi auto-retries (agent_end.willRetry)
Follow-up from #1597 (suggested by @chenhg5 in review).
Background
Pi auto-retries transient provider failures (HTTP 429 / 5xx / overloaded) inside the same turn and announces this via agent_end.willRetry=true. #1597 makes the pi adapter keep the turn open in that case instead of failing it, so users on rate-limited providers no longer see false hard errors.
However, during the retry backoff (exponential, configurable via Pi's retry.baseDelayMs / retry.maxRetries, up to minutes in total) the platform currently shows nothing — the turn just looks stalled. Users hitting rate-limited providers (Kimi, etc.) can't tell "Pi is backing off before retry N/8" from "the agent hung".
Proposal
When the pi adapter sees agent_end with willRetry=true, surface a transient, non-fatal hint on the platform, e.g. via the progress card: "⚠️ provider rate-limited, retrying…". On the next agent_start (the retried run) the hint is replaced by normal progress; on a terminal agent_end the buffered error (from #1597) is shown as today.
Optionally, Pi also emits auto_retry_start / auto_retry_end session events carrying attempt, maxAttempts, delayMs and the error message — these could power a richer hint ("retry 3/8 in 8s").
Scope
agent/pi/session.go: translatewillRetry/auto_retry_startinto a non-fatal progress event instead of staying silent.- Engine/platform: needs a "transient notice" channel that does not finalize the card as failed — likely an extension of the progress-card status, not
EventError. - Happy to take a stab at this if the approach sounds reasonable.
Source: chenhg5/cc-connect