Skip to content

fix(coordination): make manual controls authoritative - #88

Merged
bagowix merged 1 commit into
mainfrom
fix/79-manual-controls-coordination
Jul 30, 2026
Merged

fix(coordination): make manual controls authoritative#88
bagowix merged 1 commit into
mainfrom
fix/79-manual-controls-coordination

Conversation

@bagowix

@bagowix bagowix commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Summary

Make local manual controls authoritative for coordinated breakers.

force_open(), disable(), and metrics_only() now take precedence over
cached shared OPEN and HALF_OPEN states. In particular, local overrides do
not claim a shared HALF_OPEN probe lease.

In coordinated mode, reset() now explicitly clears only the local override
and local metrics, then resumes the cached shared state. It does not reset
Redis state cluster-wide.

Added sync and async coverage for manual controls against shared OPEN and
HALF_OPEN, including effective state reporting, admission/rejection,
listener transitions, and probe accounting. Documented the semantics in the
states and Redis guides.

Checklist

  • Tests added or updated (suite stays at 100% coverage)
  • uv run ruff format --check and uv run ruff check pass
  • uv run mypy and uv run pyright pass for interlock/
  • Docs updated (docs/) for user-facing changes
  • CHANGELOG.md [Unreleased] updated
  • Commits follow Conventional Commits

Related issues

Closes #79

@github-actions

Copy link
Copy Markdown

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  interlock
  _engine.py
  breaker.py
Project Total  

This report was generated by python-coverage-comment-action

@bagowix
bagowix merged commit 2d4d20f into main Jul 30, 2026
10 of 11 checks passed
@bagowix
bagowix deleted the fix/79-manual-controls-coordination branch July 30, 2026 20:00
@bagowix bagowix mentioned this pull request Jul 30, 2026
7 tasks
bagowix added a commit that referenced this pull request Jul 30, 2026
## Summary

Prepare the `2.1.3` patch release.

- bump the package version from `2.1.2` to `2.1.3`
- move the current changelog entries from `[Unreleased]` into `2.1.3`
- update changelog comparison links
- update the release version in the comparison page
- regenerate `docs/llms-full.txt`

This release includes fixes for atomic circuit-breaker snapshots and
local manual controls in coordinated mode.

## Checklist

- [x] Test suite passes with 100% coverage
- [x] `uv run ruff format --check` and `uv run ruff check` pass
- [x] `uv run mypy` and `uv run pyright` pass
- [x] Documentation updated
- [x] `CHANGELOG.md` updated
- [x] Release artifacts build successfully
- [x] Commits follow Conventional Commits

## Related issues

- Includes changes from #88
- Includes changes from #89
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make manual controls authoritative for coordinated breakers

1 participant