⭐ New Features
- Updated Gemini Models and Google Client Library BOM #6112
- Sanitize Spring Boot related dependencies #6088
- Introduce
ToolSpecfluent API #6085 - Remove CosmosDB related components from Spring AI #6080
- Remove
spring-ai-spring-cloud-bindings#6079 - Ollama doesnt work in a graalvm native image #6043
- Remove
ChatOptionssetters #6025 - Replace usage of
GEMINI_2_0_FLASHbyGEMINI_2_5_FLASH#6003 - Deprecate SSE transports, set Streamable HTTP as default server protocol #5969
- Introduce SSE message endpoint validator in
WebFluxSseClientTransport#5967 - Reuse
JsonSchemaGeneratorinBeanOutputConverter#5897 - Make
ToolCallAdvisorthe default tool call management option #5459 - Add validation of vector's dimensions for PGVector #4868
🐞 Bug Fixes
- Update tests and docs for MCP SDK 2.0.0-M3 breaking API changes #6121
- Enforce single ToolAdvisor invariant in DefaultChatClient #6111
- Fix ToolCallAdvisor ignoring auto-configured ToolCallingManager #6096
- Per-call
customHeadersnot propagated inOpenAiImageOptions#6082 ChatClient#promptignores chat options from prompt #6072- Fix
OpenAiChatOptions.AbstractBuilder#combineWith#6045 - Fix OpenAI generic options merging for image, audio, embedding and moderation #6042
- Error in Spring AI 2.0.0-M6 while using Docker Model runner #6036
- Preserve
ChatResponseMetadataduring OpenAI streaming aggregation #6014 - Google GenAI support is not available with Spring Boot 4 on start.spring.io #6005
RedisVectorStore#doDeleteonly deletes the 10 first messages #5998- Fix Kotlin nullable fields in MCP tool input schema #5997
- Tool input schema marks Kotlin nullable fields as required in
JsonSchemaGenerator#5978 - Preserve OpenAI response metadata #5929
- Tool inputSchema with recursive parameter types emits unresolvable
$ref(nested$defs, root-relative$ref) #5888 - Advisor executed after
ToolCallAdvisorlacks custom observation #5882 - OpenAiChatModel streaming drops chunks due to internal switchMap when using buffered concatMap #5120
📔 Documentation
- Complete documentation update for OpenAI SDK base URL new behavior #6093
- Reference document still refer to removed
OpenAiApi#6075
🔨 Dependency Upgrades
- Add spring-boot-autoconfigure-processor to the compiler #6100
❤️ Contributors
Thank you to all the contributors who worked on this release:
@ChoMinGi, @Kehrlann, @ThomasVitale, @chemicL, @ddobrin, @ericbottard, @jewoodev, @qixiangme, @quaff, @sobychacko, @stohirov, @tzolov, and @yaner-here