Releases: Azure-Samples/azure-search-openai-demo
Release list
2026-07-17: Upgrade agentic knowledge base to GPT-5.4 and default to "minimal" retrieval effort
This release upgrades the agentic knowledge base deployment to GPT-5.4 and changes the default retrieval reasoning effort to minimal, reducing mean retrieval latency by 31% in evaluation while maintaining comparable answer quality.
It also fixes agentic knowledge base creation with cloud ingestion, allowing both features to be enabled simultaneously.
An unrelated fix ensures azd hooks load the intended target environment based on AZURE_ENV_NAME, improving support for coding agents working in parallel on the repository.
What's Changed
- Fix azd target environment loading in hooks by Pamela Fox (@pamelafox) in #3161
- Upgrade agentic knowledge base to GPT-5.4 by Pamela Fox (@pamelafox) in #3164
- Default agentic retrieval reasoning effort to minimal by Pamela Fox (@pamelafox) in #3167
- Fix agentic knowledge base creation with cloud ingestion by bf-2026 (@bf-2026) in #3166
Full Changelog: 2026-07-10...2026-07-17
2026-07-10: Migrate to Foundry project, upgrade to gpt-5.4 for evaluation model judge
This release migrates the app's infrastructure from a classic Azure OpenAI (kind: 'OpenAI') Cognitive Services account to a Microsoft Foundry account and project (kind: 'AIServices'), so models are now deployed inside a real Foundry project that you can open in the new Foundry portal. Evaluations were also upgraded to use the gpt-5.4 model. Stay tuned for a future release that upgrades evaluations to use the new Foundry evaluation SDK.
What's Changed
- Upgrade eval model to gpt-5.4 and copy evaltools into evals/ by Pamela Fox (@pamelafox) in #3157
- Migrate to Microsoft Foundry account + project (resolves #3084) by Pamela Fox (@pamelafox) in #3158
Full Changelog: 2026-07-09b...2026-07-10
2026-07-09b: Upgrade msal JS packages to 5.x
This PR upgrades @azure/msal-browser to 5.17, which required adding a dedicated redirect bridge page that calls msal JS functions, and improved EasyAuth integration on the JS side as well.
What's Changed
- Upgrade msal-browser to 5.17 + msal-react to 5.5 bundled with required popup redirect-bridge scaffolding by Pamela Fox (@pamelafox) in #3148
Full Changelog: 2026-07-09...2026-07-09b
2026-07-09: Drop Node 20, upgrade to Vite 8, and harden auth
This release drops support for Node 20 (now EOL) and moves the frontend build to Vite 8 with esbuild 0.27, so a Node 22+ toolchain is now required for local development and CI.
It also brings several authentication reliability fixes: secrets are now regenerated when Entra app registrations are recreated after manual deletion (#3141), and the /auth_setup fetch now handles the Easy Auth redirect to avoid CORS errors after logout (#3144).
This release also includes an upgrade to azure-search-documents 12.1.0b1 (#3137), a fix for main.bicep to improve compatibility with Bicep language version 2.0 (#3147), and routine dependency bumps across the Python backend and frontend.
What's Changed
- chore(deps): bump pyjwt from 2.12.0 to 2.13.0 in /app/backend by Dependabot (@dependabot)[bot] in #3094
- chore(deps): upgrade msal to 1.37.0 and cryptography to 49.0.0 by Pamela Fox (@pamelafox) in #3138
- chore(deps): upgrade @azure/msal-browser to 5.17 and @azure/msal-react to 5.5 by Pamela Fox (@pamelafox) in #3139
- chore(deps): upgrade msgraph-sdk to 1.58.0 and microsoft-kiota-* to 1.11.7 by Pamela Fox (@pamelafox) in #3140
- fix(auth): regenerate secrets when Entra apps are recreated after manual deletion by Pamela Fox (@pamelafox) in #3141
- fix(infra): use resolved storage account name for aca-auth token store by Pamela Fox (@pamelafox) in #3142
- Upgrade azure-search-documents to 12.1.0b1 by Pamela Fox (@pamelafox) in #3137
- Handle Easy Auth redirect on /auth_setup fetch to fix CORS after logout by Pamela Fox (@pamelafox) in #3144
- chore(deps): upgrade vite to 8, esbuild to 0.27, drop Node 20 support by Dependabot (@dependabot)[bot] in #3093
- Revert "chore(deps): upgrade @azure/msal-browser to 5.17 and @azure/msal-react to 5.5" (#3139) by Pamela Fox (@pamelafox) in #3149
- chore(deps): bump DavidAnson/markdownlint-cli2-action from 23 to 24 in the github-actions group by Dependabot (@dependabot)[bot] in #3150
- chore(deps): bump click from 8.4.1 to 8.4.2 in the pallets group by Dependabot (@dependabot)[bot] in #3151
- chore(deps): bump pymupdf from 1.27.2.3 to 1.28.0 by Dependabot (@dependabot)[bot] in #3152
- chore(deps-dev): bump prettier from 3.8.1 to 3.9.4 in /app/frontend by Dependabot (@dependabot)[bot] in #3154
- chore(deps-dev): bump @types/node from 26.0.1 to 26.1.1 in /app/frontend by Dependabot (@dependabot)[bot] in #3156
- chore(deps-dev): bump rollup-plugin-visualizer from 5.12.0 to 7.0.1 in /app/frontend by Dependabot (@dependabot)[bot] in #3155
- Fix main.bicep languageVersion 2.0 fragility (#3146) by Pamela Fox (@pamelafox) in #3147
Full Changelog: 2026-07-07...2026-07-09
2026-07-07: Bug fixes: Chromium 150 chat crash and CSV OOM
A recent Chromium release caused a bug in the chat interface, affecting users of both Chrome and Edge browsers. If this is affecting your app, bring in the fix from #3134
What's Changed
- Refresh eval result baselines by Pamela Fox (@pamelafox) in #3089
- chore(deps): bump actions/checkout from 6 to 7 in the github-actions group by Dependabot (@dependabot)[bot] in #3104
- chore(deps): bump pypdf from 6.10.2 to 6.13.3 in /app/backend by Dependabot (@dependabot)[bot] in #3103
- chore(deps): bump soupsieve from 2.7 to 2.8.4 by Dependabot (@dependabot)[bot] in #3100
- chore(deps): bump dompurify from 3.4.0 to 3.4.11 in /app/frontend by Dependabot (@dependabot)[bot] in #3102
- chore(deps-dev): bump @babel/core from 7.28.0 to 7.29.7 in /app/frontend by Dependabot (@dependabot)[bot] in #3097
- Add grouped eval summaries by Pamela Fox (@pamelafox) in #3095
- chore(deps): bump aiohttp from 3.14.0 to 3.14.1 by Dependabot (@dependabot)[bot] in #3114
- Make local dev server port configurable via PORT/BACKEND_PORT env vars by Pamela Fox (@pamelafox) in #3117
- Cleanup skills/prompts/etc by Pamela Fox (@pamelafox) in #3121
- Log startup warning when SharePoint source is enabled without ACL enforcement by Pamela Fox (@pamelafox) with @Copilot in #3126
- bump markdown-checker to 1.3.1 by John Aziz (@john0isaac) in #3132
- Group CSV rows into pages to avoid OOM in cloud ingestion by John CSA (@jluocsa) in #3070
- Fix chat crash in Chromium 150 by dillyfishh in #3134
New Contributors
- dillyfishh made their first contribution in #3134
Full Changelog: 2026-06-11...2026-07-07
2026-06-11: Upgrade default chat model to gpt-5.4-mini
The app now defaults to gpt-5.4-mini for chat with reasoning_effort=low and top=5, replacing gpt-4.1-mini as the default deployment path for new environments. This is aimed at a better speed/quality balance while maintaining strong grounding and citation behavior.
Why this default
We ran evaluations on our sample data, and this combination had the best metrics of the models and settings we tried. We also looked at the full gpt-5.4 model, other reasoning efforts levels, and other values for top. The metrics are slightly lower than gpt-4.1-mini in some cases, but that difference seems fairly dependent on the sample data used. As always, we encourage you to run your own evaluations on your domain data.
How to customize
You can still modify the app to use different models and settings, per the documentation.
- Change chat model/deployment/version: see docs/deploy_features.md#using-different-chat-models (and existing-resource setup in docs/deploy_existing.md).
- Adjust reasoning effort defaults: see docs/reasoning.md.
- Change retrieval settings like
top: see docs/customization.md
What's changed
- Bump pillow from 12.1.1 to 12.2.0 in /app/backend by Dependabot (@dependabot)[bot] in #3037
- Bump actions/github-script from 8 to 9 in the github-actions group by Dependabot (@dependabot)[bot] in #3036
- Bump the pallets group with 2 updates by Dependabot (@dependabot)[bot] in #3035
- Bump react-helmet-async from 2.0.5 to 3.0.0 in /app/frontend by Dependabot (@dependabot)[bot] in #3034
- Bump dompurify and @types/dompurify in /app/frontend by Dependabot (@dependabot)[bot] in #3033
- Bump the pydantic group with 2 updates by Dependabot (@dependabot)[bot] in #3032
- Bump pypdf from 6.9.2 to 6.10.0 in /app/backend by Dependabot (@dependabot)[bot] in #3031
- Bump pypdf from 6.10.0 to 6.10.1 in /app/backend by Dependabot (@dependabot)[bot] in #3039
- Bump dompurify from 3.3.3 to 3.4.0 in /app/frontend by Dependabot (@dependabot)[bot] in #3040
- Bump pypdf from 6.10.1 to 6.10.2 in /app/backend by Dependabot (@dependabot)[bot] in #3041
- Bump python-dotenv from 1.1.1 to 1.2.2 in /app/backend by Dependabot (@dependabot)[bot] in #3048
- Remove PR evaluation workflow by Pamela Fox (@pamelafox) in #3062
- fix(i18n): remove stale keys from non-EN locales by John CSA (@jluocsa) in #3065
- Upgrade eval model from gpt-4o to gpt-4.1 by Pamela Fox (@pamelafox) in #3066
- Bump postcss from 8.5.6 to 8.5.15 in /app/frontend by Dependabot (@dependabot)[bot] in #3063
- Bump idna from 3.10 to 3.15 in /app/backend by Dependabot (@dependabot)[bot] in #3061
- Bump langchain from 0.3.17 to 0.3.30 in /evals by Dependabot (@dependabot)[bot] in #3059
- Bump urllib3 from 2.6.3 to 2.7.0 in /app/backend by Dependabot (@dependabot)[bot] in #3058
- Bump microsoft-kiota-http from 1.9.3 to 1.9.9 in /app/backend by Dependabot (@dependabot)[bot] in #3056
- Bump i18next-http-backend from 3.0.1 to 3.0.5 in /app/frontend by Dependabot (@dependabot)[bot] in #3049
- Bump azure-core from 1.38.0 to 1.39.0 by Dependabot (@dependabot)[bot] in #3046
- Bump Azure/setup-azd from 2.2.1 to 2.3.0 in the github-actions group across 1 directory by Dependabot (@dependabot)[bot] in #3045
- Bump i18next-browser-languagedetector from 8.0.2 to 8.2.1 in /app/frontend by Dependabot (@dependabot)[bot] in #3043
- Bump the pydantic group across 1 directory with 2 updates by Dependabot (@dependabot)[bot] in #3044
- Bump react-router-dom from 7.13.1 to 7.16.0 in /app/frontend by Dependabot (@dependabot)[bot] in #3076
- Bump click from 8.3.2 to 8.4.1 in the pallets group by Dependabot (@dependabot)[bot] in #3075
- Fix locale key parity: remove stale i18n keys and add guard test by John CSA (@jluocsa) in #3067
- Bump typescript from 5.6.3 to 6.0.3 in /app/frontend by Dependabot (@dependabot)[bot] in #3073
- Bump aiohttp from 3.13.4 to 3.14.0 in /app/backend by Dependabot (@dependabot)[bot] in #3077
- Fix pydantic-core Dependabot update by restoring compatible pin and preventing failing pydantic bumps by Dependabot (@dependabot)[bot] in #3074
- Bump pymupdf from 1.26.0 to 1.27.2.3 by Dependabot (@dependabot)[bot] in #3078
- Bump idb from 8.0.0 to 8.0.3 in /app/frontend by Dependabot (@dependabot)[bot] in #3081
- Remove prettier from pre-commit hooks by Pamela Fox (@pamelafox) in #3082
- Surface ACL authorization forwarding in Thought Process (#2872) by John CSA (@jluocsa) in #3071
- Bump requests from 2.33.0 to 2.34.2 by Dependabot (@dependabot)[bot] in #3086
- Bump vite from 6.4.2 to 6.4.3 in /app/frontend by Dependabot (@dependabot)[bot] in #3085
- Upgrade default chat model to gpt-5.4-mini with reasoning=low and top=5 by Pamela Fox (@pamelafox) in #3038
New Contributors
- John CSA (@jluocsa) made their first contribution in #3065
Full Changelog: 2026-04-10...2026-06-11
2026-04-10: Migrate to OpenAI Responses API
This release migrates the entire application from the OpenAI Chat Completions API to the Responses API, and updates the backend-frontend wire protocol to match the new API shape. The Responses API is OpenAI's recommended API for all new projects, offering better reasoning model performance, lower costs through improved cache utilization, easy access to built-in tools like code_interpreter (which we will add support as optional features in the future). See the OpenAI responses migration guide for full details.
⚠️ Breaking change: Wire protocol updated
IMPORTANT: The HTTP contract between the frontend and backend has changed. If you have a custom frontend or any client that talks to the
/chator/chat/streamendpoints, you must update it.
Non-streaming responses: The message object (with content, role, tool_calls) has been replaced by a top-level output_text string.
Before:
{"message": {"content": "Answer text...", "role": "assistant"}, "context": {...}}After:
{"output_text": "Answer text...", "context": {...}}Streaming responses: The delta object has been replaced by typed events matching the Responses API streaming format.
Before:
{"delta": {"role": "assistant"}, "context": {...}}
{"delta": {"content": "The"}}After:
{"type": "response.context", "context": {...}}
{"type": "response.output_text.delta", "delta": "The"}See the updated HTTP Protocol docs for full details.
Main changes made for Responses API migration
Backend
- All
chat.completions.createcalls replaced withresponses.create - Message format changed from
messageslist toinput(usingEasyInputMessageParam) - Parameters updated:
max_tokens→max_output_tokens,seedremoved,store=Falseadded
Frontend
- Answer parser updated for Responses API shaped server outputs
- Seed setting removed from Developer Settings (not supported by Responses API)
- Temperature field hidden when a reasoning model is deployed
Model support
- GPT-5.x family support with prefix-based detection (
model.startswith("gpt-5")) - Dynamic reasoning effort options based on model version (low/medium/high/xhigh)
- Reasoning effort options sent via
/configendpoint, rendered dynamically in UI
Documentation
- http_protocol.md rewritten for Responses API wire format
- "ChatCompletion" references updated across customization.md, reasoning.md, multimodal.md, deploy_features.md, and other_samples.md
All PRs merged since last release
- Remove unused --skipblobs argument from prepdocs.py by Pamela Fox (@pamelafox) in #2942
- Upgrade telemetry packages using uv pip compile by @Copilot in #2941
- Bump frozenlist from 1.4.1 to 1.8.0 by Dependabot (@dependabot)[bot] in #2947
- Upgrade React from 18 to 19 by Pamela Fox (@pamelafox) in #2960
- Fix ty type checker failures in nightly jobs by @Copilot in #2982
- Upgrade to fluent ui 9 by Enrique Moreno (@chuwik) in #2983
- Fix ty nightly type error and pin ty to 0.0.21 by @Copilot in #2998
- Bump dompurify from 3.2.4 to 3.3.2 in /app/frontend by Dependabot (@dependabot)[bot] in #3000
- Bump actions/upload-artifact from 6 to 7 in the github-actions group by Dependabot (@dependabot)[bot] in #2991
- Bump rollup from 4.46.1 to 4.59.0 in /app/frontend by Dependabot (@dependabot)[bot] in #2989
- Bump pillow from 12.0.0 to 12.1.1 in /app/backend by Dependabot (@dependabot)[bot] in #2973
- Bump cryptography from 44.0.1 to 46.0.5 in /app/backend by Dependabot (@dependabot)[bot] in #2972
- Bump std-uritemplate from 2.0.5 to 2.0.8 by Dependabot (@dependabot)[bot] in #2968
- Bump pypdf from 6.6.2 to 6.8.0 in /app/backend by Dependabot (@dependabot)[bot] in #2999
- Bump flask from 3.1.2 to 3.1.3 in /app/backend by Dependabot (@dependabot)[bot] in #2977
- Bump werkzeug from 3.1.5 to 3.1.6 in /app/backend by Dependabot (@dependabot)[bot] in #2976
- Fix: Improve re-deploy idempotency for role assignments and Cognitive Services by @haileyhuber8 in #3009
- Bump cryptography from 46.0.5 to 46.0.6 in /app/backend by Dependabot (@dependabot)[bot] in #3016
- Bump pyjwt from 2.11.0 to 2.12.0 in /app/backend by Dependabot (@dependabot)[bot] in #3015
- Bump requests from 2.32.4 to 2.33.0 in /app/backend by Dependabot (@dependabot)[bot] in #3014
- Bump picomatch in /app/frontend by Dependabot (@dependabot)[bot] in #3013
- Bump pypdf from 6.8.0 to 6.9.2 in /app/backend by Dependabot (@dependabot)[bot] in #3012
- Bump azure/login from 2 to 3 in the github-actions group by Dependabot (@dependabot)[bot] in #3011
- fix: make Cognitive Services restore a configurable parameter by Pamela Fox (@pamelafox) in #3017
- Bump @fluentui/react-components from 9.73.1 to 9.73.3 in /app/frontend by Dependabot (@dependabot)[bot] in #3004
- Bump react-router-dom from 7.12.0 to 7.13.1 in /app/frontend by Dependabot (@dependabot)[bot] in #3002
- Bump pygments from 2.19.2 to 2.20.0 in /app/backend by Dependabot (@dependabot)[bot] in #3022
- Bump the github-actions group with 2 updates by Dependabot (@dependabot)[bot] in #3019
- Bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /app/frontend by Dependabot (@dependabot)[bot] in #3020
- Use conditional deployment for cloud ingestion functions in azure.yaml by Pamela Fox (@pamelafox) in #3021
- Fix data ingestion 400 error when text tokens exceed embedding batch limit by Pamela Fox (@pamelafox) in #3025
- Bump vite from 6.4.1 to 6.4.2 in /app/frontend by Dependabot (@dependabot)[bot] in #3026
- Bump @fluentui/react-table from 9.19.11 to 9.19.14 in /app/frontend by Dependabot (@dependabot)[bot] in #3024
- Bump aiohttp from 3.13.3 to 3.13.4 in /app/backend by Dependabot (@dependabot)[bot] in #3023
- Bump prettier from 3.3.3 to 3.8.1 in /app/frontend by Dependabot (@dependabot)[bot] in #3018
- Bump tenacity from 9.1.2 to 9.1.4 by Dependabot (@dependabot)[bot] in #2970
- Bump cryptography from 46.0.6 to 46.0.7 in /app/backend by Dependabot (@dependabot)[bot] in #3027
- Migrate from Chat Completions to Responses API by Pamela Fox (@pamelafox) in #3028
- Update backend-frontend contract to Responses API shape by Pamela Fox (@pamelafox) in #3029
New Contributors
- @haileyhuber8 made their first contribution in #3009
Full Changelog: 2026-02-06...2026-04-10
2026-02-06: Port from Prompty to Jinja2 for prompt templating
We were previously using Prompty for prompt templating. We have moved from Prompty to Jinja2 since we are preparing to move from Chat Completions to Responses (which Prompty does not support), plus Prompty did not achieve wide community adoption. Jinja2 is a widely supported templating framework, and Prompty was based off Jinja2, so the prompt templates look similar. However, we are only using Jinja2 to template individual messages, not the entire conversation like before.
What's Changed
- Fix multimodal image download from non-default blob container by Pamela Fox (@pamelafox) in #2951
- Bump certifi from 2024.7.4 to 2026.1.4 by Dependabot (@dependabot)[bot] in #2949
- Bump pyjwt from 2.10.1 to 2.11.0 by Dependabot (@dependabot)[bot] in #2948
- Revert Yarn GPG workaround and use built-in devcontainer image by @Copilot in #2956
- Fix ty type checker errors breaking nightly jobs by @Copilot in #2958
- Migrate from Prompty to Jinja2 for prompt templates by Pamela Fox (@pamelafox) in #2953
Full Changelog: 2026-01-27...2026-02-06
ACL support for cloud ingestion pipeline
This release adds Access Control List (ACL) support for the cloud ingestion pipeline, enabling document-level security filtering in Azure AI Search. Documents stored in Azure Data Lake Storage Gen2 can now have their ACLs automatically extracted during indexing.
⚠️ Breaking change: ADLS local file strategy removed
IMPORTANT: The previous "ADLS local file strategy" (using
prepdocsdirectly against Azure Data Lake Storage) has been deprecated and removed. If you were using that approach in earlier versions of this sample, you must migrate to the cloud ingestion flow described in Cloud ingestion with Azure Data Lake Storage Gen2, which runs ingestion in Azure Functions and the Azure AI Search indexer instead of on the client machine.
How it works
Cloud ingestion with ACLs
- Automatic ACL extraction from ADLS Gen2 files during indexing
- Extracts user IDs (
oids) and group IDs (groups) with read permission - Supports global document access via the ADLS "other" ACL entry when
AZURE_ENABLE_GLOBAL_DOCUMENT_ACCESS=true - Indexes document chunks in Azure AI Search with
oidsandgroupsfields
Bring Your Own (BYO) ADLS Storage Account
- Use an existing ADLS Gen2 account instead of provisioning a new one
- Support for ADLS accounts in different resource groups
- Automatic RBAC role assignment at the storage account level
New environment variables
| Variable | Description |
|---|---|
USE_CLOUD_INGESTION_ACLS |
Enable ACL extraction from ADLS Gen2 (requires USE_CLOUD_INGESTION=true) |
USE_EXISTING_ADLS_STORAGE |
Use an existing ADLS account instead of provisioning a new one |
AZURE_ADLS_GEN2_STORAGE_ACCOUNT |
Name of the ADLS storage account (required when USE_EXISTING_ADLS_STORAGE=true) |
AZURE_ADLS_GEN2_STORAGE_RESOURCE_GROUP |
Resource group for BYO ADLS (optional, defaults to main resource group) |
Migration guide
If you were previously using the ADLS local file strategy:
- Set
USE_CLOUD_INGESTION=trueandUSE_CLOUD_INGESTION_ACLS=true - Un-comment the function lines in azure.yaml.
- Run
azd upto deploy the cloud ingestion Azure Functions - Upload documents to the ADLS storage account (check
AZURE_ADLS_STORAGE_ACCOUNToutput) - Set ACLs on files using Azure Storage Explorer
- Run setup_cloud_ingestion.sh to trigger the indexer
- Run scripts/verify_search_index_acls.py to verify ACL filtering is working correctly.
See the updated login_and_acl.md for complete setup instructions.
What's changed
- Add ACL support for cloud ingestion pipeline by Pamela Fox (@pamelafox) in #2917
Full Changelog: 2026-01-26...2026-01-27
2026-01-26: "Stop" button in chat frontend
This release includes these two changes to the frontend:
- Stop button for streaming responses (#2909) - Users can now cancel AI responses mid-generation using a new stop button. Helpful when the response isn't useful or you want to ask a different question.
- No more chat input length limit (#2908) - Removed the frontend 1000-character cap on chat input. The text area now auto-grows and scrolls, letting users paste long prompts. Backend context window errors are properly surfaced if limits are reached.
This release makes one bug fix for developers using manageacl.py:
- ACL management permissions fix (#2912) - Fixed
manageacl.pyto usex-ms-enable-elevated-readheader when querying documents, allowing the script to see documents without ACLs yet.
This release includes these improvements to development tools used with the repo:
- Migrated from mypy to ty type checker (#2911) - upgraded to the much faster type checker.
- Updated chat agents configuration (#2907) - Ported VS Code chat modes to the new chat agents format.
- DevContainer fix (#2931) - Removed Yarn repo with expired GPG key that was breaking devcontainer builds for GitHub Codespaces.
Many packages were also upgraded, per the PRs below.
What's Changed
- Port chat modes to chat agents by Pamela Fox (@pamelafox) in #2907
- Fix #2399: Remove limit on chat input length by Pamela Fox (@pamelafox) in #2908
- Add prompt to review PR comments by Pamela Fox (@pamelafox) in #2914
- Add stop button to cancel streaming responses by Pamela Fox (@pamelafox) in #2909
- Bump click from 8.3.0 to 8.3.1 in the pallets group by Dependabot (@dependabot)[bot] in #2904
- Bump rapidfuzz from 3.14.1 to 3.14.3 by Dependabot (@dependabot)[bot] in #2905
- Bump ndjson-readablestream from 1.2.0 to 1.4.0 in /app/frontend by Dependabot (@dependabot)[bot] in #2899
- Bump the pydantic group with 2 updates by Dependabot (@dependabot)[bot] in #2903
- Migrate from mypy to ty type checker by Pamela Fox (@pamelafox) in #2911
- Update permissions for enabling global read and managing acls by Matt (@mattgotteiner) in #2912
- Upgrade black with minor formatting changes by Pamela Fox (@pamelafox) in #2928
- Bump cffi from 1.17.0 to 2.0.0 by Dependabot (@dependabot)[bot] in #2924
- Bump types-beautifulsoup4 from 4.12.0.20240511 to 4.12.0.20250516 by Dependabot (@dependabot)[bot] in #2923
- Bump hypercorn from 0.17.3 to 0.18.0 by Dependabot (@dependabot)[bot] in #2922
- Add GitHub PR inline reply skill for Copilot agent by Pamela Fox (@pamelafox) in #2930
- Fix devcontainer: remove Yarn repo with expired GPG key by Pamela Fox (@pamelafox) in #2931
- Docs: Update deployment docs with RBAC warnings and SKU clarifications by Pamela Fox (@pamelafox) in #2929
- Bump wsproto from 1.2.0 to 1.3.2 by Dependabot (@dependabot)[bot] in #2935
- Bump beautifulsoup4 from 4.12.3 to 4.14.3 by Dependabot (@dependabot)[bot] in #2933
- Bump azure-core from 1.35.0 to 1.38.0 in /app/backend by Dependabot (@dependabot)[bot] in #2916
- Upgrade pypdf to 6.6.2 using uv pip compile by @Copilot in #2939
Full Changelog: 2026-01-12...2026-01-26