Skip to content

feat: retry throttled kDrive reads - #16

Draft
OpenCow42 wants to merge 1 commit into
mainfrom
codex/handle-kdrive-rate-limits
Draft

feat: retry throttled kDrive reads#16
OpenCow42 wants to merge 1 commit into
mainfrom
codex/handle-kdrive-rate-limits

Conversation

@OpenCow42

Copy link
Copy Markdown
Owner

Summary

  • retry HTTP 429 responses for read-style kDrive operations
  • honor Retry-After seconds and HTTP dates with a 60-second cap
  • fall back to cancellation-aware 1, 2, and 4 second exponential delays with plus-or-minus 20 percent jitter
  • keep mutations single-attempt to avoid replaying ambiguous server-side changes
  • recreate lazy download transfers for every attempt while retaining stable cancellation and progress
  • map exhausted throttling to serverUnreachable and keep logs and durable activity sanitized
  • add deterministic policy, URLProtocol integration, download, mutation, exhaustion, and cancellation tests
  • update lifecycle, API mapping, logging, testing, and changelog documentation

Closes #9

Dependency

Depends on OpenCow42/potassiumChannel#49.

For a reproducible stacked review, this branch pins potassiumChannel commit fc41c4213060af2cf735d6a7381431487987097e. After the dependency PR is merged and version 0.3.0 is published, this PR must switch the Xcode requirement and Package.resolved back to the released semantic version before merge.

Validation

  • potassiumChannel swift test: 557 tests in 172 suites passed
  • potassiumProvider unit tests passed on macOS
  • potassiumProvider unit tests passed on iOS Simulator 26.5, iPhone 17
  • potassiumProvider unit tests passed on visionOS Simulator 26.5, Apple Vision Pro
  • macOS app build passed while resolving the pushed dependency commit from GitHub

An additional fresh macOS test launch encountered an Xcode test-worker materialization stall after a successful build; it was interrupted after the already-passing unit matrix had been established.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Handle kDrive rate-limit responses with bounded backoff

1 participant