1.5 KiB
1.5 KiB
Implementation Spec: Round 5
Status: COMPLETE
New Features
1. CircuitBreakerHealthCheck (mytheclipse-core, observability+resiliency)
CircuitBreakerHealthCheckdi metrics_bridge.rs — HealthCheck impl yang memetakan CircuitBreaker snapshot state → HealthStatus (Open→Unhealthy, HalfOpen→Degraded, Closed→Ok)- Gated
#[cfg(feature="resiliency")]; re-export gated#[cfg(all(observability, resiliency))] observabilityfeature now implieslifecycle(needed for crate::health module access)
2. TypedKeyRegistry (mytheclipse-crypto, password)
TypedKeyRegistry<K,V>di key_registry.rs — ID-based key lookup + rotation + revoke, wraps KeyRingkey_for(id) -> Option<&K>,rotate_with_id(id, key),revoke(id)
3. MetricsHttpHandler (mytheclipse-http, metrics-http)
- new feature
metrics-http(axum + tower + mytheclipse/observability) metrics_routes(collector)→ Router serving /metrics (Prometheus text) + /- added tower dep (util), ServiceExt import in test module
- 1 test via ServiceExt::oneshot
4. BatchProcessor (mytheclipse-queue, in-memory)
BatchJobHandlertrait — handle Vec atomicallyBatchConfig{ batch_size, batch_timeout, concurrency }BatchProcessor<Q>— accumulates jobs per topic, flushes on size/timeout- 2 tests: flush_on_batch_size, flush_on_timeout
Verification
- cargo build --workspace --all-features → exit 0
- cargo test --workspace --all-features → all pass (160+ tests)
- cargo clippy --workspace --all-features → no new warnings
- commit + push: f02a1ce