fix(client): validate retry limits and preserve application errors (#3867)
Validates non-negative integer retry limits, replaces infinity guidance with a large-integer recommendation, and propagates application exceptions without retrying. Retry logs now include attempt counts. Default retry counts and backoff behavior are unchanged. Closes #2737. Closes #2404. Related proposals: #2739, #2956, #3804, #2460, #2491, and #3072. Also relates to #3002 and #2962. Validation: 1,147 tests passed (87 skipped); 144 focused Pydantic v1 tests passed. Ruff, Pyright, mypy, builds, and custom-code budget checks passed. CI is pending on the updated commit. The previously observed streaming error-message assertion failures reproduce on the base commit.
M
Marcus Wood committed
f86c7214093038faa512bd4883558b093bdb8c9a
Parent: 6520df1
Committed by GitHub <noreply@github.com>
on 9/15/2026, 10:32:06 PM