| atmosphere-4.0.50 | ### Removed - Pruned dead/unwired internal classes found during a release-readiness audit โ none was documented, advertised, or reachable from a user code path: `McpWebSocketHandler` (superseded by `McpHandler`'s direct WebSocket-frame handling), `AgUiSession` (superseded by `ResourceAgUiStreamingSession`), `AiCoalescingBroadcasterCache` (a delegate-only `BroadcasterCache` that the no-arg reflective cache-wiring path cannot instantiate), `AdkArtifactBridge`, `AdkCompactionBridge`, | High | 6/5/2026 |
| atmosphere-4.0.49 | ### Added - `atmosphere-crewai` โ `AgentRuntime` for the [CrewAI](https://www.crewai.com/) multi-agent framework via an out-of-process Python sidecar. First non-Java runtime adapter in the project; the boundary is `HTTP + SSE` for the request stream plus a loopback `ToolCallbackServer` for JavaโPython tool RPC. Pins 9 capabilities (`TEXT_STREAMING`, `TOKEN_USAGE`, `AGENT_ORCHESTRATION`, `CANCELLATION`, `TOOL_CALLING`, `SYSTEM_PROMPT`, `STRUCTURED_OUTPUT`, `TOOL_APPROVAL`, `PER_RE | High | 5/28/2026 |
| atmosphere-4.0.48 | ### Added - CLI runtime overlays for `anthropic` and `cohere` (`cli/runtime-overlays.json`). Both runtimes had been shipped in `modules/` and documented in the top-level README โ `atmosphere-anthropic` since 2026-05-19 (`1195845304`), `atmosphere-cohere` since 2026-05-23 (`1dfebcb5ff`) โ but neither had a CLI scaffolding overlay. The command `atmosphere new my-app --template ai-chat --runtime cohere` (or `--runtime anthropic`) now works. Same change adds both artifacts to `bom/po | High | 5/25/2026 |
| atmosphere-4.0.47 | ### Added - Native Anthropic Messages API runtime in a new `atmosphere-anthropic` module (`1195845304`). `AnthropicMessagesClient` posts directly to `https://api.anthropic.com/v1/messages`, parses the SSE stream (`message_start`, `content_block_start`, `content_block_delta` with `text_delta` and `input_json_delta`, `message_delta` carrying `usage.input_tokens`/`output_tokens`, `message_stop`), and drives the `tool_use` โ `tool_result` loop through the shared `ToolExecutionHelper. | High | 5/21/2026 |
| atmosphere-4.0.46 | ### Added - Spring AI Alibaba: unconditional `TOOL_CALLING` / `TOOL_APPROVAL` / `TOKEN_USAGE` (`534317f03d`) โ `UsageCapturingChatModel` wraps the configured Spring AI `ChatModel` bean at auto-configuration time; per-thread accumulator captures `ChatResponseMetadata.getUsage()` across every step of the ReAct graph and emits a single `session.usage(TokenUsage)` after each dispatch. Tool calling is no longer gated on `staticChatModel != null` โ `SpringAiAlibabaToolBridge` is wired | High | 5/16/2026 |
| atmosphere-4.0.45 | ### Added - capability-matrix snapshot + drift gate (`d22d18a7cd`) โ new `.harness/capabilities.snapshot.json` is the canonical aggregate of the `AiCapability` enum (20 capabilities) and each runtime's pinned `expectedCapabilities()` (9 runtimes). Regenerated by `scripts/regen-capability-snapshot.sh` and validated by both `scripts/validate-capability-claims.sh` (wired into `scripts/pre-push-validate.sh` Tier 1) and the new `CapabilitySnapshotTest` in `modules/ai-test`. The per-runtime contract | High | 5/13/2026 |
| atmosphere-4.0.44 | ### Added - predictable-AI primitives โ three framework-level capabilities that close gaps Bonรฉr's "Herding LLMs" deck flagged for distributed-system reliability, all declared on every framework runtime so the matrix closes without `@Beta` shims: - `BUDGET_ENFORCEMENT` (`a4fae39464`) โ new `AiBudget` value record (max input / output / total tokens, max steps, max wall clock) installed via `pipeline.setDefaultBudget(...)` or per-request `ai.budget` metadata. `BudgetCapturingSession` decorator | High | 5/8/2026 |
| atmosphere-4.0.42 | ### Added - atmosphere-verifier โ plan-and-verify (Meijer "Guardians of the Agents") New module modules/verifier/ + sample samples/spring-boot-guarded-email-agent/ โ sealed Workflow AST, ServiceLoader-discovered PlanVerifier chain (Allowlist/WellFormed/Capability/Taint/Automaton/SmtChecker SPI), @Sink + @RequiresCapability scanners, PlanAndVerify orchestrator, WorkflowExecutor with partial-env on failure, verify CLI; sample REST + UI exercises the inbox-exfiltration scenario end-to-end (refuse | High | 5/1/2026 |
| atmosphere-4.0.41 | ### Changed โ A2A v1.0.0 alignment (wire-breaking) - **`atmosphere-a2a` retracked to A2A v1.0.0** (`a2aproject/A2A@v1.0.0`, released 2026-03-12). The pre-1.0 wire surface was the slash-style method names (`message/send`, `tasks/get`, โฆ) and a polymorphic `Part` envelope; both are gone in v1.0.0. - **JSON-RPC method names switched to PascalCase** per spec ยง9.4 โ `SendMessage`, `SendStreamingMessage`, `GetTask`, `ListTasks`, `CancelTask`, `SubscribeToTask`, the four `{Create,Get,List | High | 4/29/2026 |
| atmosphere-4.0.40 | ## โจ Added - **policy plane, multi-agent governance, sample retrofit** - **render tokens / elapsed / tok/s footer on stream complete** - **approve/deny widget for @RequiresApproval tools** - **route demo mode through the pipeline via DemoAgentRuntime** ## ๐ Fixed - isolate coordinator types from CommitmentRecordView AOT walk - native-image AOT + CLI E2E SNAPSHOT compat - survive recycled async request during streaming disconnect - ship classic chat SPA at / (was hanging silently) - emit tool- | High | 4/24/2026 |
| atmosphere-4.0.39 | ## โจ Added - **serve /favicon.ico from both starters to kill the default 404 AtmosphereFaviconAutoConfiguration returns the Atmosphere logo PNG on /favicon.ico and /favicon.png for every app using the starter; opt out with atmosphere.favicon.enabled=false.** - **reattach e2e โ harness sample + direct-writer replay + CI job RunReattachSupport now writes the joined buffer straight to response.getWriter() (U+001E between events); broadcaster routing fed the payload back into the @Prompt dispatcher | High | 4/20/2026 |
| atmosphere-4.0.38 | ## โจ Added - **reinstate PromptCacheDemoChat now that 4.0.37 is on Central** ## ๐ Fixed - port CoordinationJournal bridge auto-config - LocalAgentTransport resolves agents lazily to avoid startup race Candidate paths walked on every call; checkpoint-agent sample pulls atmosphere-a2a so @Agent handlers land at a resolvable A2A path. - stop processor-owned journals on framework shutdown - propagate coordinator name as JournalingAgentFleet.coordinationId Canonical id replaces UUID so REST filter | High | 4/15/2026 |
| atmosphere-4.0.37 | ## โจ Added - **4.0.36 e2e coverage sweep + framework fixes from audit Ten gap specs, two samples, five framework fixes (checkpoint/cache/binary/capability/HITL).** - **rewrite cloned sample pom.xml for standalone compile Drops relativePath so atmosphere-project parent resolves from Maven Central, pins SNAPSHOT to release, skips repo-local checkstyle/pmd.** - **runtime capability honesty pass โ 7 runtimes declare honest capabilities** - **clone samples for 'atmosphere new' instead of mustache te | High | 4/14/2026 |
| atmosphere-4.0.36 | ## โจ Added - **InMemoryResponseCache.purgeExpired for eager TTL reclamation Documents the LRU-vs-TTL interaction (expired entries occupy slots until touched) and adds a walk-once purgeExpired() so callers who schedule a background sweeper can reclaim dead slots eagerly. Default lazy-on-get path stays zero-overhead.** - **Tier-1 Ollama real-LLM workflow with structural assertions New e2e-real-llm.yml workflow runs against a local Ollama service container with qwen2.5:0.5b. Covers basic chat thro | Medium | 4/13/2026 |
| atmosphere-4.0.35 | ## โจ Added - **build SDKMAN-compatible archive and attach to GitHub Release** ## ๐ Fixed - plexus-utils 4.0.3 override, CodeQL XSS sanitizer hints - skip NPM publish when atmosphere.js version already published ## ๐ง Changed - vendor submission kit โ publish script and onboarding guide - bump version to 4.0.34 - prepare for next development iteration 4.0.35-SNAPSHOT **Full Changelog**: https://github.com/Atmosphere/atmosphere/compare/atmosphere-4.0.34...atmosphere-4.0.35 | High | 4/10/2026 |
| atmosphere-4.0.34 | ## โจ Added - **add validation gates for unchecked returns + no-op tests Architectural validation now fails on unchecked offer() and expect(true).toBe(true). Fixed 4 offer() calls (use add() or check return). Replaced 4 no-op specs with test.skip().** - **bundle atmosphere-skills as classpath JAR for CI reliability** - **migrate all skills to atmosphere-skills registry, remove local prompts** - **SkillFileLoader with GitHub fallback + SHA-256 integrity, AgentRuntime.generate() PromptLoader.loadS | Medium | 4/10/2026 |
| atmosphere-4.0.33 | ## ๐ Fixed - rename release.yml back to release-4x.yml (NPM OIDC path-sensitive) ## ๐ง Changed - bump version to 4.0.32 - prepare for next development iteration 4.0.33-SNAPSHOT **Full Changelog**: https://github.com/Atmosphere/atmosphere/compare/atmosphere-4.0.32...atmosphere-4.0.33 | High | 4/8/2026 |
| atmosphere-4.0.32 | ## โจ Added - **add JettyHttp3AsyncSupport โ native HTTP/3 via Jetty 12 QUIC connector** - **support container-managed executor injection via atmosphereExecutor bean** - **full Quarkus auto-configuration for admin control plane JAX-RS AdminResource with all REST endpoints, CDI AdminProducer for AtmosphereAdmin bean, admin dashboard HTML, and build step for reflection and bean registration** - **port admin auto-config to SB4 starter (default) Admin dashboard, REST API, metrics, and event stream n | Medium | 4/8/2026 |
| atmosphere-4.0.31 | ## โจ Added - **migrate to JReleaser for Maven Central deploys** ## ๐ง Changed - add 19 Playwright E2E specs from gap analysis - bump version to 4.0.30 - prepare next development version 5.0.22 - prepare for next development iteration 4.0.31-SNAPSHOT **Full Changelog**: https://github.com/Atmosphere/atmosphere/compare/atmosphere-4.0.30...atmosphere-4.0.31 | Medium | 4/4/2026 |
| atmosphere-4.0.30 | ## ๐ Fixed - skip javadoc for Quarkus extension (broken module descriptors) - replace flaky setTimeout waits with vi.waitFor in WebTransport tests - add metadata and flatten plugin to Quarkus extension POMs - remaining concurrency audit items (M2,M7,M8,M12,L1,L3,L10) - thread safety audit across all modules ## ๐ง Changed - modernize Java 21 patterns and add unit tests - bump version to 4.0.29 - prepare next development version 5.0.21 - prepare for next development iteration 4.0.30-SNAPSHOT * | Medium | 4/4/2026 |
| atmosphere-4.0.29 | ## โจ Added - **add `atmosphere compose` to generate multi-agent projects from skill files Interactive wizard + JBang generator produces multi-module Maven projects with @Coordinator, @Fleet, A2A agents, docker-compose. 23 unit tests + 3 E2E tests (a2a-docker, single-jar, local).** - **add E2E tests for agent and multiagent over WebTransport Enable WebTransport on ai-tools and multi-agent samples, fix info controller** - **migrate a2a-agent and grpc-chat to shared atmosphere.js/chat UI Replace c | Medium | 4/2/2026 |
| atmosphere-4.0.28 | ## โจ Added - **serve agent cards at /.well-known/agent.json for discovery** - **markdown rendering in tool cards, async stream fix** - **add Connect-Web frontend and browser-compatible RPCs** - **migrate from Jackson 2.x to Jackson 3.1.0** - **render structured output JSON as formatted fields, handle entity-complete events** - **enforce channel routing validation and export guardrails metadata** - **responseAs, journalFormat, PostPromptHook; comment ADK for OpenAI-compat use** - **add fake LLM | Medium | 3/28/2026 |
| atmosphere-4.0.27 | ## โจ Added - **annotation processing priority for processor ordering @AtmosphereAnnotation(priority=100) defers processing until all default-priority (0) processors complete** - **add tool-start/tool-result rendering for agent collaboration cards Built-in Vue console now shows each agent's work (Web Search, Strategy, Finance, Writer) before CEO synthesis** - **add multi-agent coordination module @Coordinator/@Fleet/@AgentRef annotations, AgentFleet injection, local+A2A transport, 40 tests, CeoC | Medium | 3/26/2026 |
| atmosphere-4.0.26 | ## โจ Added - **trusted skill sources, remote import tests for 3 repos** - **console auto-detects @Agent endpoint, fix CLI version template** - **auto-discover skill files from META-INF/skills/ on classpath** - **add import plugin system (--target) for extensible skill scaffolding** - **atmosphere import and skills commands** ## ๐ Fixed - update AdkEventAdapter test for multi-emit behavior - ADK turnComplete truncation, CEO port detection, dentist langchain4j deps - add missing atmosphere-mcp | Medium | 3/25/2026 |
| atmosphere-4.0.25 | ## โจ Added - **unify annotations between @Agent and @ManagedService** ## ๐ง Changed - show protocol annotations directly on @ManagedService - unit tests for annotation unification (46 tests) - multi-agent hero, unified protocol matrix, samples table, MCP migration example - use LLM_API_KEY, remove tagline date - use LLM_API_KEY, remove Since 2008 section - rewrite README with multi-agent hero and unified transport/protocol matrix - bump version to 4.0.24 - prepare next development version 5.0. | Medium | 3/25/2026 |
| atmosphere-4.0.24 | ## โจ Added - **remove @McpServer/@AgUiEndpoint, upgrade LangChain4j to 1.12.2** - **unified @Agent, rename @A2aSkill to @AgentSkill, multi-agent sample** - **unified @Agent with headless mode, remove @A2aServer and fake multi-agent sample** - **add multi-agent startup team with 5 AI agents collaborating via WebSocket** - **unified AI Console across all samples with logo, subtitle, and dark theme** - **add @Agent + @Command module, samples, and streaming fixes** - **add Atmosphere logo to AI Con | Medium | 3/25/2026 |
| atmosphere-4.0.23 | ## โจ Added - **add ChannelFilter chain with MessageSplitting and AuditLogging** - **auto-bridge channels to @AiEndpoint when atmosphere-ai is present** - **wire Discord auto-config + 28 signature/parsing tests** - **add Discord Gateway adapter (ported from Canot)** - **add omnichannel AI chat sample (Web + Telegram + Slack + Discord + WhatsApp)** - **add Discord, WhatsApp, and Messenger adapters** - **add Telegram + Slack messaging channels (ported from Canot)** ## ๐ Fixed - handle Slack URL | Low | 3/22/2026 |
| atmosphere-4.0.22 | ## โจ Added - **add Discord Gateway adapter (ported from Canot)** ## ๐ Fixed - harden modules for virtual thread safety and production readiness - use ReentrantLock instead of synchronized to avoid virtual thread pinning - harden AI and MCP modules for production readiness - prevent path traversal in console resource filter - prevent BufferUnderflowException in JSR356Endpoint binary message handler ## ๐ง Changed - remove channels module accidentally committed to main - add Embacle to built-in | Low | 3/22/2026 |
| atmosphere-4.0.21 | ## โจ Added - **zero-code AI auto-config, built-in chat console, and atmosphere-bom** ## ๐ Fixed - add spring-boot-ai-console to release exclusions, use BOM in root README - cast int to long before bit-shifting in ClassFileBuffer.readLong() ## ๐ง Changed - update AI provider comment to mention Embacle CLI support - move AI adapters line to intro paragraph, trim core abstractions - restructure README quick start with zero-code AI, @AiEndpoint, and @ManagedService - replace ManagedService quick | Low | 3/20/2026 |
| atmosphere-4.0.20 | ## โจ Added - **add A2A, AG-UI protocol modules and atmosphere-protocol-common** - **prepare create-atmosphere-app for npm publish** ## ๐ Fixed - wait for HTTP readiness after port open in E2E sample-server - pass realistic maxMessages to SummarizingStrategy in E2E test ## ๐ง Changed - exclude new samples from release deploy (a2a-agent, agui-chat, rag-chat) - add A2A and AG-UI to main README modules table and agent protocols section - add CLI install tests for curl, npx, and brew on macOS + L | Low | 3/19/2026 |
| atmosphere-4.0.19 | ## โจ Added - **add tool-activity panel to adk-tools and langchain4j-tools** - **add Playwright tests for all 17 samples** - **add Playwright e2e tests to CLI build matrix** - **build-from-source distribution, replace pre-built JAR downloads** - **add AI testing framework with AiTestClient, AiResponse, and fluent assertions** - **auto-emit tool events from ToolRegistry, update generator templates** - **demonstrate AiEvent tool events, capability validation, and event streaming** - **add memory s | Low | 3/18/2026 |
| atmosphere-4.0.14 | ## โจ Added - **add auth, offline queue, history cache, typing indicators, and optimistic updates** - **scaffold complete runnable projects with handler, encoder, decoder, and chat UI** - **add interactive sample installer with fzf/numbered-menu picker** - **add Atmosphere CLI, npx launcher, Homebrew formula, and release workflow** - **add shared frontend and Playwright E2E tests for RAG chat sample** - **add ServiceLoader discovery for MicrometerAiMetrics and top-level tracing** - **expand Play | Low | 3/14/2026 |
| atmosphere-4.0.13 | ## ๐ Fixed - stash unstaged changes before rebase in release workflow - use recursive docs/ path in release commit step - adapt GrpcProcessor to Action record API - sync version constant with package.json and eliminate hardcoded version - fix contract violations in Response, Request, and diagnostics ## ๐ง Changed - fix doc version drift and automate version updates in release pipeline - extract shared hook lifecycle and expose manual controls - extract NoOpsRequest and stream adapters from At | Low | 3/12/2026 |
| atmosphere-4.0.11 | ### Fixed - **WebSocket XSS sanitization bypass.** Disabled HTML sanitization for WebSocket transport โ HTML-encoding JSON in WebSocket frames broke the AI streaming wire protocol. - **XSS and insecure cookie hardening.** Sanitize HTML output in write methods and set the `Secure` flag on cookies over HTTPS. ### Changed - **Token โ Streaming Text rename.** All AI module APIs, javadoc, and the atmosphere.js client now use "streaming text" instead of "token" to describe LLM output chu | Low | 3/11/2026 |
| atmosphere-4.0.10 | React Native support, per-endpoint model routing, and architectural validation. ## โจ Added - **React Native / Expo support** in atmosphere.js โ RN hooks, EventSource polyfill, NetInfo injection, and a complete Expo classroom sample app with markdown rendering - **Per-endpoint model override** โ `@AiEndpoint(model = "...")` allows different endpoints to use different LLM models without changing global config - **Auto-registered broadcast filters** โ new `filters()` attribute on `@AiEndpoint` ena | Low | 3/5/2026 |
| atmosphere-4.0.9 | Framework-agnostic AI tool calling and conversation cache replay. ## โจ Added - **`@AiTool` annotation** โ framework-agnostic tool calling pipeline that works across Spring AI, LangChain4j, and standalone deployments. Includes sample, tests, and documentation. - **Generator `--tools` flag** โ scaffolds `@AiTool` methods for ai-chat handler variants - **AI cache replay coalescing** โ reconnecting clients receive coalesced cache replay to avoid duplicate token delivery - **`TokenBudgetManager`** โ | Low | 3/4/2026 |
| atmosphere-4.0.8 | Project generator, `fetch` API migration, and comprehensive E2E test suite. ## โจ Added - **Project generator** (`atmosphere-generator`) โ scaffolds new Atmosphere projects with 31 JUnit 5 tests, shell integration tests, and CI workflow - **13 E2E test specs** covering transport (SSE, long-polling, fallback), security (XSS, auth), resilience (reconnection, ordering), payloads, and OpenTelemetry streaming DOM validation ## ๐ Fixed - **Long-polling POST handling** and large-payload test failures | Low | 3/2/2026 |
| atmosphere-4.0.7 | AI conversation memory, zero-warning enforcement, and developer experience improvements. ## โจ Added - **`AiConversationMemory` SPI** โ multi-turn conversation support for AI endpoints - **Auto-configured LLM clients** โ framework-level LLM clients configured automatically from `AiConfig` environment variables - **Pre-push validation hook** โ blocks `git push` unless the build passes ## ๐ Fixed - **AI unicast** โ tokens are now unicast to the originating resource instead of broadcasting to all | Low | 3/1/2026 |
| atmosphere-4.0.6 | Advanced AI features: filters, fanout, caching, routing, and budget management. ## โจ Added - **AI filter pipeline** โ composable filters for token streams: fanout, caching, routing, and budget enforcement - **Cache listener coalescing** โ batches cache notifications to reduce overhead - **Cost/latency routing rules** โ route LLM requests by cost and latency characteristics - **25 Playwright E2E tests** for all 5 AI features - **Playwright E2E job** added to CI workflow ## ๐ Fixed - **Durable | Low | 2/27/2026 |
| atmosphere-4.0.5 | MCP tracing, Spring AI advisors, and multiple framework fixes. ## โจ Added - **OpenTelemetry tracing for MCP** โ tool/resource/prompt calls traced with spans and attributes - **Spring Boot auto-configuration for `McpTracing`** + new OTel chat sample - **Spring AI advisor and customizer support** in `SpringAiStreamingAdapter` ## ๐ Fixed - **Object factory ordering** โ re-configure object factory after init-params are loaded, fixing injection failures - **Action-type reset** โ restored and fixed | Low | 2/26/2026 |
| atmosphere-4.0.4 | New wAsync Java client, AI retry support, and full JUnit 5 migration. ## โจ Added - **wAsync Java HTTP client** (`atmosphere-wasync`) โ powered by `java.net.http`, supports WebSocket, SSE, HTTP streaming, and long-polling transports with E2E integration tests - **AI retry with exponential backoff** โ automatic retry for LLM API calls with configurable backoff policy ## ๐ง Changed - **All tests migrated to JUnit 5** โ TestNG removed from the entire codebase - **Dependency versions centralized** | Low | 2/24/2026 |
| atmosphere-4.0.3 | Room protocol fixes, `RawMessage` API, and Playwright E2E test coverage. ## ๐ Fixed - **Room protocol broadcast bug** โ `DefaultRoom.broadcast()` now wraps messages in `RawMessage` to bypass `@Message` decoder mangling. Room JSON envelopes (join/leave/message events) are delivered intact to clients. - **`enableHistory()` NPE** โ `UUIDBroadcasterCache` is now properly configured before use, preventing `NullPointerException` when room history is enabled. - **Native image build** โ Spring Boot sa | Low | 2/22/2026 |
| atmosphere-4.0.2 | AI streaming and sample application fixes. ## ๐ Fixed - **AI token broadcast** โ tokens now broadcast to all subscribed clients, not just the sender - **Room protocol** โ added missing `org.json` dependency for Room protocol message parsing - **Duplicate React instances** โ resolved across all sample frontends - **`trackMessageLength`** โ corrected for each server configuration - **Members display** โ fixed and added local message echo in chat samples - **Central Publishing** โ skip Central pu | Low | 2/22/2026 |
| atmosphere-4.0.1 | Post-release polish and cleanup following the 4.0.0 launch. ## ๐ Fixed - **`configureMetaBroadcaster` restored** โ method accidentally removed during the 4.0 refactor - **Sample version alignment** โ all samples aligned to 4.0.1-SNAPSHOT - **CI release workflow** โ added missing sample modules to reactor and GitHub Packages publishing - **Embabel dependency** โ now uses Embabel 0.3.4 release from repo.embabel.com ## ๐ง Changed - **JSONP transport removed entirely** โ dead transport cleaned ou | Low | 2/20/2026 |
| atmosphere-4.0.0 | Atmosphere 4.0 is a **ground-up rewrite** of the framework for **JDK 21+** and **Jakarta EE 10**. It keeps the annotation-driven programming model and transport abstraction from prior versions, and adds support for virtual threads, AI/LLM streaming, rooms and presence, native image compilation, and frontend framework bindings. This release succeeds the 2.x/3.x line (last release: 3.1.0 / 2.7.16). Applications migrating from 2.x or 3.x should consult the [Migration Guide](https://github.com/Atmo | Low | 2/20/2026 |