mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-09-01 00:59:33 +00:00
refactor: decouple modules, add resilience middleware and state bus [skip-regression-check]
Break circular dependencies between agent, db, channels, and context modules by extracting shared domain types to neutral locations: - Extract routine types to src/models/routine.rs - Extract ToolFailureRecord to src/models/tool_failure.rs - Move SseEvent to src/events.rs as DomainEvent - Move HttpInterceptor to src/observability/ - Move truncate_preview to src/util.rs Add generic resilience middleware (src/resilience/): - ErrorClassifier, RetryLayer, CircuitBreakerLayer, HealthTracker Add state invalidation bus (src/state_bus.rs) Add boundary chaos tests (tests/boundary_chaos.rs) Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
757d24bd90
commit
b04d14b114
@@ -74,7 +74,7 @@ pub struct AgentDeps {
|
||||
/// Cost enforcement guardrails (daily budget, hourly rate limits).
|
||||
pub cost_guard: Arc<crate::agent::cost_guard::CostGuard>,
|
||||
/// SSE broadcast sender for live job event streaming to the web gateway.
|
||||
pub sse_tx: Option<tokio::sync::broadcast::Sender<crate::channels::web::types::SseEvent>>,
|
||||
pub sse_tx: Option<tokio::sync::broadcast::Sender<crate::events::DomainEvent>>,
|
||||
/// HTTP interceptor for trace recording/replay.
|
||||
pub http_interceptor: Option<Arc<dyn crate::llm::recording::HttpInterceptor>>,
|
||||
/// Audio transcription middleware for voice messages.
|
||||
|
||||
Reference in New Issue
Block a user