Files
mytheclipse/.hermes/plans/mytheclipse-round8-spec.md
T

24 lines
1.2 KiB
Markdown
Raw Normal View History

# Round 8 — COMPLETE
## New Feature
### 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)
## Modified
- 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)
## 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.