Conversation
- All public async methods now accept and honor CancellationToken - IKnowledgeBase: LoadAsync/LoadManyAsync require CT (source-breaking for implementers) - MarkdownKnowledgeBase: file and in-memory loaders (LoadTextAsync, LoadTextsAsync) support CT; DocumentMetadata exposed - DebateResult: all save methods accept/forward CT - CouncilExecutor.ExecuteAsync forwards CT to SaveToFileAsync - New IAppStoppingToken and CouncilExecutorLifetimeExtensions for host shutdown integration - ConsoleApp: default Ctrl+C handler and --cancellation demo - Docs: new Cancellation Support section, usage examples, NuGet metadata updated - 20+ new tests for cancellation across KB, DebateResult, executor, and extensions - All changes are additive and backward compatible except for IKnowledgeBase implementers
Introduce end-to-end CancellationToken support across all public async methods, enabling a single cancel signal to abort the entire pipeline. Add in-memory MarkdownKnowledgeBase loaders with per-source metadata via a new KnowledgeDocument record and DocumentMetadata property. Update IKnowledgeBase and file/save APIs to accept CancellationToken (defaulted for binary compatibility). Add IAppStoppingToken abstraction and CouncilExecutorLifetimeExtensions.ExecuteAsync for host-based cancellation. Enhance ConsoleApp with --cancellation demo and Ctrl+C support. Add 20+ cancellation-focused tests and update documentation and release notes. No breaking binary changes for callers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Description
This PR applies the v10.2.4 release metadata and documentation:
[10.2.4]section from scratch so it accurately covers both the in-memoryMarkdownKnowledgeBaseloaders and the full cooperativeCancellationTokenwork. Added sub-sections for additive CT parameters, theIAppStoppingTokenhost-lifetime helper, the--cancellationdemo, test counts (9 + 7 + 2 + 5), documentation changes, and an explicit compatibility note.Delibera.Core.csproj— rebuilt<PackageReleaseNotes>(v10.2.4 summary first, v10.2.3 history preserved verbatim) so the NuGet listing reflects the 10.2.4 release.ResilienceExample.cs— updated banner and<summary>fromv10.2.2→v10.2.4.No source code under
Delibera.Core/is touched; the implementation fromde5210b Add full cooperative CancellationToken support everywhereis what 10.2.4 documents.Related Issues
Type of Change
Checklist
dotnet build --configuration Release— verified locally againstDelibera.slnx)de5210bremain the source of truth)README.md,QuickStart.md) — refreshedCHANGELOG.mdv10.2.4 section,PackageReleaseNotesinDelibera.Core.csproj, and theResilienceExamplebanner / summarydotnet build -c Releasepasses; XML well-formedness ofDelibera.Core.csprojconfirmed via[xml]round-tripAdditional Notes
CHANGELOG.md,src/Delibera.Core/Delibera.Core.csproj,src/Delibera.ConsoleApp/Examples/ResilienceExample.cs); +106 / -47 lines.[10.2.3]section is intentionally untouched — it remains the historical record for that release.<Version>10.2.4</Version>was already inDelibera.Core.csproj; this PR aligns the supporting docs/notes with that version.<PackageReleaseNotes>length (3593 chars) is acceptable for the NuGet listing — it carries both the v10.2.4 summary and the v10.2.3 history so a one-version-bump consumer sees the full upgrade story.