What's Changed
- .Net: Bound element nesting depth in XML prompt parsing by @rogerbarreto in #14504
- .Net: Improve OpenAPI HTTP connection handling by @SergeyMenshykh in #14570
- Python: Avoid logging function argument values by @eavanvalkenburg in #14574
- .Net: Remove migrated .NET Chroma connector by @adamsitnik with @Copilot in #14579
- fix(ci): select integration test events explicitly by @baywet in #14603
- Python: fix(python): reject dot-segment remote paths in SessionsPythonTool.upload_file by @Winoren in #14563
- Python: Validate PostgreSQL collection field types by @jpalvarezl in #14611
- .Net: Reject dot segments in session upload paths by @eavanvalkenburg in #14646
- Python: docs(python): clarify prompt template trust boundary by @eavanvalkenburg in #14648
- Python: Clarify tool invocation authorization boundaries by @eavanvalkenburg in #14647
- fix(ci): match Python coverage reports to their workflow run by @baywet in #14651
- Python: Fix Cosmos hybrid search field validation by @eavanvalkenburg in #14650
- Python: Preserve configured search filters for invalid overrides by @eavanvalkenburg in #14645
- Python: fix(python): Pin HttpPlugin requests to validated DNS addresses by @eavanvalkenburg in #14649
- Python: Bump mcp from 1.28.1 to 1.30.0 in /python/samples/demos/mcp_with_oauth/server by @dependabot[bot] in #14628
- Python: Bump aiohttp from 3.14.3 to 3.14.4 in /python/samples/demos/mcp_with_oauth by @dependabot[bot] in #14630
- Bump pyjwt from 2.13.0 to 2.15.0 in /python/samples/demos/mcp_with_oauth by @dependabot[bot] in #14555
- Bump werkzeug from 3.1.6 to 3.1.9 in /python/samples/demos/mcp_with_oauth by @dependabot[bot] in #14556
- Python: keep existing summaries after the system message in the summa… by @alphasafal in #14661
- Python: Preserve already-typed native function arguments by @original4422 in #14643
- Python: Account for intercepted messages when stopping the runtime by @KevinAndrewDong in #14656
- Python: Release the AgentChat activity signal when a message is rejected by @Michael-Duck in #14640
- Python: fix: honor include_in_function_choices in Anthropic, Bedrock, Google AI, and Vertex AI tool formatters by @wasim-builds in #14625
- Python: fix a None default being reported as a required parameter by @feiiiiii5 in #14626
- Python: fix(bedrock): map guardrail_intervened and model_context_window_exceeded stop reasons by @pcbeingused333 in #14631
- Python: fix(python): set Mistral metadata usage to CompletionUsage instead of tuple by @hardikkaurani in #14629
- Python: fix: decode entities once in ChatHistory.from_rendered_prompt by @wasim-builds in #14624
- Python: fix(ollama): preserve streamed parallel tool calls by assigning call index by @wasim-builds in #14623
- Python: Fix Cosmos MongoDB vector index kind set to similarity code by @zhgao in #14620
- Python: fix(anthropic): report token usage as CompletionUsage by @pcbeingused333 in #14618
- Python: fix: TimePlugin timeZoneOffset/timeZoneName return actual values (#14583) by @jeevan1098 in #14604
- Python: fix: write enum value in annotation XML type attribute by @CRYPTONIKAV in #14593
- Python: Initialize key mapping for a custom FAISS index by @aswanth-07 in #14569
- Python: Stop doubling apostrophes in Chroma and Weaviate filter values by @VANDRANKI in #14560
- Python: Fix Qdrant vector search on qdrant-client 1.16+ by @guptaishaan in #14562
- Python: Fix in-memory upserts with key storage names by @fhgffy in #14548
- Python: feat: support path item parameters and non-method keys in OpenAPI parser by @AAGAM17 in #14588
- Python: add typing.Literal support to KernelJsonSchemaBuilder by @VANDRANKI in #14514
- Python: Cover callable and mixed Postgres search filters by @tgolob in #14313
- Python: fix(google_ai): report more Gemini finish reasons as content_filter by @pcbeingused333 in #14632
- Python: Fold negative filter literals before vector-store parsers by @er-s-an in #14572
- Python: derive AggregatorTerminationStrategy from TerminationStrategy by @Fire162 in #14594
- Python: Fix default result_parser arity on kernel function strategies by @Li-john1021 in #14595
- Python: fix(python): Fix VolatileMemoryStore.get_nearest_matches on empty collection by @jeevan1098 in #14565
- Python: update to files.get_content by @majguo in #13159
- Python: FIX: honor overwrite=False for default execution settings in PromptTemplateConfig by @inchang-ing in #14586
- Python: fix(python): preserve Pydantic field descriptions in schemas by @cstolting-collab in #14454
- Pin GitHub Actions to full-length commit SHAs by @danfiedler-msft in #14568
- Python: fix(python): preserve Annotated metadata in kernel functions by @AnvitDevadiga in #14496
- Python: chroma collection_exists catches too much, ensure_collection_deleted too little by @ericdelorefice in #14510
- Python: Cosmos NoSQL collection_exists reports a throttled request as a missing container by @ericdelorefice in #14515
- Python: Combine multiple InMemoryCollection filters with AND by @VANDRANKI in #14540
- Python: fix(python): preserve empty tool results in chat history by @reginaldalfret in #14472
- Python: fix(python): keep ChatMessageContent.to_prompt a str when encoding is set by @feiiiiii5 in #14464
- Python: fix(anthropic): map every Anthropic stop reason instead of raising KeyError by @pcbeingused333 in #14616
- Python: await get_nearest_matches in VolatileMemoryStore.get_nearest_match by @FOWEPJF255 in #14580
- Python: Reject bytes in prompt template argument encoding by @eavanvalkenburg in #14669
- Python: Bump Python version to 1.46.0 for a release by @eavanvalkenburg in #14672
New Contributors
- @Winoren made their first contribution in #14563
- @jpalvarezl made their first contribution in #14611
- @alphasafal made their first contribution in #14661
- @original4422 made their first contribution in #14643
- @KevinAndrewDong made their first contribution in #14656
- @Michael-Duck made their first contribution in #14640
- @wasim-builds made their first contribution in #14625
- @feiiiiii5 made their first contribution in #14626
- @pcbeingused333 made their first contribution in #14631
- @hardikkaurani made their first contribution in #14629
- @zhgao made their first contribution in #14620
- @jeevan1098 made their first contribution in #14604
- @CRYPTONIKAV made their first contribution in #14593
- @aswanth-07 made their first contribution in #14569
- @VANDRANKI made their first contribution in #14560
- @guptaishaan made their first contribution in #14562
- @fhgffy made their first contribution in #14548
- @AAGAM17 made their first contribution in #14588
- @tgolob made their first contribution in #14313
- @er-s-an made their first contribution in #14572
- @Fire162 made their first contribution in #14594
- @Li-john1021 made their first contribution in #14595
- @majguo made their first contribution in #13159
- @inchang-ing made their first contribution in #14586
- @cstolting-collab made their first contribution in #14454
- @AnvitDevadiga made their first contribution in #14496
- @ericdelorefice made their first contribution in #14510
- @reginaldalfret made their first contribution in #14472
- @FOWEPJF255 made their first contribution in #14580
Full Changelog: python-1.45.0...python-1.46.0