Spring AI Next Release Release Notes
🎯 Highlights
This release includes 47 new features, 106 bug fixes, 70 documentation improvements, 120 other improvements.
⏪ Breaking Changes
- Auto-configuration classes for Model Context Protocol (MCP) have been renamed with 'Mcp' prefix for consistency 21c4283
- maxTokens and maxCompletionTokens parameters are now mutually exclusive in OpenAI ChatOptions, requiring users to choose one option 13c39f1
- Changed UserMessage to use
metadata
instead ofproperties
for better API consistency #3980 - Extracted VectorStoreRetriever interface from VectorStore which may require code updates for custom implementations #3827 via #1290
⚠️ Upgrading Notes
- Update imports for MCP auto-configuration classes that have been renamed with 'Mcp' prefix 21c4283
- When configuring OpenAI ChatOptions, ensure you use either maxTokens or maxCompletionTokens, but not both simultaneously 13c39f1
- Update code to use
metadata
instead ofproperties
when working with UserMessage objects #3980 - Custom VectorStore implementations may need to be updated to implement the new VectorStoreRetriever interface #3827
📢 Noteworthy
- Removed support for the deprecated Mistral AI Codestral Mamba model as part of code cleanup #4225
- Significantly improved test coverage for MistralAiBindingsPropertiesProcessor to ensure robust MistralAI integration #4165
- Improved test coverage for EmbeddingModelObservationContext and SyncMcpToolCallback edge cases to ensure better reliability #4157
- Significantly improved test coverage for QdrantObjectFactory.toObjectMap, SimpleVectorStore filter conditions, and various other components #4095
- Removed hardcoded topK value in BedrockConverseProxyChatProperties for better configuration flexibility #3621
- Refactored MessageAggregator to properly handle and include tool calls in message aggregation df90b9c
- Cleaned up QdrantVectorStoreIT by removing unnecessary environment variable validation #3615
- Temporarily reverted a fix for OpenAI function callback integration test 3bce15a
- Temporarily reverted a parameter order fix in validateToolContextSupport method f0c128c
- Temporarily reverted changes to resolve OpenAI API key for every request due to compatibility issues 313aae0
⭐ New Features
- Tool callbacks now expose the original tool name in both synchronous and asynchronous operations, providing better visibility into tool execution 6678035
- Added support for sending labels with chat requests in Google Generative AI integration 1dd686b
- Added comprehensive annotation-based configuration support for Model Context Protocol (MCP) clients and servers 534c6af
- Added support for OpenAI service_tier parameter in OpenAiChatOptions to enable control over service quality levels ad2e1bc
- Refactored MCP (Model Control Protocol) server auto-configuration to use consolidated modules with protocol-based configuration approach e71da4e
- Added missing Spring Boot starters for Google GenAI integration, enabling easier autoconfiguration 528155a
- Improved Unicode property union handling for robust Chinese character processing 35486e9
- Use latest CI scripts when testing old commits for improved testing reliability a9f93b0
- Restructured MCP server auto-configurations and added streamable-http support for improved streaming capabilities 0b96f4c
- Added support for new GPT-5 models with verbosity parameter configuration #4086
- Added comprehensive debugging capabilities to improve maintenance branch workflow reliability and troubleshooting 3ce6d38
- Added support for fast CI builds when cherry-picking changes to maintenance branches 29ac7d9
- Added autoconfiguration for MCP client with support for async HTTP request customization 7ad7150
- Configured McpSyncServer to use immediate execution when running in a servlet context 568ca96
- Added support for GPT-5 model enum with updated documentation 1a3ed95
- Added KotlinModule support and tests for schema generation in BeanOutputConverter to improve Kotlin integration #3900
- ChatClient now supports adding metadata to both PromptUserSpec and PromptSystemSpec, enabling richer message context and processing capabilities #3989
- Added Google GenAI embedding module with unified SDK support for enhanced integration capabilities 085446c
- Added ability to use custom templates with KeywordMetadataEnricher for enhanced metadata enrichment capabilities c122fe1
- Added new spring-ai-google-genai module using Google's latest GenAI SDK for improved Google AI model integration daf1274
- Added log probabilities support for Vertex AI Gemini models e557081
- Added streamable HTTP transport support for Model Context Protocol (MCP) client 656395e
- Added BedrockChatOptions to Bedrock integration for improved configuration 99e59a2
- Introduces a standardized interface for audio transcription across different model providers 4cf2377
- Enhances ZhiPu AI integration with fluent builder pattern for easier configuration d865c9e
- ZhiPuAI embedding model now supports configurable custom dimensions #3668 via #1857
- Added configuration option for meta field prefix in Weaviate vector store properties #3585
- Improved function capabilities through @tool annotation improvements for better function calling integration 22fc730
- Enhanced MistralChatOptions with updated configuration capabilities a2a92bb
- Added selective exception rethrowing capability to DefaultToolExecutionExceptionProcessor for better error handling control beb1d05
- ChatClient#mutate now creates copies of advisors and advisorParams instead of referencing the originals f391ff2
- Made the content field configurable in Weaviate vector store properties to provide more flexibility in vector store configuration 24de06e
- Added integration with ElevenLabs for text-to-speech functionality 9398850
- Expanded Mistral AI integration with support for additional chat models #3523
- Enhanced OllamaChatModel with retry template support for improved reliability cfbefee
- Improved MiniMaxChatOptions with proper equality methods and deep copy functionality d9e3037
- Added support for streaming thinking events in the Anthropic model provider, enabling real-time access to model reasoning processes 12f19db
- Enhanced OpenAI integration with updated supported voice enums for text-to-speech and chat completions #3411
- Neo4j module now automatically determines default embedding dimensions from the model cb97d9c
- Added support for dynamically providing API keys for Anthropic requests on a per-request basis 0a1cf81
- Added support for the latest Claude Opus-4 and Sonnet-4 models in the Anthropic chat model integration #3351
- Enhanced OpenAI integration to support PDF files as media input for chat models 1f2bd08
- Added MySQL database schema support for the SPRING_AI_CHAT_MEMORY table 9f58520
- Improved handling and testing of complex metadata values in Chroma vector store integration 7466cb9
- Added comprehensive metadata support for various vector store types to enable richer data storage and retrieval f78b549
- Added configurable exception handling mechanisms for tool execution to improve error management and debugging capabilities 6f61fee
- Added comprehensive integration tests for Chat Memory functionality when using SQL Server as the backend 4cac3ff
🪲 Bug Fixes
- Resolved issue with toolAnnotationWeatherForecast test in BedrockNovaChatClientIT 58a527d
- Resolved code style violations to maintain code quality standards 01c4b14
- Corrected spelling error in STATELESS constant reference deffe80
- Cleaned up unnecessary exception handling in JDBC chat memory implementation #4288
- Resolved issue with FunctionCallWithPromptFunctionIT test for Anthropic provider c8a75ab
- Resolved streamFunctionCallUsageTest failure in AzureOpenAiChatModelFunctionCallIT 7840139
- Fixed chatCompletionStreamError handling in AnthropicApiIT integration tests e1228a7
- Removed unnecessary null checks in template variable validation logic #4104
- Resolved reordering problems in AzureOpenAi chat model implementation that affected message processing #4156
- Enhanced error handling in ToolCallingAutoConfiguration to only log class names on ClassNotFoundException for better debugging befaf87
- Resolved null pointer exception that occurred when converting MCP tools to async tool specifications 36a97d3
- Fixed issues with calling stateless MCP (Model Control Protocol) tools 1df5f5c
- Cleaned up duplicate code in AzureOpenAiChatOptions class c9ad1c7
- Replaced SimpleDateFormat with thread-safe DateTimeFormatter to prevent concurrency issues b4348e6
- Resolved issues with MCP client auto-configuration tests and added comprehensive documentation 2c6e448
- Fixed test execution to only run tests for affected modules, not their dependencies, improving build efficiency 97eb1c9
- Correctly exclude root module from affected modules list and handle empty string cases properly 77a704f
- Prevent root module from appearing in affected modules list during build processes b8eac35
- Add -am flag to properly build required dependencies during the build process 8f45ca1
- Fixed main-push-fast workflow module detection and prevented recursive triggers to ensure stable CI operations b9cc239
- Simplified commit SHA checkout to avoid git fetch issues and added enhanced run context a8cf2c9
- Resolved infinite recursion in MongoDbAtlasLocalContainerConnectionDetails.getSslBundle() method #4149 via #4133
- Corrected issue where actual model version used for chat was not being returned properly #4152
- Properly handle merge operations when 'current' parameter is null #4153
- Resolved NullPointerException when metadata is null in MilvusVectorStore operations #4116 via #4115
- Fixed metadata immutability issue in Azure AI Search vector store implementation #4131 via #4117
- Improved bean naming convention for streamable HTTP WebFlux client transports #4146
- Resolved an issue where empty string finish_reason values in OpenAI streaming responses were not handled correctly #4132 via #1358
- Resolved flaky test issues in streaming response aggregation functionality #4135 via #4134
- Fixed maintenance branch detection to prioritize branch detection over explicit base_ref configuration f80a71c
- Streamlined git operations to use 'git show HEAD' approach for better maintenance branch handling 007809b
- Fixed excessive CI triggering and git history issues on maintenance branches c5d2ccd
- Added fail-fast fallback mechanism and single-commit git diff strategy for improved reliability cfd9095
- Improved retry handling for ResourceAccessException when encountering network connectivity issues #4094
- Enhanced null checking using Optional to prevent NullPointerException occurrences #4063
- Enhanced null checking using Optional to avoid NullPointerException #4064
- Use Map#putAll instead of individual put operations for better performance #4062
- Added strict option to Azure ChatCompletionsJsonSchemaResponseFormat to fix JSON schema handling #3931
- Fixed pass check behavior for evaluators and prevented null pointer exceptions #3975
- Similarity searches with the MariaDBVectorStore now properly provide similarity scores 891ef2a
- Eliminates one deserialization step in the majority of scenarios when parsing model responses, improving performance when handling JSON string parameters #4003
- Properly rethrow ToolExecutionException for non-RuntimeException cases, ensuring consistent exception handling behavior #3915
- Tool function runtime exceptions are now properly wrapped in ToolExecutionException and re-thrown for better error handling and debugging #3918 via #2857
- Corrected documentation and code comments for the Model Context Protocol (MCP) Client and Server components #4011 via #4010
- Improved null checking in DefaultChatClient using Optional for better safety #3976
- Enhanced code quality with better empty checks, method references, and pattern matching usage #3977 #3978 #3979
- Corrected example code in documentation to ensure accuracy for users #3993
- Resolved issues with Maven Central publication process 8366fa8
- Made embedding options builder methods consistent across Bedrock providers for improved developer experience #3906
- Corrected spelling of frequencyPenalty property in Google builders for proper parameter handling 128c45a
- Fixed continuous integration failures to improve build stability and reliability #3844
- Fixed issue where method tool calls would throw errors when multiple methods had the same name #2774
- Resolves issues in MCP server auto-configuration integration tests #3792
- Resolves null pointer exception in Anthropic API streaming functionality #3755 via #3740
- Corrects SystemPromptTemplate builder to return proper SystemPromptTemplate.Builder instead of generic PromptTemplate.Builder dbaa608
- Resolves parameter ordering issues in JSON schema generation functionality #3733
- Corrected annotation package configuration issues #3716
- Fixed issue where audio filename was lost when requesting OpenAI
/transcriptions
and/translations
interfaces af07517 - Fixed issue preventing streaming tool calling responses when internal execution is enabled for Anthropic provider 879c5e2
- Added validation for documents text/media check when adding to vector store #3687 via #3609
- Corrected assert message in SimpleApiKey for better error reporting #3656
- Fixed various typos throughout the codebase for improved clarity #3695
- Removed unused configuration options from ZhiPu AI model implementation #3669
- Removed incorrect @nullable annotation from VectorStore similaritySearch method #3613
- Fixed incorrect changes in Ollama auto-configuration that were causing issues #3645
- Fixed getTextBetweenParagraphs method to properly handle invalid page numbers in outline items d92a2ea
- Corrected naming inconsistencies in the Mistral package for better consistency #3652
- Removed unnecessary null check in OpenAiApi.Builder#apiKey(String) method #3654
- Added required license header to FileDocumentWriterTest class #3651
- Resolved issue with streaming tool calls that have no input parameters in Anthropic integration f575051
- Fixed streaming tool calling functionality when no input arguments are provided in Bedrock integration 8107612
- Corrected autoconfiguration class name and added ElevenLabs speech documentation link #3610
- Prevents incorrect ToolCall merging caused by empty id and name strings in DeepSeek integration d61192a
- Resolved exception in OpenAiAudioTranscriptionResponseMetadata.toString method that was causing runtime errors #3575
- Resolved infinite recursion issue in getMimeType(Path) method that could cause stack overflow errors ab04e27
- Resolved test failure in ChromaVectorStoreAutoConfigurationIT due to updated exception message #3581
- Corrected logic for determining output modalities when using streaming mode d9a5337
- Improved logging for ChromaDB collection creation to provide clearer feedback 0d8eebd
- Enhanced error handling in McpToolCallback to properly handle root exceptions d6924b6
- Resolved issue preventing proper generation of configuration metadata for Spring AI tools observations #3539 via #3550
- Corrected parameter order in ClassUtils.isAssignable call within validateToolContextSupport method 76c7018
- Resolved test configuration issues in Ollama embedding auto-configuration tests 66324a6
- Corrected similarity option parsing in ElasticsearchVectorStore for proper functionality f8d0503
- Corrected version alignment for ElevenLabs starter and autoconfiguration artifacts 15775f1
- Refactored parameter naming for better code clarity in ChatGenerationMetadata #3507
- Resolved configuration issue where embeddingFieldName was not properly set when configuring ElasticsearchVectorStore #3501 via #3500
- Corrected issue where Bedrock Titan embeddings were not returning proper usage statistics c4e434a
- Corrected parameter order error in validateToolContextSupport method that was causing incorrect validation results 59d2661
- Improved logic for checking functional types in MethodToolCallbackProvider to properly identify function implementations fe4f0d1
- Resolved SQL error in the isTableExists method of MariaDBSchemaValidator that was preventing proper table validation b925c50
- Resolved issues in OpenAiChatClientMethodInvokingFunctionCallbackIT test to ensure proper integration testing 95b3df7
- Fixed Qdrant vector database integration to properly handle Long type values in payload by converting them to String f0d4cbf
- Fixed OpenAiChatOptions to properly support transfer of webSearchOptions 4621c81
- Refactored QdrantObjectFactory to properly handle null metadata values 8b45f41
- Fixed missing properties in the ChromaVectorStore AutoConfiguration that were preventing proper initialization #3435 via #3427
- Added compatibility for Spring Framework 7.x to RetryUtils ResponseErrorHandler #3416 via #3415
- Resolved issue where an extra system message was incorrectly added when the system message was not the first one in the message list 902fc09
- Removed unreachable code branch that could cause confusion in chat memory advisor logic #3395
- Avoided unnecessary looping through all page tree when there is no destination page in PDF document reader #3396
- Fixed null pointer exception when accessing duration metadata from Ollama chat model responses 72fe3bf
- Corrected the CustomerTools documentation example to reference proper existing methods #3390
- Added protection against empty unicode strings during PDF document processing #3271 via #3054
- Fixed issue where already valid JSON strings were being double-serialized in JsonParser.toJson method 18ae16e
- Corrected typo in ToolCallback class to improve code clarity #3352
- Resolved critical connection leak issue when using JdbcChatMemoryRepository that could cause resource exhaustion #3283 via #3281
- Updated useAutoConfiguredJdbcChatMemoryRepository test to work correctly after the connection leak fix 029e8a1
📓 Documentation
- Comprehensive documentation for the new Spring AI Google GenAI integration modules e26120a
- Corrected git log command syntax in project documentation #4272
- Updated tools.adoc documentation with latest information #4278
- Improved documentation for Docker services setup and configuration #4253
- Updated project README with latest information and improvements #4161
- Fixed typo from 'are' to 'and' in advisors.adoc documentation #4219
- Added more detailed explanation in observability documentation about metrics configuration and usage a0ad921
- Various small improvements to documentation content and formatting ad93613
- Added extensive validation and functionality tests for the Document class to improve test coverage 2bca047
- Added new model names in Anthropic documentation #4077
- Added reference documentation for MariaDBVectorStore similarity score functionality 9d19181
- Added comprehensive documentation for the new metadata support feature in ChatClient c328ef6
- Enhanced readability by formatting documentation with one sentence per line 54a2dc3
- Updated getting-started.adoc documentation to reflect 1.0.0 release changes and improvements #3920
- Improved chat-memory.adoc documentation with updated information and examples #3917
- Fixed various typos in comments and improved overall documentation quality #3936
- Updated outdated information in project documentation to reflect current state 056c261
- Updated ChromaDB configuration details to include comprehensive support for Chroma Cloud deployment #4008
- Enhanced documentation for the call() method in ChatClient with clearer examples and usage guidelines #3963
- Fixed bug in example code to provide accurate documentation for users #3993
- Applied consistent AsciiDoc styling to CONTRIBUTING.adoc for improved documentation formatting #3883
- Optimized Bedrock documentation to keep it synchronized with current code implementation #3843 via #3842
- Fixed typo in PropmptTemplate reference within structured-output-api.jpg documentation #3304 via #3295
- Added example demonstrating dynamic Model Context Protocol client selection #3751
- Updated Model Context Protocol specification documentation link #3810
- Fixed example code in streaming responses documentation #3802
- Improves documentation for ChatClient advisor configuration and usage 965b1d2
- Updates Model Context Protocol documentation to reference current implementation patterns #3760
- Updated documentation for Anthropic chat integration #2723
- Updated contributing guidelines to use Developer Certificate of Origin instead of Contributor License Agreement #3228 via #3094
- Corrected typographical errors in token configuration documentation #3677
- Updated documentation with current code examples and removed deprecated references #3717 via #3713
- Fixed property name from
is-auto-id
toauto-id
in Milvus vector store documentation #3704 via #3702 - Cleaned up duplicated dependency instructions in opensearch.adoc documentation #3712
- Corrected incorrect default embedding model reference in ollama-embeddings.adoc #3686
- Enhanced README with Elasticsearch vector store documentation and integration details #3688
- Fixed broken link in javadoc to Message source in Content class #3672
- Fixed various spelling errors and typos in documentation and code comments #3678
- Fixed documentation for SimpleLoggerAdvisor to provide accurate usage information #3638
- Updated tools documentation to provide correct usage examples and guidance 585f554
- Updated tools.adoc with improved documentation #3624
- Corrected toolDefinition parameter transfer error in documentation #3468
- Corrected broken link to ChatModel in documentation #3583
- Improved clarity and formatting in Weaviate vector store documentation 12c725d
- Improved documentation for Spring AI advisors functionality #3552
- Enhanced documentation for MCP Server Boot Starter selection and configuration guidance #3511
- Updated ZhipuAI chat integration documentation #3531
- Corrected documentation examples showing proper usage of tools and defaultTools configuration #3533
- Repaired broken links to ChatOptions and ChatOptions#builder() in web documentation #3447
- Corrected code examples in the openai-chat.adoc documentation to ensure accuracy and proper implementation guidance #3493
- Updated Hugging Face integration documentation with improvements and clarifications #3445
- Fixed documentation typos in cloud bindings configuration #3436
- Corrected ToolDefinition.builder() usage examples in documentation #3431
- Updated Azure OpenAI chat documentation to reflect response format changes #3434 via #3354
- Revised and improved documentation for DeepSeek and Minimax chat model integrations #3408
- Corrected video MIME type specifications and standardized formatting in Bedrock Converse documentation #3413
- Cleaned up duplicate reference to NoOpTemplateRenderer in ChatClient documentation #3414
- Enhanced Elasticsearch documentation with detailed description of the embedding-field-name configuration property #3399 via #2082
- Corrected spelling error in the contribution guidelines documentation #3378
- Enhanced documentation with checkstyle configuration and usage instructions #3277
- Updated advisor documentation to reference correct dependencies a0d187d
- Improved documentation for Mistral AI embeddings integration #3362
- Corrected broken links in documentation pointing to Media.java class #3322
- Updated link to point to official awesome-spring-ai repository #3328
- Updated documentation with improved example using OpenAiChatModel.builder() for custom API key configuration #3335
- Fixed and improved documentation for function calling and tool integration #3292
- Improved documentation for the MCP Server Boot Starter configuration and usage #3279
- Corrected incorrect external link formatting in the effective agents documentation #3275
- Corrected various typos throughout the documentation to improve readability #3263
- Added proper title to documentation that was missing title metadata 09dd973
🔨 Dependency Upgrades
- Added spring-ai-mcp-annotations dependency to MCP auto-configurations ef71e4e
- Updated MCP SDK to version 0.11.3 for improved functionality and compatibility 09d2a91
- Updated io.swagger.core.v3:swagger-annotations from version 2.2.25 to 2.2.30 #4187 via #4185
- Upgraded MCP SDK version to 0.11.1 #4048
- Updated Tika, pdfbox and jsoup to latest versions for improved document reading capabilities #3912
- Updated Ollama integration to use the latest API version for improved compatibility and features 3ee33c1
- Updated PostgreSQL JDBC driver from version 42.7.5 to 42.7.7 #3934
- Updated io.modelcontextprotocol from 0.11.0-SNAPSHOT to stable 0.11.0 release #3990
- Updates Model Context Protocol library to latest snapshot version #3781
- Enhanced schema initialization logic and updated deprecated code for Milvus vector database integration #3705
- Updated JdbcChatMemoryRepositoryHsqldbAutoConfigIT from JUnit 4 to JUnit 5 #3633
- Replaced swagger-annotations with swagger-annotations-jakarta for Jakarta EE compatibility 3e02edc
- Updated Spring Boot dependency to version 3.5.0 for latest features and improvements 2be1e42
- Updated org.apache.pdfbox dependency to version 3.0.4 for improved PDF processing #3271 via #3265
⚡ Performance
- Improved performance of the from method in JdbcChatMemoryRepositoryDialect 1607eb8
- Improved fast workflow performance with better logging and optimization for true no-op builds b339f56
- Eliminates unnecessary deserialization step when parsing JSON string parameters in model responses #4003
- Reuse DocumentRowMapper instance to reduce redundant object creation and improve performance af1ce67
- Improved performance by optimizing debug logging operations in the chat memory advisor #3448
🔩 Build Updates
- Enhanced test coverage for HTTP client transport auto-configuration with MCP support #4147
- Updated VS Code formatting configurations for improved developer experience 80228af
- Improved test coverage for tool execution components #4268
- Applied code style fixes and formatting improvements to maintain code quality standards 6880753
- Added extensive test coverage for tool calling observation components to improve code reliability #4259
- Restored Groq API integration tests to ensure proper testing coverage for Groq provider functionality 39c5c38
- Restored Maven settings.xml configuration file required for continuous integration builds 72f7c63
- Improved test coverage for ChatClient response handling and builder functionality #4216
- Code formatting improvements in test files e119eb7
- Restructured MCP server auto-configuration modules for improved modularity and maintainability a38aad8
- Comprehensive test coverage improvements across Spring AI modules with additional edge case testing d67a3cd
- Enabled manual triggering for maintenance workflows and optimized builds by skipping when no new commits exist 23242ca
- Added missing run-name configuration to maintenance-fast.yml workflow ab826e4
- Enhanced continuous integration workflow with better concurrency control, run naming improvements, and duplicate schedule removal 349a9e5
- Updated main-push-fast.yml to test only affected modules, improving build efficiency 77d0058
- Optimized deployment process by skipping tests during the deploy phase to improve build performance da0f92a
- Enhanced build visibility with progress indicators for different build phases d4d95b9
- Exclude Python cache files from CI script copying to prevent build contamination 6998de9
- Enable verbose output to better trace and debug root module issues during builds feb5bf3
- Ignore all .github changes in main push fast workflow to reduce unnecessary build triggers 6c8ecd9
- Optimized CI/CD pipeline to provide faster feedback on pull request merges and improved build performance de5cd35
- Always exclude root pom.xml from fast workflow module detection to improve build accuracy b767954
- Added workflow_dispatch capability to test specific commits in the fast workflow for better debugging 5204e04
- Resolved issues with artifactory build and release automation pipeline 90f636e
- Enhanced test coverage for chat client observation functionality #4124
- Implemented intelligent path-based build triggering to optimize CI/CD pipeline efficiency 4df281c
- Added clearer naming conventions for documentation deployment workflows ecc3317
- Fixed git state problems that were triggering unnecessary full project builds 4ea7c5c
- Synchronized build workflows with the streamlined 1.0.x branch configuration 26e0983
- Updated .gitignore to exclude pycache directories from version control b6cda1c
- Corrected CI workflow to use ../mvnw for assembly generation in spring-ai-docs #4072
- Improved test coverage in Anthropic provider with comprehensive validation and edge cases dffec8d
- Improved test coverage across various classes 8748a8d
- Enabled manual workflow dispatch for CI/CD build processes f17dfa1
- Improved CI/CD by using Maven wrapper and batch-mode in GitHub Actions #3841
- Added comprehensive edge case tests for tool result conversion and Redis filter expressions #4043
- Updated test class naming to follow Spring framework conventions 9bbde2a
- Enhanced test coverage with comprehensive tests for AzureOpenAiChatOptions and PostgresMlEmbeddingOptions #4042
- Added extensive test coverage for OCICohereChatOptions, AzureEmbeddingsOptions, and WeaviateVectorStoreOptions classes #4041
- Improved test coverage for output conversion and streaming utilities #4039
- Enhanced test coverage for OllamaChatModel and OllamaEmbeddingModel implementations #4038
- Added extensive unit tests for Query class validation and equality behavior, Spring AI builders, runtime hints registration, and PgVector embedding dimensions #4036
- Added extensive test coverage for Spring AI core runtime hints registration to ensure proper native compilation support #4024
- Added comprehensive tests for ChatClientRequest mutation and context handling functionality #4022
- Added edge case tests for VertexAI Gemini runtime hints registration to improve native image compatibility #4013
- Added comprehensive test coverage for Ollama runtime hints registration to ensure proper GraalVM native image support #4014
- Enhanced test coverage for VectorStore runtime hints registration to validate native compilation compatibility #4015
- Added comprehensive test coverage for PDF Reader runtime hints to ensure proper native image support #4016
- Added comprehensive test coverage for multiple vector database filter expression converters including PgVector, MongoDB Atlas, Milvus, Pinecone, MariaDB, Neo4j, and OpenSearch AI Search #3916, #3919, #3922, #3932, #3943, #3957, #3950
- Enhanced test coverage for OpenAI Chat Options component #3959
- Removed unused import statements to improve code quality #3921
- Comprehensive test coverage improvements for MistralAi, Anthropic chat options, VectorStoreChatMemoryAdvisor, and QdrantVectorStore builders #3968 #3973 #3985 #3986
- Added comprehensive test coverage for MistralAi, Anthropic, AzureOpenAi, OpenAi, and MCP client runtime hints configurations #3987
- Updated MCP server auto-configuration settings for improved functionality 1256eaf
- Refactored builder pattern in VertexAiGeminiSafetySetting for improved code structure and maintainability 49e5c63
- Updated .gitignore file to improve version control handling and exclude unnecessary files 44816fb
- Refactored MethodToolCallbackProviderTests and updated OpenAI audio tests due to safety settings changes a216bf1
- Clean up unnecessary files from the codebase 8a5635d
- Applied diamond operator usage, null checks, string joining optimizations, and added JavaDocs across the codebase #3458 and #3663 and #3013
- Converted Qdrant vector store integration tests to use OpenAI embedding model #3671
- Improved reactive Context propagation to AsyncMcpToolCallback for better async handling 9a52182
- Updated AzureOpenAiAudioTranscriptionModelIT to use OkHttpClient for improved testing #3665
- Removed redundant SOURCE_METADATA assignments and simplified conditional checks in TextReader #3627
- Cleaned up useless properties tags in configuration files #3634
- Updated backport-issue.yml to use main branch for reusable workflows 5aa8940
- Added comprehensive test coverage for FileDocumentWriter default constructor and various configuration options 089c3eb
- Improved logging consistency by replacing System.err.println calls with proper log output #3600
- Removed unused import statements to improve code cleanliness #3599
- Cleaned up unused messageHistory implementation #3574
- Standardized the order of getter and setter methods in WeaviateVectorStoreProperties #3582
- Cleaned up test dependency management by removing explicit version declaration for jackson-dataformat-xml d8c728e
- Added comprehensive unit testing for multiple method tool callbacks functionality with tool context support b9a6834
- Corrected @Formatter:onn to @Formatter:on to ensure proper code formatting in test files #3477
- Added comprehensive test coverage for embeddingFieldName configuration in ElasticsearchVectorStore 6451fef
- Made auto-configuration dependencies optional in the docker compose module for better modularity #3502
- Made auto-configuration dependencies optional in the testcontainers module for improved flexibility #3465
- Replaced spring-webflux with spring-web dependency in the spring-ai-retry module cecc046
- Fixed GitHub Actions CI/CD pipeline to properly trigger for the 1.0.x branch 5f23dca
- Enhanced CI build configuration to support non-main branches a385ed4
- Moved speech1.mp3 test file to proper src/test/resources location ab88fea
- Updated gitignore to exclude Qodana static analysis configuration file 5b49036
- Enhanced test coverage for OpenAI streaming function calling helper functionality #3312
- Added automated workflows for cherry-picking commits and handling backport issues bfaa6be
- Improved OpenAI API key resolution to handle dynamic key retrieval per request 3a527ee
- Applied checkstyle fixes to improve code formatting and consistency b6f29a4
- Updated project version for next development iteration d93ab77
🔐 Security
- Updated Protobuf Java from 3.25.2 to 3.25.8 to address security vulnerability CVE-2024-7254 #3996
🙏 Contributors
Thanks to all contributors who made this release possible:
- Ahmed Maruf (@ohMaruf)
- Ahoo Wang (@ahoowang)
- Alex Klimenko (@alexanderklmn)
- Alexandros Pappas (@apappascs)
- Andrea Vacondio (@andrea.vacondio)
- asw12 (@alan.wang)
- azurelee (@aliqingdong)
- chainHo (@chainhou)
- chani (@csbiy)
- chen.xue (@huihaoweishui)
- Cho-Hyun-Seung (@Cho-Hyun-Seung)
- Christian Tzolov (@christian.tzolov)
- Claudio Silva Junior (@Claudio-code)
- Dan Sarlo (@dsarlo-viso)
- Daniel Garnier-Moiroux (@git)
- David Frizelle (@dafriz)
- ddobrin (@ddobrin)
- Dmitry Sulman (@dmitry.sulman)
- Eddú Meléndez (@eddu.melendez)
- Eddú Meléndez Gonzales (@eddu.melendez)
- Emmanuel Essien-nta (@colourfulemmanuel)
- Filip Hrisafov (@filip.hrisafov)
- finyuq (@finyuq)
- Florian Beek (@FlorainB)
- Gareth Evans (@garethjevans)
- Gerrit Meier (@meistermeier)
- Giorgos Gaganis (@gaganis)
- Guan Huo (@9uanhuo)
- Guo (@ggndnn)
- han (@TheEterna)
- heechann (@ahc70032)
- Henning Pöttker (@hpoettker)
- Hudson Luiz Sales Schumaker (@hudson.schumaker)
- huidong.yin (@huidong.yin247203)
- Hyeri1ee (@haerizian10)
- Hyunsik Aeom (@aeomhs)
- Ilayaperumal Gopinathan (@ilayaperumalg)
- ingbyr (@zwk)
- Jan-Eric Harnack (@janericharnack)
- jasonparallel (@jasonparallel)
- jay (@rlaakswo0687)
- Jemin Huh (@hjm1980)
- Jinwoo Lee (@jinlee1703)
- jonghoonpark (@dev)
- lambochen (@lambochen)
- Laura Trotta (@l-trotta)
- Lawrence Peng (@lawrencepbr)
- Lilt (@lpy569)
- Link (@eeaters)
- little_huang (@little-huang)
- loong-coder (@garen.mao)
- Lpepsi (@846179345)
- Mark Pollack (@markpollack)
- MartinDai (@xiaomingys)
- Mengqi Xu (@2663479778)
- Mingyuan Wu (@my.wu)
- Mudabir Hussain (@mudabirburfat97)
- Nahyun Kim (@knahyuk)
- Nicolas Krier (@nicolaskrier)
- niniDev (@kim-nini)
- Nirsa (@KoreaNirsa)
- NOUNI El bachir (@enimiste)
- Oleksandr Klymenko (@alexanderklmn)
- pavan kumar punna (@punnapavankumar9)
- Philip I. Thomas (@mail)
- Philipp Krenn (@xeraa)
- Piotr Kubowicz (@piotr.kubowicz)
- qwp_p (@RobinElysia)
- Rafael Cunha (@rafaelrddc)
- robinmayerhofer (@robinmayerhofer)
- Rodrigo Malara (@rodrigomalara)
- Sebastian Espei (@seblsebastian)
- Seokjae Lee (@seok9211)
- seongm1n (@0411tjdals34)
- SexyProgrammer (@SexyProgrammer)
- Shahbaz Aamir (@shahbaz07dbit)
- shishuiwuhen2009 (@shishuiwuhen2009)
- shown (@yuluo08290126)
- SiBo Ai (@ai-afk)
- Sizhe Fan (@paoxiaomooo)
- Soby Chacko (@soby.chacko)
- Solomon Hsu (@solnone)
- spud (@jamespud)
- Sun Yuhan (@sunyuhan1998)
- Thomas Vitale (@ThomasVitale)
- Tilman Holube (@tilman)
- tongda (@1414714930)
- Tony Quach (@quachhengtony)
- Tran Ngoc Nhan (@ngocnhan.tran1996)
- wilocu (@matpat17)
- WOONBE (@kepull2918)
- Yang Buyi (@yangbuyiya)
- Yang Li (@2571425925)
- Yanming Zhou (@zhouyanming)
- yiangjm (@yangjm-41)
- YunKui Lu (@luyunkui95)
- 徐功明 (@XuGongming)
- 老虎是条大狼狗 (@494509580)
- 전민오 (@jbj338033)