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(events)!: unify attempt numbering by @thomhurst in #383
- refactor(partitioning)!: type lifecycle events by @thomhurst in #384
- refactor(di)!: move registration extensions by @thomhurst in #375
- docs: require explicit DI imports in snippets by @thomhurst in #404
- docs: explain hook exception isolation by @thomhurst in #405
- docs(packaging): add package-specific readmes by @thomhurst in #406
- feat(analyzers): add diagnostic help links by @thomhurst in #407
- refactor(timeout)!: pass event to generator by @thomhurst in #410
- fix(packaging): version analyzer asset path by @thomhurst in #408
- refactor(analyzers): make config hints opt-in by @thomhurst in #409
- refactor(hedge)!: type hedge events by @thomhurst in #413
- refactor(chaos)!: make generators async by @thomhurst in #414
- feat(fallback): permit sync delegates by @thomhurst in #411
- refactor(hedge)!: use raw action delegates by @thomhurst in #419
- feat(hedge): record attempt outcomes by @thomhurst in #415
- feat(http): surface unsafe replay suppression by @thomhurst in #417
- fix(handling)!: isolate predicate failures by @thomhurst in #412
- fix(http)!: preserve state across rotation by @thomhurst in #416
- feat(fallback)!: handle rejections by default by @thomhurst in #421
- fix(http)!: make hedge limiter optional by @thomhurst in #422
- refactor(execution)!: align context overloads by @thomhurst in #418
- feat(http): add AllowReplay request extension by @thomhurst in #423
- refactor(api)!: align pre-freeze names by @thomhurst in #420
- fix(scripts): verify packaged analyzer by @thomhurst in #446
- fix(release): freeze public API baselines by @thomhurst in #448
- docs(retry): document defaults and timeouts by @thomhurst in #452
- docs: explain .NET Framework setup by @thomhurst in #450
- docs(readme): add support requirements by @thomhurst in #453
- docs: correct NU1608 behavior by @thomhurst in #449
- fix(packaging): separate analyzer symbols by @thomhurst in #451
- docs(readme): add runnable DI examples by @thomhurst in #447
- fix(handling)!: preserve caller cancellation by @thomhurst in #457
- perf(partitioned): bypass gate for idle warm hits by @thomhurst in #463
- fix(testing)!: hide transparent decorators by @thomhurst in #459
- docs(migration): fill Polly mapping gaps by @thomhurst in #454
- build(release): generate GitHub release notes by @thomhurst in #455
- docs: explain runtime caveats by @thomhurst in #456
- docs(execution): add UI context recipe by @thomhurst in #464
- fix(hedge): normalize negative delays by @thomhurst in #458
- feat(handling): match inner exceptions by @thomhurst in #461
- fix(di)!: keep registry reload shields live by @thomhurst in #460
- feat(http): add named shield and removal APIs by @thomhurst in #462
- fix(partitioned)!: dispose owned strategies by @thomhurst in #467
- feat(grpc): honor retry pushback by @thomhurst in #465
- fix(release): freeze final 1.0 APIs by @thomhurst in #468
Full Changelog: v0.10.0...v1.0.0