Commit 2176730
committed
feat(retry): transport error matching + retry budget cap
- retryable() now matches transport failure signals (terminated, ECONNRESET,
ECONNREFUSED, ETIMEDOUT, EAI_AGAIN, socket hang up, fetch failed,
stream error, EPIPE, network error) and SSEStallError instances.
- Add TRANSPORT_RETRY_CAP = 5. policy() returns Cause.done(attempt) when
a transport error exceeds the cap, preventing unbounded retries on
persistent network failures (SSE stalls, connection resets).
Makes A.2.1's red tests green. Addresses root cause #3 from the plan:
SessionRetry.retryable() didn't match SSE/transport errors.1 parent 1ec5a36 commit 2176730
1 file changed
Lines changed: 19 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
16 | 19 | | |
17 | 20 | | |
18 | 21 | | |
19 | 22 | | |
20 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
21 | 32 | | |
22 | 33 | | |
23 | 34 | | |
| |||
76 | 87 | | |
77 | 88 | | |
78 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
79 | 93 | | |
80 | 94 | | |
81 | 95 | | |
| |||
111 | 125 | | |
112 | 126 | | |
113 | 127 | | |
114 | | - | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
115 | 133 | | |
116 | 134 | | |
117 | 135 | | |
| |||
0 commit comments