Skip to content

CircleAI 3.2.0 — HER / Jarvis lift, companion substrate

Choose a tag to compare

@bhengubv bhengubv released this 22 Jun 14:10
· 730 commits to master since this release

Summary

Seven new packages port working backends from CircleUp + Concierge into the CircleAI substrate so any consumer can light up a HER- / Jarvis-class companion experience without re-deriving the protocol scaffolding.

New packages (all 3.2.0)

  • CircleAI.Companion.Proactive — generic proactive scheduler (5-field cron + IProactiveTaskSource / IProactiveTaskRunner / IProactiveScheduler + IHostedService). 20 tests.
  • CircleAI.Hosting.CloudFallback — OpenAI / Anthropic / Gemini IChatGenerator with SSE streaming + fail-soft + composite CloudFallbackChain. 11 tests.
  • CircleAI.Speech.Cloud — OpenAI Whisper ISpeechRecognizer (WAV-envelope-wraps PCM input) + OpenAI TTS ISpeechSynthesizer (response_format=pcm honours AudioPcm16Mono contract) + generic regex KeywordVoiceIntentRouter. 14 tests.
  • CircleAI.Vision.Cloud — new IImageGenerator contract (the existing CircleAI.Vision is detection-only) + DALL-E + Stability AI + ImageGeneratorFallbackChain. 13 tests.
  • CircleAI.Plugins — per-plugin collectible AssemblyLoadContext, JSON PluginRegistry, PluginMarketplace, hot-reload PluginLifecycleService, declarative permission gating via PermissionedPluginContext. 18 tests.
  • CircleAI.Hosting.Mcp — MCP (Model Context Protocol) JSON-RPC 2.0 endpoint. DI-driven IMcpTool + IMcpResourceProvider. Single + batch requests. Pure-DI DispatchAsync makes it testable without ASP.NET Core. 15 tests.
  • CircleAI.Hosting.Multiplayer — SignalR MultiplayerHub — per-document rooms, last-writer-wins by rev, live cursor positions, presence. Identity via IMultiplayerPeerIdentity (default: GuestPeerIdentity). 9 tests.

Changed

  • Version-aligned every 3.x package from 3.1.0 → 3.2.0 (50 packages total).
  • Fixed a latent DI bug in CircleAI.Hosting.CloudFallback.ServiceCollectionExtensions: the options factory was being registered as Func<IServiceProvider, T> instead of T, so Add*ChatGenerator calls would have failed at resolution time. Same pattern applied to Speech.Cloud and Vision.Cloud.

Tests

100 new Circle32* tests pass on both net9.0 and net10.0.

Compatibility

No breaking changes. New surfaces are additive — every new package ships contracts + null + real backends, fail-soft when credentials are absent.