CI / Rustfmt (push) Canceled after 0s
CI / Clippy (push) Canceled after 0s
CI / Test (workspace all features) (push) Canceled after 0s
CI / Test (workspace default features) (push) Canceled after 0s
CI / Test (mytheclipse / bg only) (push) Canceled after 0s
CI / Test (mytheclipse / compute only) (push) Canceled after 0s
CI / Test (mytheclipse / io only) (push) Canceled after 0s
CI / Test (mytheclipse / lifecycle only) (push) Canceled after 0s
CI / Test (mytheclipse / observability only) (push) Canceled after 0s
CI / Test (mytheclipse / resiliency only) (push) Canceled after 0s
CI / Test (mytheclipse / traffic only) (push) Canceled after 0s
CI / Test (mytheclipse-cache / l2-redis) (push) Canceled after 0s
CI / Test (mytheclipse-cache / l1-moka) (push) Canceled after 0s
CI / Test (mytheclipse-cache / default) (push) Canceled after 0s
CI / Test (mytheclipse-config / default) (push) Canceled after 0s
CI / Test (mytheclipse-crypto / default) (push) Canceled after 0s
CI / Test (mytheclipse-event / amqp) (push) Canceled after 0s
CI / Test (mytheclipse-event / nats) (push) Canceled after 0s
CI / Test (mytheclipse-event / default (mem)) (push) Canceled after 0s
CI / Test (mytheclipse-storage / gcs) (push) Canceled after 0s
CI / Test (mytheclipse-storage / s3) (push) Canceled after 0s
CI / Test (mytheclipse-storage / default (local)) (push) Canceled after 0s
CI / Run mytheclipse example (push) Canceled after 0s
CI / Docs check (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-cache) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-config) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-crypto) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-event) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-storage) (push) Canceled after 0s
Release / Semantic Release (push) Canceled after 0s
38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# Implementation Spec: Round 4
|
|
|
|
## Status: COMPLETE
|
|
|
|
## New Features
|
|
|
|
### 1. CircuitBreakerMetrics (circuit_breaker.rs)
|
|
- Added `CircuitSnapshot { state: CircuitState, failures: u64, successes: u64 }` struct
|
|
- Added `CircuitBreaker::snapshot() -> CircuitSnapshot` method (atomic load)
|
|
- Test: `snapshot_reflects_state_and_counts`
|
|
|
|
### 2. RetryStats (retry.rs)
|
|
- Added `RetryStats { attempts: u32, retries: u32, last_error: Option<String> }`
|
|
- Added `retry_with_stats()` returning `(Result, RetryStats)` (parallel to retry())
|
|
- Tests: 2 new
|
|
|
|
### 3. AsyncLifecycleManager (lifecycle.rs) — Round 3 carryover, verified
|
|
- Composes ShutdownManager + HealthRegistry + health loop
|
|
- Tests: 3
|
|
|
|
### 4. MetricsBridge (metrics_bridge.rs) — Round 3 carryover
|
|
- `MetricsBridge` emits MetricsCollector → tracing
|
|
- `MetricsHealthCheck` wraps collector as HealthCheck
|
|
- Tests: 2
|
|
|
|
## Fixes in round 4
|
|
- `HealthRegistry` wrapped in `Arc` in AsyncLifecycleManager (not Clone)
|
|
- Removed unused `span`/`Instrument` import in lifecycle.rs
|
|
- Fixed `op_ref` mutability in service_builder.rs
|
|
- Fixed `last_error` assertion (None on success) in retry test
|
|
- Fixed snapshot test assertions (successes not incremented in Closed state)
|
|
|
|
## Build Status
|
|
- cargo build --workspace --all-features: OK (2 pre-existing warnings in crypto/cli)
|
|
- cargo test --workspace --all-features: ALL PASS
|
|
- cargo clippy: 0 warnings on round-4 code (pre-existing in crypto/cli only)
|
|
- Committed + pushed
|