Conversation
… C# 15 (#1) * feat: add Operator (MCP tools) micro-agent role Introduce a new Operator role — a lightweight micro-agent that connects the council to MCP (Model Context Protocol) servers and exposes their tools (web search, filesystem, Notion, PostgreSQL, debate history, etc.) to debate participants. - Participants delegate tasks at any moment via the [[OPERATOR: task]] marker - Operator uses its own cheaper LLM to plan tool calls, execute MCP tools and interpret results, optionally reusing the council's compression strategy - Wired through all debate strategies (Standard/Critique/Consensus), CouncilExecutor, CouncilBuilder and DI options (Delibera:Operator) - DI-initializable; supports stdio and HTTP MCP transports - Per-round Operator interactions rendered in the final Markdown report - Adds ModelContextProtocol package, console --operator flag, example & docs * feat: upgrade to .NET 10 / C# 15, high-perf optimizations & MCP tools example - Bump LangVersion to preview (C# 15) in both projects - Update Microsoft.SourceLink.GitHub to 10.0.300 (other deps already at latest .NET 10 versions) - Perf: SIMD-vectorized CosineSimilarity (ReadOnlySpan<float> + Vector<float>) - Perf: TokenCounter ReadOnlySpan<char> overload (alloc-free word counting) - Perf: CompressionCache.ComputeKey uses ArrayPool<T> + stackalloc SHA-256 - Add OperatorMcpToolsExample (browser via @playwright/mcp, Marp presentations) + --operator-mcp flag - Fix nullable warning in Program.cs - Add Russian docs: docs/NET10-Upgrade-RU.md * docs: Add English version of .NET 10 upgrade documentation * docs: Update README and QuickStart with Operator role documentation --------- Co-authored-by: techbuzzz <victor.buzin@users.noreply.github.com> Co-authored-by: Delibera Agent <agent@delibera.local>
…tor) [v10.1.1] (#2) Add first-class interop with the standard Microsoft.Extensions.AI v10.7.0 abstractions while preserving the existing public API (additive only). - Delibera.Core: add Microsoft.Extensions.AI 10.7.0; bump 10.1.0 -> 10.1.1 - ChatClientLLMProvider: ILLMProvider implemented over IChatClient (+ streaming) - EmbeddingGeneratorProvider: IEmbeddingProvider over IEmbeddingGenerator - MicrosoftAIExtensions: AsLLMProvider/AsEmbeddingProvider/AsChatClient bridges + WithMiddleware (logging + function invocation) - ILLMProvider: additive default ChatStreamAsync (non-breaking) - OllamaProvider: expose native AsChatClient()/AsEmbeddingGenerator() - ProviderFactory.CreateFromChatClient + DI AddDeliberaChatClient/EmbeddingGenerator - ConsoleApp: --msai example - tests: new Delibera.Core.Tests (20 tests, fakes; no live network) - docs: README/README-RU/QuickStart/CHANGELOG + solution file
Refactored expression-bodied members to full block-bodied methods for improved consistency and maintainability. Updated method/property implementations, reordered some fields, and enhanced property clarity. Restored or moved obsolete/compatibility methods. Improved disposal patterns in factories and clarified null/empty handling. No changes to core business logic; focus is on code style and API consistency.
Major overhaul of README.md for clarity and completeness: - Expanded intro, features, and quick start with prerequisites - Improved code samples and formatting throughout - Added detailed sections for DI, Microsoft.Extensions.AI interop, context compression, RAG, Operator, and output files - Provided a more comprehensive appsettings.json example - Updated NuGet dependencies table and all repo links - README.md no longer included in NuGet package in .csproj - Numerous minor language, formatting, and consistency fixes
Added icon.png as the NuGet package icon via <PackageIcon> and ensured README.md is packed with the package for better documentation.
Introduce top-level crash guard and color-coded log streaming in Program.cs. Add OnLog and OnError events to CouncilExecutor and ICouncilExecutor for real-time observability. Refactor error handling to use new events. Update AskAllAsync to disambiguate responses by role and display name. Improve console output formatting and banner.
- Integrate Microsoft.Extensions.Logging throughout debate pipeline; add WithLogger, DI logger injection, and ICouncilExecutor.Logger - Enforce response language via WithResponseLanguage and config; inject strict directive into all prompts - Support parallel Operator requests per round, bounded by MaxDegreeOfParallelism (builder/config) - Introduce DebateExecutionOptions to bundle logger, language, and parallelism for strategies - Rename LogLevel to ExecutionLogLevel to avoid naming clash; add mapping to Microsoft log levels - Update DI, configuration, README, and CHANGELOG for new features - Minor refactoring and improved comments throughout
…sertions - Restore DebateScenario, StandardDebate, CritiqueDebate, ConsensusDebate and CouncilBuilder to the pre-merge (v10.2.0) content; the merge commit had duplicated code blocks and garbled CollectResponsesAsync, breaking the build. - Re-add the FluentAssertions package reference to the test project (lost during the merge), required by the YandexGptProvider tests brought in from main. - Verified: dotnet build -> 0 errors, 0 warnings; dotnet test -> 31/31 passed.
Standardize and refactor how debate execution options (response language, parallelism, logging) are passed and honored across the council framework. All debate strategies and their implementations now consistently support overloads with DebateExecutionOptions, enabling per-execution configuration. CouncilBuilder and CouncilExecutor thread these options through the debate lifecycle. Code style and formatting are unified, and minor cleanups applied. No breaking API changes; internal extensibility is improved.
Simplifies control flow by continuing to the next provider if unavailable, reducing nesting and making model listing logic clearer.
- Move DI example to `DependencyInjectionExample.cs` and update references. - Add `.editorconfig` to suppress IDE1006 for all-caps acronyms (e.g., LLM). - Enhance `OllamaProvider` with explicit connection modes, static factory methods, and improved retry logic. - Add explicit local/cloud Ollama creation methods to `ProviderFactory`. - Simplify `Dispose` pattern in providers. - Refactor `CouncilMember.Role` property and YandexGPT legacy request serialization. - Use lowercase variable for summarization system prompt. - Remove redundant log storage in `Program.cs` and apply code style improvements. - Update `appsettings.json` to use a cloud-based chairman model. - Simplify `RagProviderFactory` by removing async disposal.
- Replaced CompressionCache LRU with lock-free dict + linked list, batch eviction, and lock for LRU updates - DeduplicationCompressor: switched fallback to Jaccard word overlap, batch embedding deduplication, added WordSet struct - TokenCounter: added LRU memoization for short string estimates - Operator: cached tool catalog, parallel tool calls, static planner prompt, shared JSON options, and refactoring for clarity and performance
- Integrate Microsoft.Extensions.Http.Resilience (Polly v8) for all HTTP-backed providers (Ollama, YandexGPT, MCP) - Add ResilienceOptions config section and DI registration for named pipelines (Delibera.Local, Delibera.Cloud, Delibera.Default) - Introduce IDeliberaResiliencePipelineProvider and AddDeliberaResilience/AddDeliberaResiliencePipeline DI helpers - Refactor providers to use IHttpClientFactory and Polly pipelines; remove hand-rolled retry loops - Add ResilientHttpClientExtensions.SendAsync for pipeline-based retries - Update CouncilOptions, README, CHANGELOG, and bump version to 10.2.2 - Add ResilienceExample demo and unit tests for resilience wiring - Ensure full backward compatibility for legacy and non-DI consumers
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.
Description
This PR bundles the last 5 commits on
develop(coveringv10.2.0→v10.3.0) into a single release candidate formain. It delivers the resilience, caching, DI, and provider-quality work landed ondevelopand consolidates the changelog entries:Microsoft.Extensions.Http.Resilienceintegration,ResilienceOptions,IDeliberaResiliencePipelineProvider, named pipelines (Delibera.Local/Delibera.Cloud/Delibera.Default), DI helpers (AddDeliberaResilience,AddDeliberaResiliencePipeline,AddDeliberaHttpClient), and migration ofOllamaProvider,YandexGptProvider, andMcpClientAdapterto the new DI-aware constructors. Hand-rolled retry loops removed in favour of named pipelines.CompressionCacheeviction, smarterDeduplicationCompressor, allocation-awareTokenCounter, parallel Operator request dispatch viaParallel.ForEachAsyncbounded byMaxDegreeOfParallelism.DependencyInjection/CouncilOptions, rewrittenServiceCollectionExtensions, renamedDIExample→DependencyInjectionExample, expanded Ollama streaming/embedding surface and updatedappsettings.jsonkeys.ProviderFactory, withChatClientLLMProvider/EmbeddingGeneratorProviderhonouring the new contract.DebateExecutionOptionsrecord bundlesILogger+ response language + parallelism; threaded throughIDebateStrategyWithOptionssoStandardDebate/CritiqueDebate/ConsensusDebateopt in without breaking custom strategies.23+ files touched in
Delibera.Core, console examples, and the xUnit test project (9 new resilience tests + 7 new final-verdict tests). Package version bumped10.2.0 → 10.3.0.Full detail is in
CHANGELOG.md(## [10.2.2]).Related Issues
None — batched release PR for
develop→main.Type of Change
(Polly resilience + Operator parallelism are new features; the remaining work is refactor and docs.
ExecutionLogLevelrename in 10.2.0 is source-breaking but already shipped ondevelop.)Checklist
dotnet build --configuration Release)README.md,QuickStart.md)Additional Notes
Commits included (
developsince2add198):Suggested merge strategy:
merge commit(norebase/squash) so the per-topic history remains intact for future bisects.Suggested PR title:
Suggested reviewers / labels:
area: resilience,area: di,area: providers,release.Pre-merge verification (please run locally):