2026-08-29 20:20:43 +07:00
|
|
|
# Round 8 — COMPLETE
|
2026-08-29 19:56:36 +07:00
|
|
|
|
|
|
|
|
## New Feature
|
2026-08-29 20:20:43 +07:00
|
|
|
### ResilientHttpClient (mytheclipse-http, resilience feature)
|
|
|
|
|
- File: `crates/mytheclipse-http/src/resilient_client.rs`
|
|
|
|
|
- `ResilientClientConfig { timeout, max_attempts, rate_per_sec, rate_burst, circuit_breaker }`
|
|
|
|
|
- `ResilientHttpClient::new(config)` builds `ServiceBuilder` pipeline
|
|
|
|
|
- `send(req)`, `get(url)`, `post(url, body)` — all run through `ServiceBuilder::run`
|
|
|
|
|
- Error type `RunError<Box<dyn std::error::Error + Send + Sync>>`
|
|
|
|
|
- Feature: `resilience = ["dep:reqwest", "dep:tokio", "dep:mytheclipse"]`
|
|
|
|
|
- mytheclipse dep now `features=["full"]` (was observability)
|
|
|
|
|
- 2 tests (config defaults + build)
|
2026-08-29 19:56:36 +07:00
|
|
|
|
|
|
|
|
## Modified
|
2026-08-29 20:20:43 +07:00
|
|
|
- http/Cargo.toml — resilience feature + mytheclipse full features
|
|
|
|
|
- http/lib.rs — module + re-export
|
|
|
|
|
- core/lib.rs — pub use RunError, ServiceConfig (needed by http crate)
|
|
|
|
|
- error.rs — RateLimit(String) variant (queue crate, round 6 carryover)
|
2026-08-29 19:56:36 +07:00
|
|
|
|
2026-08-29 20:20:43 +07:00
|
|
|
## Build: exit 0. Tests: 0 FAILED. Clippy: 0 new warnings.
|
|
|
|
|
|
|
|
|
|
## Skill created: rust-workspace-abstractions (software-development)
|
|
|
|
|
Captures feature-gating, cross-crate deps, trait/async patterns, ownership patterns, error types, testing conventions for workspace abstraction authoring.
|