Releases
v0.2.3
v0.2.3 — OTP Circuit Breaker
Compare
Sorry, something went wrong.
No results found
What's New
OTP Circuit Breaker
Per-skill circuit breaker — pure OTP implementation using GenServer + ETS, zero external dependencies
State machine — :closed (normal) → :open (failing, calls rejected instantly) → :half_open (testing with one probe call)
Auto-recovery — after 3 consecutive failures the circuit opens; after 5 minutes a half-open probe tests if the skill has recovered
Telegram notifications — alerts on circuit open (with failure count and last error) and circuit closed (recovered)
Transparent wrapper — skills have zero awareness of the breaker, no changes to run/1 signatures or args
Dynamic skill lifecycle — breakers are cleaned up on skill unload, reset on skill reload (fresh code = fresh circuit)
Workflow Resilience Controls
Dead letter routing — per-step config for circuit open behavior: halt workflow, skip step (pass input through), or fallback to an alternative skill
Missing skill handling — per-step config: halt or skip when a skill is not loaded (e.g. dynamic skill unloaded)
Fallback skill — route to an alternative skill when the primary skill's circuit is open
All controls are visible dropdowns in the workflow step editor — no JSON editing required
Circuit Breaker Observability
Dedicated log severity — :circuit_breaker events classified by [CircuitBreaker] prefix in log messages
Logs page filter — new "Circuit Breaker" button with blue "CB" badge in the real-time log viewer
UI Improvements
Tooltips on every field — all workflow and step editor fields now have ? tooltip balloons with contextual help
Extracted reusable tip component for consistent tooltip rendering across the UI
Testing
broken_skill.ex test fixture — always-failing dynamic skill for circuit breaker verification
Unit tests for all state transitions (closed → open → half_open → closed/open)
You can’t perform that action at this time.