No description
Find a file
Snider 50ad540241 feat(infra): Phase 2 — API client abstraction, retry logic, rate limiting
Extract shared APIClient from HCloudClient/HRobotClient/CloudNSClient with
configurable retry (exponential backoff + jitter), 429 rate-limit handling
(Retry-After header), and functional options (WithHTTPClient, WithRetry,
WithAuth, WithPrefix). 30 new client_test.go tests covering retry exhaustion,
rate-limit queuing, context cancellation, and integration with all 3 providers.
DigitalOcean: no code existed, removed stale doc references. 66 infra tests
pass, race-clean.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 04:11:08 +00:00
ansible test(ansible): Phase 1 Step 1.5 — error propagation, become, facts & idempotency 2026-02-20 02:58:27 +00:00
build test(build): add builder detection and config tests 2026-02-20 02:39:32 +00:00
container test(devops): Phase 0 test coverage and hardening 2026-02-20 01:36:03 +00:00
deploy feat: extract devops packages from core/go 2026-02-16 15:21:39 +00:00
devkit feat: extract devops packages from core/go 2026-02-16 15:21:39 +00:00
devops test(devops): Phase 0 test coverage and hardening 2026-02-20 01:36:03 +00:00
infra feat(infra): Phase 2 — API client abstraction, retry logic, rate limiting 2026-02-20 04:11:08 +00:00
release test: complete Phase 0 build/ and release/ test coverage 2026-02-20 01:58:37 +00:00
sdk feat: extract devops packages from core/go 2026-02-16 15:21:39 +00:00
CLAUDE.md feat(infra): Phase 2 — API client abstraction, retry logic, rate limiting 2026-02-20 04:11:08 +00:00
FINDINGS.md feat(infra): Phase 2 — API client abstraction, retry logic, rate limiting 2026-02-20 04:11:08 +00:00
go.mod test(devops): Phase 0 test coverage and hardening 2026-02-20 01:36:03 +00:00
go.sum feat: extract devops packages from core/go 2026-02-16 15:21:39 +00:00
TODO.md feat(infra): Phase 2 — API client abstraction, retry logic, rate limiting 2026-02-20 04:11:08 +00:00