Skip to content

feat(strategy): expose invocation semantics - #254

Merged
thomhurst merged 1 commit into
mainfrom
issue-206-single-invoke
Aug 24, 2026
Merged

feat(strategy): expose invocation semantics#254
thomhurst merged 1 commit into
mainfrom
issue-206-single-invoke

Conversation

@thomhurst

Copy link
Copy Markdown
Owner

Summary

  • expose Strategy.InvokesContinuationAtMostOnce to custom strategies
  • add the aggregate property to Shield<TResult> and update built-in/satellite override accessibility
  • mark all Chaos strategies as at-most-once
  • preserve gRPC early-header forwarding for opted-in custom strategies
  • document the strict opt-in contract

Validation

  • dotnet build Kevlar.slnx -c Release
  • dotnet run --project tests/Kevlar.Tests -c Release --no-build -- --timeout 5m (809 passed)
  • dotnet run --project tests/Kevlar.Chaos.Tests -c Release --no-build -- --timeout 5m (32 passed)
  • dotnet run --project tests/Kevlar.Analyzers.Tests -c Release --no-build -- --timeout 5m (76 passed)
  • dotnet run --project tests/Kevlar.IntegrationTests -c Release --no-build -- --timeout 5m (124 passed)
  • dotnet run --project tests/Kevlar.Extensions.RateLimiting.Tests -c Release --no-build -- --timeout 5m (23 passed)
  • pwsh scripts/Verify-Docs.ps1
  • pwsh scripts/Verify-DocSnippets.ps1 -PackagesPath artifacts/packages -Version 1.0.0-loop206 (118 compiled; behavior passed)
  • npm run build in docs/

Closes #206

Let custom strategies declare at-most-once continuation behavior and expose the aggregate on typed shields so integrations can preserve safe fast paths.

Refs #206
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 937cca07-3080-4c20-8ee3-f1195c2c4f39


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thomhurst
thomhurst merged commit ffafee5 into main Aug 24, 2026
9 checks passed
@thomhurst
thomhurst deleted the issue-206-single-invoke branch August 24, 2026 19:59
thomhurst added a commit that referenced this pull request Aug 24, 2026
Restore the main build after concurrent merges left the new invocation-semantics test calling the removed constant fallback overload.

Refs #254
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.

refactor(strategy): expose InvokesContinuationAtMostOnce to custom strategies and on Shield<T>

1 participant