mirror of
https://github.com/esengine/DeepSeek-Reasonix.git
synced 2026-11-07 10:45:59 -10:00
The retry status line showed "connection broke before the response headers" for every retried failure, including 502/429 statuses, did not say what the attempt was waiting for or when it counts as unanswered, and its seconds counter ran from the first notice of the whole stall instead of per attempt. The retrying event now carries a typed failure class (connection_closed, timeout, upstream_status with the HTTP status, stream_idle, upstream_error), the backoff before the next attempt, and the header wait of the coming attempt. The producers set them: SendWithRetry knows the class, the adapters pass their idle_timeout_seconds window, and the stream replay path maps the stream-interrupt reason. The window words each class and phase (backoff countdown, then a wait that restarts per attempt) from those fields, never from text. The CLI machine record carries the same fields. Provider settings gain one advanced row for idle_timeout_seconds (1..32767, empty is the default), validated in the form and by the kernel's provider edit endpoint. Fixes #12046