dependabot[bot] opened a new pull request, #3176: URL: https://github.com/apache/cxf/pull/3176
Bumps [org.atmosphere:atmosphere-runtime](https://github.com/Atmosphere/atmosphere) from 3.1.0 to 4.0.49. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Atmosphere/atmosphere/releases">org.atmosphere:atmosphere-runtime's releases</a>.</em></p> <blockquote> <h2>Atmosphere 4.0.49</h2> <h3>Added</h3> <ul> <li><code>atmosphere-crewai</code> — <code>AgentRuntime</code> for the <a href="https://www.crewai.com/">CrewAI</a> multi-agent framework via an out-of-process Python sidecar. First non-Java runtime adapter in the project; the boundary is <code>HTTP + SSE</code> for the request stream plus a loopback <code>ToolCallbackServer</code> for Java→Python tool RPC. Pins 9 capabilities (<code>TEXT_STREAMING</code>, <code>TOKEN_USAGE</code>, <code>AGENT_ORCHESTRATION</code>, <code>CANCELLATION</code>, <code>TOOL_CALLING</code>, <code>SYSTEM_PROMPT</code>, <code>STRUCTURED_OUTPUT</code>, <code>TOOL_APPROVAL</code>, <code>PER_REQUEST_RETRY</code>) via <code>CrewAiRuntimeContractTest</code> + the capability snapshot (which now enumerates 12 runtimes). Like every other runtime, <code>isAvailable()</code> is config-gated — requires <code>ATMOSPHERE_CREWAI_SIDECAR_URL</code> pointing at a running sidecar that responds OK to <code>GET /health</code>.</li> <li><code>modules/crewai/sidecar/</code> — companion Python package <code>atmosphere-crewai-bridge</code> (FastAPI + uvicorn + crewai 1.14) speaking the documented wire protocol. Materialises Java <code>ToolDefinition</code>s as <code>crewai.tools.BaseTool</code> subclasses via <code>pydantic.create_model</code>, injects them into agents, and threads <code>context.systemPrompt()</code> into each agent's <code>backstory</code> inside a delimited block. Ships with a working <code>examples/ollama_crew.py</code> factory that targets <code>qwen2.5:0.5b</code> (no API key required).</li> <li>CLI runtime overlay (<code>cli/runtime-overlays.json</code>) for <code>crewai</code>, so <code>atmosphere new my-app --template ai-chat --runtime crewai</code> scaffolds with the dependency wired and the sidecar setup documented inline.</li> <li>End-to-end validation captured at <code>.harness/crewai-e2e-success.png</code>: chrome-devtools drove <code>/atmosphere/console/</code> against a real Ollama-backed crew; the browser rendered 25 tokens at 46.8 tok/s through the full chain <code>WebSocket → @AiEndpoint(runtime=crewai) → HttpSseSidecarClient → atmosphere-crewai-bridge → crewai 1.14 → litellm → Ollama</code>. Console zero errors, sidecar log confirms <code>POST /v1/chat/completions HTTP/1.1 200 OK</code> against the local Ollama instance.</li> <li><code>modules/coordinator/journal</code> — <strong>event-sourced execution log</strong> for the coordinator. Layers four additive pieces onto the existing <code>CoordinationJournal</code> SPI without breaking any of the 94 existing <code>new CoordinationEvent.*</code> call sites across coordinator / admin / checkpoint / integration-tests / samples: <ol> <li><code>EventEnvelope(eventId, parentEventId, event)</code> + default-method <code>recordEnveloped</code> / <code>retrieveEnveloped</code> on <code>CoordinationJournal</code>. <code>JournalingAgentFleet</code> threads parent IDs through every dispatch path (<code>parallel</code> / <code>pipeline</code> / <code>route</code> / <code>proxy.call</code> / <code>callAsync</code> / <code>stream</code>): <code>CoordinationStarted</code> → <code>AgentDispatched</code> → <code>AgentCompleted</code>/<code>AgentFailed</code> → <code>AgentEvaluated</code>. Legacy <code>record(event)</code> callers continue working — events are wrapped as root envelopes with no parent.</li> <li><code>CoordinationProjection.from(journal, coordinationId)</code> — pure</li> </ol> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Atmosphere/atmosphere/blob/main/CHANGELOG.md">org.atmosphere:atmosphere-runtime's changelog</a>.</em></p> <blockquote> <h2>[4.0.49] - 2026-05-28</h2> <h3>Added</h3> <ul> <li><code>atmosphere-crewai</code> — <code>AgentRuntime</code> for the <a href="https://www.crewai.com/">CrewAI</a> multi-agent framework via an out-of-process Python sidecar. First non-Java runtime adapter in the project; the boundary is <code>HTTP + SSE</code> for the request stream plus a loopback <code>ToolCallbackServer</code> for Java→Python tool RPC. Pins 9 capabilities (<code>TEXT_STREAMING</code>, <code>TOKEN_USAGE</code>, <code>AGENT_ORCHESTRATION</code>, <code>CANCELLATION</code>, <code>TOOL_CALLING</code>, <code>SYSTEM_PROMPT</code>, <code>STRUCTURED_OUTPUT</code>, <code>TOOL_APPROVAL</code>, <code>PER_REQUEST_RETRY</code>) via <code>CrewAiRuntimeContractTest</code> + the capability snapshot (which now enumerates 12 runtimes). Like every other runtime, <code>isAvailable()</code> is config-gated — requires <code>ATMOSPHERE_CREWAI_SIDECAR_URL</code> pointing at a running sidecar that responds OK to <code>GET /health</code>.</li> <li><code>modules/crewai/sidecar/</code> — companion Python package <code>atmosphere-crewai-bridge</code> (FastAPI + uvicorn + crewai 1.14) speaking the documented wire protocol. Materialises Java <code>ToolDefinition</code>s as <code>crewai.tools.BaseTool</code> subclasses via <code>pydantic.create_model</code>, injects them into agents, and threads <code>context.systemPrompt()</code> into each agent's <code>backstory</code> inside a delimited block. Ships with a working <code>examples/ollama_crew.py</code> factory that targets <code>qwen2.5:0.5b</code> (no API key required).</li> <li>CLI runtime overlay (<code>cli/runtime-overlays.json</code>) for <code>crewai</code>, so <code>atmosphere new my-app --template ai-chat --runtime crewai</code> scaffolds with the dependency wired and the sidecar setup documented inline.</li> <li>End-to-end validation captured at <code>.harness/crewai-e2e-success.png</code>: chrome-devtools drove <code>/atmosphere/console/</code> against a real Ollama-backed crew; the browser rendered 25 tokens at 46.8 tok/s through the full chain <code>WebSocket → @AiEndpoint(runtime=crewai) → HttpSseSidecarClient → atmosphere-crewai-bridge → crewai 1.14 → litellm → Ollama</code>. Console zero errors, sidecar log confirms <code>POST /v1/chat/completions HTTP/1.1 200 OK</code> against the local Ollama instance.</li> <li><code>modules/coordinator/journal</code> — <strong>event-sourced execution log</strong> for the coordinator. Layers four additive pieces onto the existing <code>CoordinationJournal</code> SPI without breaking any of the 119 existing <code>new CoordinationEvent.*</code> call sites across coordinator / admin / checkpoint / integration-tests: <ol> <li><code>EventEnvelope(eventId, parentEventId, event)</code> + default-method <code>recordEnveloped</code> / <code>retrieveEnveloped</code> on <code>CoordinationJournal</code>. <code>JournalingAgentFleet</code> threads parent IDs through every dispatch path (<code>parallel</code> / <code>pipeline</code> / <code>route</code> / <code>proxy.call</code> / <code>callAsync</code> / <code>stream</code>): <code>CoordinationStarted</code> → <code>AgentDispatched</code> → <code>AgentCompleted</code>/<code>AgentFailed</code> → <code>AgentEvaluated</code>. Legacy <code>record(event)</code> callers continue working — events are wrapped as root envelopes with no parent.</li> <li><code>CoordinationProjection.from(journal, coordinationId)</code> — pure</li> </ol> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Atmosphere/atmosphere/commit/653628e46d3497883c4d9b76540b2ebec72217cd"><code>653628e</code></a> release: Atmosphere 4.0.49</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/8523de6c39c27f2b4af399d07e1a0331d38b1716"><code>8523de6</code></a> docs(changelog): backfill Koog 1.0.0, Cohere delta, Quarkus surfaces, JDK26 fix</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/0b37dcdeca6621684b489599601c2ad7cef93857"><code>0b37dcd</code></a> docs(drift): <a href="https://redirect.github.com/Atmosphere/atmosphere/issues/80">#80</a> — LTM fix pushed with a detached Javadoc that broke the Nati...</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/d6842cc433202cd4c881813bccc87ef7f90aa7c3"><code>d6842cc</code></a> fix(spring-boot): attach orphaned Javadoc in LongTermMemoryHttpE2eTest</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/582571e71597b55bec86a9bd853c5b66ce9e08e2"><code>582571e</code></a> docs(readme): reframe Scope table — drop empty compute row, 'Provided by your...</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/b2e9e09e71cd43c7840f653f3aae22845ef0995b"><code>b2e9e09</code></a> fix(spring-boot): idle-reaper fallback ends LTM JDK26 disconnect hang</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/0d78b65558c6b66653c0d30326401ef02ef3ef8b"><code>0d78b65</code></a> chore(deps): bump actions/setup-java from 4 to 5 (<a href="https://redirect.github.com/Atmosphere/atmosphere/issues/2637">#2637</a>)</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/20a05b2f79324ab6a7c5327fcc4a9061b314013f"><code>20a05b2</code></a> docs(drift): <a href="https://redirect.github.com/Atmosphere/atmosphere/issues/79">#79</a> — LTM JDK26 hang misdiagnosed as slowness; 120s await bump i...</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/1eaf81d74b226b04dc3d7170cfc06a26aaef41d4"><code>1eaf81d</code></a> docs(drift): <a href="https://redirect.github.com/Atmosphere/atmosphere/issues/78">#78</a> — recommended merging OTel api-only bump without reading the...</li> <li><a href="https://github.com/Atmosphere/atmosphere/commit/f163f54382c20c170fc5f0d5db688521f20ecbf1"><code>f163f54</code></a> test(spring-boot): bump LongTermMemoryHttpE2eTest disconnect await 60s→120s</li> <li>Additional commits viewable in <a href="https://github.com/Atmosphere/atmosphere/compare/atmosphere-project-3.1.0...atmosphere-4.0.49">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
