SIGN IN SIGN UP

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