Skip to content

Commit 7938984

Browse files
lesnik512claude
andcommitted
chore(planning): archive circuit-breaker-state bundle, ship 0.14.0 (#70)
Post-merge bookkeeping for PR #70: fill the 0.14.0 release-notes PR number, mark the bundle shipped (pr: 70), move it active -> archive, flip its Index line to Archived, and trim the deferred CircuitBreaker entry to just manual control now that read-only state has shipped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 8521a2d commit 7938984

5 files changed

Lines changed: 11 additions & 12 deletions

File tree

planning/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,12 @@ carry **no** frontmatter — living prose, dated by git.
7070

7171
### Active
7272

73-
- **[circuit-breaker-state](changes/active/2026-06-16.03-circuit-breaker-state/design.md)** (2026-06-16) — Read-only `state` property + public `CircuitState` enum on the circuit breaker. Closes the cheap half of the deferred CircuitBreaker introspection item. Targets 0.14.0.
73+
_None._
7474

7575
### Archived (shipped)
7676

77+
- **[circuit-breaker-state](changes/archive/2026-06-16.03-circuit-breaker-state/design.md)** (#70, 2026-06-16) — Read-only `state` property + public `CircuitState` enum on the circuit breaker. Shipped 0.14.0; closed the read-only-state half of the deferred CircuitBreaker introspection item.
78+
7779
- **[circuit-breaker-rate-mode](changes/archive/2026-06-16.02-circuit-breaker-rate-mode/design.md)** (#69, 2026-06-16) — Added an opt-in time-based failure-rate trip mode to the circuit breaker (classic stays default). Shipped 0.13.0; closed deferred item "CircuitBreaker v2 (a)".
7880
- **[per-verb-with-response](changes/archive/2026-06-16.01-per-verb-with-response/design.md)** (#68, 2026-06-16) — Added `get_with_response``request_with_response` siblings (required `response_model`, returns `(Response, T)`) to both clients. Shipped 0.12.0; closed the deferred "Per-verb-with-response siblings" item.
7981
- **[custom-decoder-guide](changes/archive/2026-06-15.01-custom-decoder-guide/change.md)** (#67, 2026-06-15) — Docs: a "write your own `ResponseDecoder`" guide for Seam B, mirroring `docs/middleware.md`. Closed deferred item G6.

planning/changes/active/2026-06-16.03-circuit-breaker-state/design.md renamed to planning/changes/archive/2026-06-16.03-circuit-breaker-state/design.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
2-
status: draft
2+
status: shipped
33
date: 2026-06-16
44
slug: circuit-breaker-state
55
supersedes: null
66
superseded_by: null
7-
pr: null
8-
outcome: null
7+
pr: 70
8+
outcome: Shipped 0.14.0 — public CircuitState enum + read-only state property on both breakers (raw stored read). Closed the read-only-state half of the deferred CircuitBreaker introspection item; manual control (force_open/force_closed) remains deferred.
99
---
1010

1111
# Design: Read-only `state` introspection on the circuit breaker

planning/changes/active/2026-06-16.03-circuit-breaker-state/plan.md renamed to planning/changes/archive/2026-06-16.03-circuit-breaker-state/plan.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
status: draft
2+
status: shipped
33
date: 2026-06-16
44
slug: circuit-breaker-state
55
spec: circuit-breaker-state
6-
pr: null
6+
pr: 70
77
---
88

99
# circuit-breaker-state — implementation plan

planning/deferred.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@ As of 0.7.0, all planned epics (3, 4, 5, 6) are closed — see the [change Index
88

99
### Resilience
1010

11-
- **CircuitBreaker — manual control + read-only `state`** (`src/httpware/middleware/resilience/circuit_breaker.py`) — the trip-mode work is done (0.13.0 shipped the opt-in time-based failure-rate mode alongside classic). Two related, unequal pieces remain, both keyed off the 0.10.0 audit's events-only control-surface decision (decision 4):
11+
- **CircuitBreaker — manual control** (`src/httpware/middleware/resilience/circuit_breaker.py`) — the trip-mode work is done (0.13.0 shipped the opt-in time-based failure-rate mode) and 0.14.0 shipped the read-only `state` property + public `CircuitState` enum. The one remaining piece is `force_open`/`force_closed` (Polly's `ManualControl`) — the genuinely YAGNI half for an HTTP *client* (you'd usually just stop sending requests), keyed off the 0.10.0 audit's events-only control-surface decision (decision 4). Demand-gated.
1212

13-
- **Read-only `state`** — an `OPEN`/`CLOSED`/`HALF_OPEN` introspection property (Resilience4j's registry, Polly's `StateProvider`). Cheap and side-effect-free; useful for health endpoints, dashboards, and tests. Barely speculative — the kind of thing to build when convenient rather than park indefinitely.
14-
- **Manual control**`force_open`/`force_closed` (Polly's `ManualControl`). The genuinely YAGNI half for an HTTP *client* (you'd usually just stop sending requests). Demand-gated.
15-
16-
**Don't regress:** httpware's HTTP-native failure classification (429/4xx = success out of the box) is already ahead of the generic-predicate breakers — preserve it in any v2 work.
13+
**Don't regress:** httpware's HTTP-native failure classification (429/4xx = success out of the box) is already ahead of the generic-predicate breakers — preserve it in any future work here.
1714

1815
**Decided against (don't re-propose):**
1916

planning/releases/0.14.0.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,4 @@ The following remain deferred and are not part of 0.14.0:
4747

4848
## Shipped via
4949

50-
PR #XX — read-only circuit-breaker state introspection.
50+
PR #70 — read-only circuit-breaker state introspection.

0 commit comments

Comments
 (0)