Harden the retry classifier and pin per-attempt deadlines (closes #80)
check / check (push) Successful in 31s

A POST or PUT is replayed only when every errno in the cause chain is a
connect errno, and postJSON/putJSON no longer follow redirects, so a
redirect is an ApiError that is not retried. getRetryOptions() returns
a copy. New tests pin every errno the classifier names, the cause-chain
depth limit, a two-error cycle, and a fresh deadline per attempt for
every retrying entry point. The README endpoint list is now the one
place naming the requests the replay rule covers; code comments point
to it.

Model: opus-5-5
This commit is contained in:
2026-09-22 23:58:27 +00:00
parent fe952d3e62
commit f788c0adc8
6 changed files with 200 additions and 40 deletions
+7
View File
@@ -18,6 +18,13 @@ Tag v1.0.0.
# Completed Steps
- 2026-09-22: Hardened the retry classifier (issue 80). A `POST` or `PUT` is
replayed only when every errno in the cause chain is a connect errno, and it
no longer follows redirects. `getRetryOptions()` returns a copy. Tests pin
every errno the classifier names, the cause-chain depth limit, cycle
termination, and a fresh deadline per attempt for every retrying entry point.
The README's endpoint list is the one place that names the requests the replay
rule covers.
- 2026-09-22: Rewrote the README API reference (and the Getting Started / usage
snippets) to match the shipped cache/API library on `next` (issue 53, issue
13). Documented `Library.open` and its options, the default-read vs `fresh()`