Changes:
- df1cb33 .Net: Bump package version to 1.82.0 (#14721)
- d08a482 Python: Prepare 1.47.0 release and consolidate dependency updates (#14720) [ #14708, #14596, #14597, #14598, #14599, #14600, #14627 ]
- 28c0d60 .Net: Harden structured data mutation boundaries (#14718)
- 1a3ccd8 .Net: Bind validated HTTP addresses to connections (#14719)
- c36f221 Python: Fix OracleCollection search with multiple filters (#14541) [ #14539 ]
- 530f2e8 Python: Use storage_name for hybrid search fields and vector queries (#14684) (#14688)
- 78f6124 Python: close native generators when stream invocations end (#14701)
- 703eb5f Python: Send the NVIDIA nvext setting in extra_body (#14698)
- e68f977 Python: Build an array schema for variadic tuple parameters (#14692)
- 1ae2a39 Python: docs(python): fix broken sample links in agents READMEs (#14703)
See More
- cbb8059 Python: Drop 3.10 support and expand CI coverage through 3.14 (#14708)
- 9137b35 .Net: docs: fix dead links after planner removal and MEVD code migration (#14715) [ #12399, #11028, #12962, #13396 ]
- d41312f .Net: docs: fix 20 broken sample links in GettingStartedWithAgents README (#14699) [ #12348 ]
- d5b2a41 Python: Fix VolatileMemoryStore.get_nearest_matches on an empty collection (#14536) [ #14534, #14523, #14524 ]
- 9e683ce Python: Propagate MCP initialization failures (#14095) [ #13414 ]
- 6e5a4b7 Python: fix(python/redis): restore vector search broken by redisvl>=0.5 API change and KeyError on include_vectors=False (#14278) [ #13896 ]
- 8aa1dc5 Python: Handle empty chat message function results (#14375) [ #14359 ]
- 7360b98 Python: Exclude ClassVar annotations from generated JSON schemas (#14528) [ #14527 ]
- b4c5b83 Python: Fix Handlebars messages helper ignoring its argument (#14537) [ #14535 ]
- 05b6569 Python: fix(python): wire ChatHistoryReducer into ChatCompletionAgent invocation (#12303) (#14607)
- 7a7c92f Python: fix(python): preserve non-adjacent tool pairs during history truncation (#14658)
- ae13ada Python: count Gemini thinking tokens in the usage of Google AI completions (#14671)
- 6bfdcb8 Python: Respect optional MCP prompt arguments (#14676)
- 7a957a0 Python: Fix Mistral AI seed setting being rejected by the SDK (#14677)
- aeb4737 Python: keep empty tool results through the prompt round trip (#14686) [ #14685, #14472, #14375, #14480 ]
- 2a2e9af Python: fix(sqlserver): handle None and boolean expressions in SqlServerCollection lambda parser (#14687) [ #14683 ]
- 8cda8fe Python: fix Mistral AI chat completion crash on unknown finish reasons (model_length) (#14696)
- 457e12b Python: fix(sql_server): validate collection field types before table creation (#14697) [ #14611 ]
- 87eadc7 Python: Batch Google AI embedding requests to the 100-input limit (#14700)
- 356acb6 Python: normalize OpenAPI allowlist paths before prefix match (#14668) [ #14662 ]
- fe6c483 Python: preserve path case in OpenAPI allowed URLs (#14693)
- 96c9e86 .Net: [BREAKING] Consolidate file access (#14679)
- fa3962b .Net: Bump Aspire.Hosting.Azure.CognitiveServices from 13.4.6 to 13.5.4 (#14501)
- 58d28fd .Net: Bump Aspire.Azure.Search.Documents from 13.4.6 to 13.5.4 (#14499)
- a77c8ac .Net: Remove migrated .NET Milvus connector (#14682) [ #14579 ]
- 4bb64ee Python: Bump Python version to 1.46.0 for a release (#14672)
- ce34fdb Python: Reject bytes in prompt template argument encoding (#14669)
- a4db76e Python: await get_nearest_matches in VolatileMemoryStore.get_nearest_match (#14580) [ #14521 ]
- 43a6312 Python: fix(anthropic): map every Anthropic stop reason instead of raising KeyError (#14616)
- 8d46973 Python: fix(python): keep ChatMessageContent.to_prompt a str when encoding is set (#14464) [ #13738, #5550, #14304 ]
- 07ffe35 Python: fix(python): preserve empty tool results in chat history (#14472) [ #14359 ]
- eff85dd Python: fix(python): preserve Annotated metadata in kernel functions (#14496) [ #14441 ]
- 629f9a4 Python: chroma collection_exists catches too much, ensure_collection_deleted too little (#14510) [ #14473, #14474 ]
- 66cb0f9 Python: Cosmos NoSQL collection_exists reports a throttled request as a missing container (#14515) [ #14510 ]
- 0026fd1 Python: Combine multiple InMemoryCollection filters with AND (#14540) [ #14538 ]
- 50156e3 Pin GitHub Actions to full-length commit SHAs (#14568)
- 660b1a4 Python: fix(python): preserve Pydantic field descriptions in schemas (#14454)
- 9a70006 Python: FIX: honor overwrite=False for default execution settings in PromptTemplateConfig (#14586) [ #14582 ]
- b5b526d Python: update to files.get_content (#13159)
- 8c48410 Python: fix(python): Fix VolatileMemoryStore.get_nearest_matches on empty collection (#14565) [ #14534 ]
- f95d9fa Python: Fold negative filter literals before vector-store parsers (#14572) [ #14571 ]
- 1916759 Python: derive AggregatorTerminationStrategy from TerminationStrategy (#14594) [ #14591 ]
- 32c3469 Python: Fix default result_parser arity on kernel function strategies (#14595) [ #14589 ]
- bce5801 Python: fix(google_ai): report more Gemini finish reasons as content_filter (#14632)
- 5377800 Python: Cover callable and mixed Postgres search filters (#14313) [ #14497, #14311 ]
- 2281d4d Python: add typing.Literal support to KernelJsonSchemaBuilder (#14514) [ #14511 ]
- 2a3236d Python: feat: support path item parameters and non-method keys in OpenAPI parser (#14588) [ #14581 ]
- c79a160 Python: Fix in-memory upserts with key storage names (#14548) [ #14547 ]
- 555c46b Python: Stop doubling apostrophes in Chroma and Weaviate filter values (#14560) [ #14559 ]
- f37f308 Python: Fix Qdrant vector search on qdrant-client 1.16+ (#14562) [ #14561 ]
- 2774526 Python: Initialize key mapping for a custom FAISS index (#14569)
- 12361d9 Python: fix: write enum value in annotation XML type attribute (#14593) [ #14590 ]
- 63ac01f Python: fix: TimePlugin timeZoneOffset/timeZoneName return actual values (#14583) (#14604)
- fdbc2cc Python: fix(anthropic): report token usage as CompletionUsage (#14618)
- 80161f5 Python: Fix Cosmos MongoDB vector index kind set to similarity code (#14620) [ #14104 ]
- b11d98b Python: fix(ollama): preserve streamed parallel tool calls by assigning call index (#14623) [ #14614 ]
- cb59096 Python: fix: decode entities once in ChatHistory.from_rendered_prompt (#14624) [ #14619 ]
- 06368f4 Python: fix: honor include_in_function_choices in Anthropic, Bedrock, Google AI, and Vertex AI tool formatters (#14625) [ #14615 ]
- 5cea835 Python: fix a None default being reported as a required parameter (#14626)
- c072a8b Python: fix(python): set Mistral metadata usage to CompletionUsage instead of tuple (#14629) [ #14617 ]
- c28d64d Python: fix(bedrock): map guardrail_intervened and model_context_window_exceeded stop reasons (#14631)
- 2ebeb95 Python: Release the AgentChat activity signal when a message is rejected (#14640) [ #14638 ]
- 5e6e461 Python: Preserve already-typed native function arguments (#14643) [ #14642 ]
- 84d4027 Python: Account for intercepted messages when stopping the runtime (#14656)
- ecb80bd Python: keep existing summaries after the system message in the summa… (#14661)
- df34878 Bump werkzeug from 3.1.6 to 3.1.9 in /python/samples/demos/mcp_with_oauth (#14556) [ #3207, #3189, #3231, #3236, #3237, #3245, #3248, #3251, #3253, #3254, #3255, #3142, #3128, #3127, #3134, #3113, #3088, #3108, #3121, #3309, #3261 ]
- c40adc4 Bump pyjwt from 2.13.0 to 2.15.0 in /python/samples/demos/mcp_with_oauth (#14555) [ #1202, #1208, #914, #1173, #1174, #1201, #1179, #1212, #1210 ]
- 076ec46 Python: Bump mcp from 1.28.1 to 1.30.0 in /python/samples/demos/mcp_with_oauth/server (#14628) [ #3448, #3426, #3431, #3451, modelcontextprotocol/python-sdk#3396, modelcontextprotocol/python-sdk#3426, modelcontextprotocol/python-sdk#3431, modelcontextprotocol/python-sdk#3448, modelcontextprotocol/python-sdk#3451, modelcontextprotocol/python-sdk#3352, modelcontextprotocol/python-sdk#3344, #3377, #3344, #3352, #3177, #3082 ]
- 2044447 Python: Bump aiohttp from 3.14.3 to 3.14.4 in /python/samples/demos/mcp_with_oauth (#14630)
- 483ffb4 Python: fix(python): Pin HttpPlugin requests to validated DNS addresses (#14649)
- a08e050 Python: Preserve configured search filters for invalid overrides (#14645)
- 1b22fd7 Python: Fix Cosmos hybrid search field validation (#14650)
- 6f1ae42 fix(ci): match Python coverage reports to their workflow run (#14651)
- 50add35 Python: Clarify tool invocation authorization boundaries (#14647)
- e92e519 Python: docs(python): clarify prompt template trust boundary (#14648)
- 382fe5a .Net: Reject dot segments in session upload paths (#14646)
- 2550183 Python: Validate PostgreSQL collection field types (#14611)
- 7a92cd4 Python: fix(python): reject dot-segment remote paths in SessionsPythonTool.upload_file (#14563) [ #14520, #13478, #14085, #14140 ]
- 7e68276 fix(ci): select integration test events explicitly (#14603)
- 5b4a326 .Net: Remove migrated .NET Chroma connector (#14579)
- 1b1f64b Python: Avoid logging function argument values (#14574)
- 11f0723 .Net: Improve OpenAPI HTTP connection handling (#14570)
- cc8a15f .Net: Bound element nesting depth in XML prompt parsing (#14504)
This list of changes was auto generated.