Skip to content

Add retryable generic client requests - #173

Merged
floitsch merged 4 commits into
mainfrom
floitsch/request-retry
Aug 26, 2026
Merged

Add retryable generic client requests#173
floitsch merged 4 commits into
mainfrom
floitsch/request-retry

Conversation

@floitsch

@floitsch floitsch commented Aug 26, 2026

Copy link
Copy Markdown
Member

Summary

  • add generic Client.request overloads for replayable byte-array requests
  • retry idempotent methods when a cached connection has gone stale, with an explicit override for other methods
  • stop implicitly retrying buffered post, post-json, and post-form calls so non-idempotent requests are not replayed
  • document the retry boundary for buffered and streaming bodies and cover the public POST helpers with regression tests
  • synchronize stale-connection tests with explicit server-close signals instead of sleeps or timing assumptions

Testing

  • toit analyze -Werror src/client.toit
  • toit analyze -Werror --project-root tests tests/client-request-retry-test.toit
  • event-driven retry regression test passed 10 consecutive stress runs
  • all 15 locally available non-WebDriver tests passed
  • WebDriver tests remain unavailable locally because chromedriver and geckodriver are not installed

@floitsch
floitsch merged commit dbe7eff into main Aug 26, 2026
7 checks passed
@floitsch
floitsch deleted the floitsch/request-retry branch August 26, 2026 23:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant