πΊοΈ Delibera β Multi-Version Roadmap
Current stable:
10.5.1
Active branch:feat/v10.5.1
Document date: October 2026
Versioning:NET_MAJOR.FEATURE.PATCHβ first digit matches the target .NET runtime (10= .NET 10,11= .NET 11). Breaking changes are allowed at .NET-major boundaries only.
Note on 10.5.1. This release carried six features in a PATCH slot, which does not match the convention above β FEATURE work normally lands in a FEATURE version. It was chosen deliberately, and the no-breaking-change rule is what keeps the SemVer contract consumers depend on intact. The features originally planned for 10.4.0 and 10.5.0 therefore all shipped in 10.5.1, which is why both of those rows below read as released.
π Version Overview#
| Version | Theme | Key Deliverables | Status |
|---|---|---|---|
| 10.2.6 | Feature Bundle | F-01 Streaming, F-02 Voting, F-03 Persistence, F-04 Memory, F-05 Structured Output, F-07 Templates, F-08 OpenTelemetry, F-09 Adaptive Strategy, F-10 Quick Wins | β Released |
| 10.2.7 | Multi-Modal | F-06 Vision + Document Attachments | β Released |
| 10.3.0 | Platform Release | Breaking-change cleanup, Distributed Debates, Result Caching, Delibera.Server, Delibera.Redis | β Released |
| 10.4.0 | Measured Round | SSE defect fixes, context compression wired up, correctness pass β 9 defects fixed | β Released |
| 10.5.0 | Scale & Reliability | Measured round published; W2-15 index duplication measured but not yet fixed | β Released |
| 10.5.1 | Close the Loop | Tool use (#14), debate diff (#15), CLI (#16), cost gates (#18), gRPC (#11), NuGet GA (#13), W2-15 fixed, W2-16 documented | β Released |
| 10.6.0 | Harden the Edges | Vector pruning (filter-delete on IVectorStore), bounded round channels (W4-10), W2-13/W2-14 product decisions |
π· Planned |
| 11.0.0 | .NET 11 Migration | Target .NET 11, C# 14 idioms, performance tuning for new runtime | πΆ Future (.NET 11 GA) |
β v10.2.6 β Feature Bundle#
Theme: Core debate engine β streaming, voting, memory, observability, and DX
Released 2026-07-06. Nine features in one coordinated release (F-06 deferred to v10.2.7).
F-01 Β· Async Streaming Council#
IAsyncEnumerable<DebateRound> StreamDebateAsync(CancellationToken) on ICouncilExecutor.DebateRound gains Total, Duration, IsFinal. ExecuteAsync() backward-compatible.
Example: StreamingCouncilExample.cs
F-02 Β· Pluggable Vote / Consensus Engine#
IVotingStrategy + MajorityVotingStrategy, BordaCountStrategy, WeightedVotingStrategy.Chairman.CreateVoting(IVotingStrategy) factory. DebateResult.VotingTally.
Example: VotingExample.cs
F-03 Β· Debate Persistence & Resume#
IDebateStore, FileDebateStore (atomic JSON write-then-rename), InMemoryDebateStore.CouncilBuilder.WithPersistence(IDebateStore) + .ResumeFrom(debateId). DebateResult.DebateId.
Example: PersistenceExample.cs
F-04 Β· Agent Memory & Long-Term Context#
IAgentMemory β StoreAsync / RecallAsync / DeleteAsync.
Built-in: InMemoryAgentMemory, QdrantAgentMemory, PgVectorAgentMemory.CouncilBuilder.WithAgentMemory(IAgentMemory).
Example: AgentMemoryExample.cs
F-05 Β· Structured Output / JSON Schema Enforcement#
ICouncilExecutor.ExecuteTypedAsync<T>() + CouncilBuilder.WithStructuredOutput<T>().JsonSchemaOutputSerializer with automatic retry on deserialization failure.
Example: StructuredOutputExample.cs
F-07 Β· Debate Templates & Presets Library#
DebateTemplate static class β ArchitectureReview, RiskAssessment, CodeReview, ProductDecision, SecurityAudit, DataArchitecture + Custom() escape hatch.
Example: TemplatesExample.cs
F-08 Β· OpenTelemetry Observability#
DeliberaActivitySource + DeliberaMeter + DeliberaTelemetry facade.
Spans: CouncilExecute, CouncilRound, MemberRespond, RagQuery, Compression, OperatorExecute, ChairmanSynthesize, ChairmanOpen, PersistenceSaveCheckpoint, PersistenceLoadCheckpoint.
Metrics: DebateDuration, RoundDuration, TokensTotal, DebatesCompleted, CompressionRatio.CouncilBuilder.WithTelemetry(TelemetryOptions).
Example: TelemetryExample.cs
F-09 Β· Dynamic Strategy Switching#
IStrategySelector with SelectNextAsync(DebateProgress, CancellationToken).
Built-in: AdaptiveStrategySelector (stalemate β escalate). DebateRound.StrategyUsed audit trail.
Example: AdaptiveStrategyExample.cs
F-10 Β· Quick Wins Bundle#
| Feature | Description |
|---|---|
| F-10a HTML Export | DebateResult.ToHtml() / SaveToHtmlAsync() β Dark/Light themes, collapsible rounds, embedded CSS |
F-10b WithTimeout(TimeSpan) |
CouncilBuilder.WithTimeout(TimeSpan) β internal CancellationTokenSource linked to caller's token |
| F-10c Persona Presets | Persona static class β Expert, DevilsAdvocate, CautiousOptimist, DataDrivenAnalyst, RiskManager, Pragmatist |
| F-10d Benchmark Mode | CouncilBenchmark β AddConfiguration, WithQuestion, RunAsync() β BenchmarkReport.SaveComparisonAsync() |
| β | CouncilBuilder.WithParticipantLimit(int) β guard misconfiguration |
β v10.2.7 β Multi-Modal#
Theme: Bring images, diagrams, and documents into the debate
Released 2026-07-07.
F-06 Β· Multi-Modal Council (Vision + Documents)#
MemberCapabilities flags enum (Text, Vision). FileAttachment + BinaryAttachment.IFileContentReader + FileContentReaderRegistry with built-in PlainTextFileReader, ImageFileReader, FallbackFileReader.CouncilBuilder.WithAttachment() + WithFileReader(). Vision auto-detection via ModelContextWindowRegistry.SupportsVision().
Example: MultiModalExample.cs
β v10.3.0 β Platform Release#
Theme: Delibera as a platform, not just a library
Released 2026-07-17.
P-01 Β· Breaking-Change Cleanup#
- Rename
ModeratorβChairmanacross all public APIs - Remove
IDebateStrategyWithOptionsβ unifiedIDebateStrategy.ExecuteAsyncsignatures ModelCapabilitiesis now non-nullable; useModelCapabilities.IsUnknownsentinel- Rename
RagProviderFactoryβVectorStoreFactory - Fix
WeightedVotingStrategy.ResolveWeightedge case - Remove
DebateStatus.PausedandDebateOrchestrationStatus.Pending - Fix
DebateRecord.Labeldefault value - Rewrite
SseDebateStreamWriterto useIDebateOrchestrator.StreamAsync() - Remove
DebateRecord._channel,RoundWriter,RoundReader - Rewrite
DebateOrchestrationServiceto use event-driven streaming - Fix
FakeLLMProvider+TemplateRegistryTestsfor new API surface
S-01 Β· Distributed Debates#
IDebateOrchestratorinterface β assign rounds to workers, collect resultsLocalDebateOrchestratorβ single-process orchestrator for local executionRedisDebateOrchestratorβ Redis pub/sub for round dispatch + result collectionDebateHandleβ opaque handle for tracking debate executionDebateOrchestrationStatusβ status enum for orchestration lifecycleDebateRoundEventβ event model for round completion notificationsDebateWorkerServiceβ background worker that picks up and processes debate roundsRedisOrchestratorOptionsβ configuration for Redis-based orchestrationRedisOrchestratorExtensionsβ DI registration helpers for Redis orchestrationICouncilBuilder.WithOrchestrator(IDebateOrchestrator)fluent API
S-03 Β· Result Caching#
IDebateCacheinterface βGetAsync(CacheKey)/SetAsync(CacheKey, DebateResult)CacheBehaviorenum:UseCache,BypassCache,RefreshCacheDebateCacheKeyGeneratorβ deterministic key from question + config + model versionsInMemoryDebateCacheβ in-process LRU cacheFileDebateCacheβ file-system cache with atomic writesRedisDebateCacheβ Redis-backed distributed cache- Cache metadata on
DebateResult(CacheHit,CacheKey,CachedAt) ICouncilBuilder.WithCacheBehavior(CacheBehavior)/WithCache(IDebateCache, CacheBehavior)- DI extension methods for cache registration
- OpenTelemetry counter:
delibera.cache.hits/delibera.cache.misses
P-02 Β· Delibera.Server β ASP.NET Core Minimal API#
New project: Delibera.Server
- ASP.NET Core 10 Minimal API hosting Delibera over HTTP
- REST API:
POST /api/debates(start),GET /api/debates/{id}(status),DELETE /api/debates/{id}(cancel) - SSE endpoint:
GET /api/debates/{id}/streamβ powered byIDebateOrchestrator.StreamAsync() - Background queue via
IHostedService+System.Threading.Channels
builder.Services.AddDeliberaServer(options =>
{
options.MaxConcurrentDebates = 5;
options.RequireAuthentication = true;
});
app.MapDeliberaEndpoints();P-04 Β· NuGet GA Milestone#
- Stable
10.3.0on NuGet (exit preview) Delibera.Coreβ core library (no ASP.NET dep)Delibera.Serverβ ASP.NET Core Minimal APIDelibera.Redisβ Redis orchestration + cachingDelibera.Templatesβ presets library (optional)- Symbol packages + source link for all packages
P-05 Β· Performance & Integrity#
- Memory leak fixes: eviction timers on
LocalDebateOrchestrator,DebateOrchestrationService,RedisDebateOrchestrator;using var ProviderFactoryin all server templates IDisposableonCompressionCacheandFileDebateStore(disposeReaderWriterLockSlim/SemaphoreSlim)- Thread safety:
volatile intbacking forDebateRecord.StatusandDebateEntry.Status;ConcurrentDictionary+GetOrAddinProviderFactory.CachingFactory ConfigureAwait(false)on allawaitinDelibera.CoreandDelibera.Redis(~50+ sites)ValueTask<T>onIDebateCache,IDebateStore,IDebateOrchestrator.GetStatusAsyncβ avoidsTaskallocation for sync pathsFrozenDictionary/FrozenSetinModelContextWindowRegistryfor O(1) lookupsSerializeToUtf8BytesinSseDebateStreamWriterandDebateCacheKeyGenerator- Single-row Levenshtein with
Span<int>+stackalloc ReaderWriterLockSliminTokenCounter;readonly record struct RankedOptionStringBuildercapacity hints inDebateResult.ToMarkdown()
β v10.4.0 / v10.5.0 β Measured Rounds#
Theme: run it for real, find what is actually broken
These two releases came from the first end-to-end measurement of Delibera against live cloud models rather than from a feature plan. Nine defects were found and fixed; the release notes and WhatsNew-v10.5.0.md carry the details. The item that carried forward is W2-15, fixed in 10.5.1.
β v10.5.1 β Close the Loop#
Theme: the six issues that were open, plus the bug the measurements found
Released 2026-10-07. Every GitHub issue that was open at the start of this cycle is now closed, and the delivery includes no breaking changes β see WhatsNew-v10.5.1.md for the full account.
| Issue | Delivered | Notes |
|---|---|---|
| #14 I-01 Tool use | β | IToolProvider, AIFunction, ToolCallLog on DebateRound and DebateResult. Native function calling where the provider wraps a real IChatClient; [[TOOL: β¦]] marker otherwise, because the string-only AsChatClient adapter drops ChatOptions.Tools entirely. |
| #15 I-02 Debate diff | β | DebateResultExtensions.Diff, round matching by number and member by name, word-level LCS, Markdown + HTML export. TextSimilarity is public with an explicit length bound. |
| #16 I-03 CLI | β | delibera run | resume | compare | benchmark on System.CommandLine. |
| #18 S-02 Cost gates | β | ICostGate, IRateLimiter, IModelPricingRegistry, CostEstimate. A denial returns a degraded result rather than throwing. |
| #13 P-04 NuGet GA | β | Matrix is now Delibera.Core, Delibera.Server, Delibera.Redis. |
| #11 P-03 gRPC | β | Delibera.Grpc + Delibera.Grpc.Client, layered on top of IDebateOrchestrator. Not yet in the publish matrix. |
| W2-15 | β | Idempotent indexing via deterministic point ids. Migration note in the CHANGELOG. |
| W2-16 | π | Documented as a roster-selection hazard. No framework change. |
Two findings from the tracker stayed open on purpose, because both need either a breaking change or a
product decision: W2-13 (WithCache on ICouncilBuilder) and W2-14 (cache-hit duration
semantics).
π· v10.6.0 β Harden the Edges#
Theme: the things that were left open on purpose
The items 10.5.1 declined to take, each because it needs a decision rather than a patch.
- Vector pruning β a document that shrinks leaves its tail chunks behind. Fixing it means a
filter-delete on
IVectorStore, which has no default interface implementations today, so it is a breaking change. Options: a DIM onIVectorStore, or accept the break at a feature-major boundary. - Bounded round channels (W4-10) β the SSE writer is fixed, but
Channel.CreateUnboundedremains inLocalDebateOrchestratorandRedisDebateOrchestrator. Bounding them requires defining what a full channel does: block the producer, drop a round, or fail the debate. - W2-13 β
WithCache(CacheBehavior, IDebateCache)onICouncilBuilder. Same trade-off as above. - W2-14 β decide whether
TotalDurationon a cache hit means provenance or caller wait time, then document it. Measured today: 0.0 s actual against 189.0 s reported. - Publish the gRPC packages β
Delibera.GrpcandDelibera.Grpc.Clientcarry full packaging metadata and are one workflow line away from the GA matrix.
πΆ v11.0.0 β .NET 11 Migration#
Theme: Target .NET 11 runtime β this version aligns with .NET 11 GA
This is a runtime-major bump. It will ship when .NET 11 is generally available.
- Retarget all projects to
net11.0 - Adopt C# 14 language features (where beneficial β
fieldkeyword, extension types, etc.) - Benchmark and tune for .NET 11 runtime improvements (AOT, JIT changes)
- Remove polyfills/workarounds added for .NET 10 compatibility
- Update all NuGet dependencies to .NET 11-compatible versions
- Full CI/CD pipeline update
Prerequisite: .NET 11 GA release
π Architectural Principles (all versions)#
Backward Compatibility Policy#
| Version range | Policy |
|---|---|
10.x.y |
No breaking changes. New params have = default. Obsolete via [Obsolete] with migration note. Breaking changes only at feature-major boundaries (10.3.0, 10.4.0, etc.) with documented migration. |
11.0.0 |
Runtime-major bump. Ships with .NET 11 GA. Breaking changes allowed for runtime alignment. |
Definition of Done (every feature)#
- Public API has XML doc comments
-
CancellationTokenpropagated through all new async paths - Unit tests β₯ 80% coverage of new code paths
- ConsoleApp demo with
--flag -
README.md+README-RU.mdupdated -
CHANGELOG.mdentry following Keep a Changelog format - No breaking changes to
CouncilBuilderfluent API (within feature-minor versions)
Branching Convention#
develop β integration branch
feature/p-02-server β one branch per feature
feature/i-01-tool-use
release/10.3.0 β release stabilization branchπ¦ Release Schedule (indicative)#
| Version | Estimated | Status |
|---|---|---|
| 10.2.6 | 2026-07-06 | β Released |
| 10.2.7 | 2026-07-07 | β Released |
| 10.3.0 | 2026-07-17 | β Released |
| 10.4.0 | 2026-10-05 | β Released |
| 10.5.0 | 2026-10-06 | β Released |
| 10.5.1 | 2026-10-07 | β Released |
| 10.6.0 | Q4 2026 | π· Planned |
| 11.0.0 | .NET 11 GA | πΆ Future |
Delibera Roadmap Β· October 2026 Β· techbuzzz/Delibera
Source: docs/ROADMAP.md on GitHub β edit it there and this page updates on the next deploy.
