1.5 KiB
1.5 KiB
Implementation Spec: Round 5
Status: COMPLETE
New Features
1. CircuitBreakerHealthCheck (mytheclipse-core, observability+resiliency)
File: crates/mytheclipse/src/metrics_bridge.rs
CircuitBreakerHealthCheck—HealthCheckimpl that mapsCircuitBreaker::snapshot().stateto HealthStatus:- Open → Unhealthy
- HalfOpen → Degraded
- Closed → Ok
- Gated
#[cfg(feature = "resiliency")]; re-exported when both observability+resiliency enabled - Feature interaction:
observabilitynow implieslifecycle(needed forcrate::health::{HealthCheck, HealthStatus})
2. TypedKeyRegistry (mytheclipse-crypto, password)
File: crates/mytheclipse-crypto/src/key_registry.rs
TypedKeyRegistry<K, V>— registry keyed by string ID, wraps KeyRing for current/previous rotationkey_for(&self, id: &str) -> Option<&K>typed lookuprotate_with_id(&mut self, id, key)+revoke(id)- Default impl uses String keys (v4 signers)
3. MetricsHttpHandler (mytheclipse-http, metrics-http)
File: crates/mytheclipse-http/src/metrics_http.rs
- new feature
metrics-http(axum + tower + mytheclipse/observability) metrics_routes(collector) -> Routerserving/metrics(Prometheus text viaexport_prometheus) +/towerdep added (util feature)- 1 test via ServiceExt::oneshot
Verification
cargo build --workspace --all-features→ exit 0cargo test --workspace --all-features→ all pass (160+ tests)cargo clippy --workspace --all-features→ no new warnings