Repository navigation
Releases
Releases · thomhurst/Kevlar
v1.5.0
What's Changed
Fixes
- test(rate-limit): fire queue timers by due time in the burst-and-queue test by @thomhurst in #691
Other changes
- test: honour test cancellation in bounded test waits by @thomhurst in #681
- test: keep WeakReference lifetime tests passing in Debug builds by @thomhurst in #682
- ci(mutation): set Stryker thresholds from the achieved score by @thomhurst in #680
- test: time out every Kevlar.Tests test, including synchronous blocks by @thomhurst in #684
- test(mutation): keep timeout, hedging and circuit-breaker methods out of Stryker Safe Mode by @thomhurst in #685
- fix(testing): count ExecutionProbe cancellations that finish the action first by @thomhurst in #687
- test(hedging): observe losing-attempt cancellation without a racing callback by @thomhurst in #688
- test(circuit-breaker): cover async monitor control of multiple circuits by @thomhurst in #695
- test(backoff): cover decorrelated jitter on Constant and Linear and single-argument GetDelay by @thomhurst in #696
- test(di): cover AddReloadingShield(name, configuration, onReloadFailure, replace) by @thomhurst in #697
- test: make Kevlar.Tests cheaper and more stable under mutation testing by @slang25 in #703
- feat!: target .NET 11 with runtime async and drop .NET 8 by @thomhurst in #706
New Contributors
Full Changelog: v1.4.1...v1.5.0
v1.4.1
What's Changed
Other changes
- fix(deps): reference .NET 10 packages from net10.0 targets by @thomhurst in #672
Full Changelog: v1.4.0...v1.4.1
v1.4.0
What's Changed
Other changes
- fix(build): pin documentation test Pkcs dependency by @thomhurst in #620
- fix(http): isolate default shield pipelines by client name by @thomhurst in #624
- fix(logging): let severity providers retain computed default levels by @thomhurst in #625
- feat(http): configure replay-safe methods for selected shields by @thomhurst in #622
- fix(http): preserve standard strategy options by @thomhurst in #630
- fix(release): freeze logging DefaultLevel API baseline by @thomhurst in #632
- fix(http): cache decoration of selected shield snapshots by @thomhurst in #626
- fix(tests): isolate allocation guard from background GC by @thomhurst in #634
- docs(polly-migration): explain timeout catch hierarchy by @thomhurst in #635
- fix(release): freeze HTTP replay and selector API baselines by @thomhurst in #638
- fix(docs): publish LLM documentation endpoints by @thomhurst in #627
- fix(agents): support configurable shared performance-lock checkout by @thomhurst in #629
- fix(ci): make stress docs publication safe to rerun by @thomhurst in #642
- fix(docs): remediate npm audit dependency findings by @thomhurst in #633
- feat(options): expose independent configuration clones by @thomhurst in #637
- fix(ci): make benchmark and outage docs publishers safe to rerun by @thomhurst in #644
- fix(tests): isolate allocation measurements from GC by @thomhurst in #647
- fix(release): freeze option Clone API baselines by @thomhurst in #652
- docs: clarify partition cache and strategy clocks by @thomhurst in #649
- fix(docs): trust SDK-resolved framework analyzers by @thomhurst in #653
- fix(ci): avoid stalled Azure APT mirror in documentation setup by @thomhurst in #658
- fix(ef): avoid nested admission during commit verification by @thomhurst in #660
- fix(grpc): preserve call cancellation in selected server reads by @thomhurst in #661
- fix(ci): skip unconfigured optional issue triage by @thomhurst in #643
- fix(grpc): preserve call cancellation during duplex reads by @thomhurst in #662
Full Changelog: v1.3.0...v1.4.0
v1.3.0
What's Changed
Fixes
- test(perf): benchmark and document no-throw outcome rejections by @thomhurst in #585
- perf(context): cut nested and caller-seeded context overhead by @thomhurst in #587
- perf(timeout): lock-free pooled timeout source arming and return by @thomhurst in #588
- perf(circuit-breaker): reject open, isolated, and saturated half-open calls without the lock by @thomhurst in #586
Full Changelog: v1.2.0...v1.3.0
v1.2.0
What's Changed
Other changes
- fix(ci): unblock automated dependency updates by @thomhurst in #536
- fix(deps): keep .NET 8 floors by @thomhurst in #537
- docs: record retained Reservoir dependency decision by @thomhurst in #541
- feat(di): support configuration-bound hedging by @thomhurst in #540
- feat(di): validate named shields at host startup by @thomhurst in #543
- feat(analyzers): diagnose literal duration budgets by @thomhurst in #542
- docs: add HTTP resilience migration guide by @thomhurst in #544
- perf(context): skip empty nested property snapshots by @thomhurst in #546
- feat(analyzers): add safe cancellation-token forwarding code fix by @thomhurst in #547
- feat(testing): explain effective pipeline behavior by @thomhurst in #545
- feat(http): resolve hedge endpoints per request by @thomhurst in #548
- feat(healthchecks): report circuit states and partition health by @thomhurst in #551
- feat(grpc): add server admission interceptor by @thomhurst in #550
- feat(tracing): enrich existing activities with strategy events by @thomhurst in #552
- feat(efcore): add sequential execution strategy adapter by @thomhurst in #554
- feat(perf): publish controlled outage and recovery measurements by @thomhurst in #555
- feat(telemetry): add opt-in ActivitySource tracing by @thomhurst in #556
- test: stabilize rate-limit timestamp contention synchronization by @thomhurst in #562
- feat: add circuit breaker probe cohorts and slow-call detection by @thomhurst in #563
- feat: add deadline-aware retry and hedge scheduling by @thomhurst in #557
- perf: add reproducible runtime contention diagnostics by @thomhurst in #560
- feat: add adaptive concurrency limits with windowed AIMD by @thomhurst in #566
- perf: coalesce timer scheduling across successful timeout rentals by @thomhurst in #572
- feat: bound concurrency and rate-limit queue waits by @thomhurst in #567
- feat: share retry and hedge feedback budgets by @thomhurst in #573
- perf: reuse timeout timestamps and reduce deadline bookkeeping by @thomhurst in #574
- feat: add replenishing shared retry and hedge allowances by @thomhurst in #575
- feat: add priority ordering and shedding to admission queues by @thomhurst in #576
- fix(release): freeze 1.2 API baselines by @thomhurst in #581
Full Changelog: v1.1.1...v1.2.0
v1.1.1
What's Changed
Other changes
- fix(ci): support external contributors in Claude workflows by @thomhurst in #482
- fix(ci): generate API docs and remove redundant verification by @thomhurst in #487
- chore(deps): upgrade Reservoir to 1.9.1 by @thomhurst in #497
Full Changelog: v1.1.0...v1.1.1
v1.1.0
What's Changed
Other changes
- test(stress): expose scaling bottlenecks by @thomhurst in #473
- test(di): stabilize failed resolution race by @thomhurst in #472
- test(di): stabilize reload snapshot lifetime test by @thomhurst in #474
- perf(timeout): gate ignored timing by @thomhurst in #476
- perf(fallback): add void fast path by @thomhurst in #477
- perf(circuit): remove closed success lock by @thomhurst in #475
- perf(async): pool pipeline state machines by @thomhurst in #478
- perf(strategies): pool suspended state by @thomhurst in #479
Full Changelog: v1.0.1...v1.1.0
v1.0.1
What's Changed
Other changes
- Enforce warning-clean documentation snippets by @thomhurst in #469
- Reject disabled analyzer levels in docs validation by @thomhurst in #470
- perf(circuit): avoid closed admission lock by @thomhurst in #471
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Kevlar 1.0 establishes the stable Shield API.
What's Changed
Other changes
- test: expand resilience coverage by @thomhurst in #183
- refactor(api): make StrategyNode internal by @thomhurst in #246
- fix(http): retain shared buffer across attempts by @thomhurst in #249
- docs: expose partitioning guide by @thomhurst in #247
- build(packaging): ship symbol packages by @thomhurst in #251
- fix(api): disambiguate typed fallback values by @thomhurst in #250
- feat(properties): add typed key collection APIs by @thomhurst in #253
- feat(strategy): expose invocation semantics by @thomhurst in #254
- fix(engine): fault empty async throws by @thomhurst in #256
- test: harden resilience verification by @thomhurst in #184
- fix(tests): use renamed fallback API by @thomhurst in #257
- refactor(options): seal sibling types by @thomhurst in #259
- docs: align observability with runtime by @thomhurst in #252
- build: pin assembly identity policy by @thomhurst in #271
- fix(packaging): pin friend dependencies by @thomhurst in #272
- fix(handling): exclude fail-fast errors by @thomhurst in #268
- fix(tests): use FallbackTo in new tests by @thomhurst in #258
- docs: correct timeout handling examples by @thomhurst in #255
- fix(http): cap standard retry delays by @thomhurst in #262
- fix(breaker): ignore unhandled exceptions by @thomhurst in #263
- fix(timeout): classify wrapped cancellations by @thomhurst in #267
- refactor(backoff)!: unify kind +semver: major by @thomhurst in #269
- build(packaging): complete NuGet metadata by @thomhurst in #276
- fix(http): retry HttpClient timeouts by @thomhurst in #260
- refactor(naming)!: standardize queue limits by @thomhurst in #278
- perf(outcome): avoid Exception.Data lookups by @thomhurst in #270
- fix(build): ship native net8 assets by @thomhurst in #266
- ci(docs): validate site on pull requests by @thomhurst in #280
- refactor(events)!: clarify attempt counters by @thomhurst in #275
- build(deps): lower shipped floors by @thomhurst in #273
- refactor(naming)!: finish Hedge rename by @thomhurst in #279
- docs: add exception reference by @thomhurst in #265
- refactor(exceptions)!: unify rejection hierarchy by @thomhurst in #282
- fix(http): preserve non-replayable outcomes by @thomhurst in #264
- refactor(api): fold VoidShield into Shield by @thomhurst in #261
- feat(backoff)!: add configurable jitter modes by @thomhurst in #283
- ci(release): harden publish workflow by @thomhurst in #281
- feat(hedging)!: type action generators by @thomhurst in #285
- feat(builders): complete shield overload parity by @thomhurst in #286
- docs: expand Polly migration guide by @thomhurst in #288
- feat(di): add typed shield provider parity by @thomhurst in #292
- docs: add community support resources by @thomhurst in #284
- feat(hedging): add delay generators by @thomhurst in #295
- refactor(rate): distinguish adapter surface by @thomhurst in #291
- docs: improve getting started flow by @thomhurst in #287
- refactor(events): unify callback context by @thomhurst in #289
- fix(validation): distinguish option errors by @thomhurst in #298
- docs: structure changelog for 1.0 by @thomhurst in #274
- feat(handling): add contextual predicates by @thomhurst in #293
- docs(testing): restructure testing guide by @thomhurst in #300
- fix(http): harden standard shield options by @thomhurst in #302
- fix(circuit): harden state reporting by @thomhurst in #305
- feat: add outcome execution APIs by @thomhurst in #290
- docs: add samples and API reference by @thomhurst in #277
- refactor(hedge): align attempt counting by @thomhurst in #294
- perf(partition): avoid blocking async lookup by @thomhurst in #303
- feat(callbacks): isolate notification failures by @thomhurst in #310
- fix(di): harden shield reloads by @thomhurst in #312
- feat(telemetry): enrich strategy events by @thomhurst in #306
- feat(http): add per-request shield options by @thomhurst in #301
- feat(di): add dynamic registry reload by @thomhurst in #299
- perf(metrics): publish observable state gauges by @thomhurst in #309
- fix(sync): reject async strategy callbacks by @thomhurst in #307
- feat(logging): add structured strategy logs by @thomhurst in #313
- feat(analyzers): diagnose pooled context hazards by @thomhurst in #308
- fix(analyzers): track deferred state mutations by @thomhurst in #319
- chore(release): freeze 1.0 API baselines by @thomhurst in #320
- refactor(callbacks)!: one ValueTask hook per strategy event — drop the sync/async twins by @thomhurst in #352
- ci(release): publish packages before tag by @thomhurst in #356
- fix(release): derive publish package set by @thomhurst in #357
- docs: correct framework lists and retry cap by @thomhurst in #355
- feat(circuit-breaker): support monitor fan-out by @thomhurst in #358
- docs(analyzers): document tooling and opt-out by @thomhurst in #359
- refactor(exceptions)!: separate timeout failures by @thomhurst in #360
- fix(deps): restore .NET 8 package floors by @thomhurst in #361
- refactor(api)!: rename result value clauses by @thomhurst in #362
- docs: streamline getting-started path by @thomhurst in #363
- docs(release): consolidate 1.0 notes by @thomhurst in #366
- fix(retry): cap generated delays by default by @thomhurst in #368
- fix(packaging): pin coupled Kevlar packages by @thomhurst in #370
- fix(http): snapshot handler options by @thomhurst in #371
- fix(resilience): dispose superseded results by @thomhurst in #369
- docs: define stable support commitments by @thomhurst in #374
- refactor(http)!: nest standard hedge options by @thomhurst in #372
- fix(http): replay ordinary JSON content by @thomhurst in #367
- docs: correct Polly migration guide by @thomhurst in #376
- refactor(api)!: normalize pre-freeze surface by @thomhurst in #373
- docs: add practical resilience guides by @thomhurst in #378
- fix(metrics): aggregate partition gauges by @thomhurst in #377
- feat(execution): support parent contexts by @thomhurst in #380
- feat(metrics): add enrichment hooks by @thomhurst in #379
- feat(http): hedge request authority by default by @thomhurst in #381
- feat(timeout): report ignored cancellation by @thomhurst in #382
- refactor...
v0.10.0
What's Changed
- feat(api): compile-time void fallback safety by @thomhurst in #182
Full Changelog: v0.9.0...v0.10.0