{"id":26133,"name":"openai-agents","ecosystem":"pip","repository_url":"https://github.com/openai/openai-agents-python","issues_count":82,"created_at":"2025-06-07T04:36:22.803Z","updated_at":"2025-06-07T04:36:22.803Z","purl":"pkg:pypi/openai-agents","metadata":{"id":11403593,"name":"openai-agents","ecosystem":"pypi","description":"OpenAI Agents SDK","homepage":"https://github.com/openai/openai-agents-python","licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/openai/openai-agents-python","keywords_array":[],"namespace":null,"versions_count":16,"first_release_published_at":"2025-03-04T18:16:20.000Z","latest_release_published_at":"2025-05-21T20:07:37.000Z","latest_release_number":"0.0.16","last_synced_at":"2025-06-03T15:15:51.264Z","created_at":"2025-03-04T18:31:54.210Z","updated_at":"2025-06-03T15:16:19.269Z","registry_url":"https://pypi.org/project/openai-agents/","install_command":"pip install openai-agents --index-url https://pypi.org/simple","documentation_url":"https://openai-agents.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.9","Topic :: Software Development :: Libraries :: Python Modules","Typing :: Typed"],"normalized_name":"openai-agents"},"repo_metadata":{"id":281887741,"uuid":"946380199","full_name":"openai/openai-agents-python","owner":"openai","description":"A lightweight, powerful framework for multi-agent workflows","archived":false,"fork":false,"pushed_at":"2025-06-02T19:33:39.000Z","size":5126,"stargazers_count":11003,"open_issues_count":196,"forks_count":1586,"subscribers_count":152,"default_branch":"main","last_synced_at":"2025-06-03T04:16:51.397Z","etag":null,"topics":["agents","ai","framework","llm","openai","python"],"latest_commit_sha":null,"homepage":"https://openai.github.io/openai-agents-python/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-11T03:42:36.000Z","updated_at":"2025-06-03T04:09:59.000Z","dependencies_parsed_at":"2025-03-11T17:48:08.888Z","dependency_job_id":"b2c7ec30-c6c8-40b3-a889-2c365bfbf8fd","html_url":"https://github.com/openai/openai-agents-python","commit_stats":null,"previous_names":["openai/openai-agents-python"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openai","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257750544,"owners_count":22596001,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"openai","name":"OpenAI","uuid":"14957082","kind":"organization","description":"","email":null,"website":"https://openai.com/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/14957082?v=4","repositories_count":168,"last_synced_at":"2024-06-07T17:46:10.929Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/openai","funding_links":[],"total_stars":455261,"followers":80613,"following":0,"created_at":"2022-11-09T08:54:56.299Z","updated_at":"2024-06-07T17:46:14.764Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openai","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openai/repositories"},"tags":[{"name":"v0.0.14","sha":"f9763495b86afcf0c421451a92200e1141fa8dcb","kind":"commit","published_at":"2025-04-30T15:15:35.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.14","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.14/manifests"},{"name":"v0.0.13","sha":"3bbc7c48cb9ee80ed4b3dfbbd55efddf7f77d6a3","kind":"commit","published_at":"2025-04-24T18:58:38.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.13","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.13/manifests"},{"name":"v0.0.12","sha":"83ce49ec7e065a9688783341507b21af6a919de9","kind":"commit","published_at":"2025-04-22T03:06:09.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.12","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.12/manifests"},{"name":"v0.0.11","sha":"ca8e8bed5d0f33e8a0bc3eabd5f1b0a183e73765","kind":"commit","published_at":"2025-04-15T18:37:16.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.11","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"b978b4382ef7e6b7f78982e0d0a9c3c758ec886c","kind":"commit","published_at":"2025-04-15T02:48:01.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.10","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"9d3d6a58e56e1f2c114ed0530666bd4b50e54449","kind":"commit","published_at":"2025-04-07T23:27:19.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.9","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.9/manifests"},{"name":"v0.0.8","sha":"0396052dcd0290fceae0cec88ce2a8e5831fd6b0","kind":"commit","published_at":"2025-04-03T23:46:26.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.8","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.8/manifests"},{"name":"v0.0.7","sha":"7f02967156ba9dde363d440c269792c93dfb32d4","kind":"commit","published_at":"2025-03-26T16:06:24.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.7","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.7/manifests"},{"name":"v0.0.6","sha":"1e8930d6ae658f6e2f4e45746e52931ff7212076","kind":"commit","published_at":"2025-03-20T17:13:00.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.6","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"82754c7a8539f5a596a9accd2beddd322360b3e1","kind":"commit","published_at":"2025-03-19T16:35:15.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.5","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"691be073399a5a5fe5eaed14e3f2845e27c734ac","kind":"commit","published_at":"2025-03-13T15:19:46.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.4","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"8326dd9fa098bd9da2bfe03adfcbcd88c1ea612e","kind":"commit","published_at":"2025-03-11T22:30:57.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.3","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"72f443149a7b61c0661780ad1c5a2505c6abf6e3","kind":"commit","published_at":"2025-03-11T17:16:04.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.2","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"f21b0c108c9aaaba48b98ca94e9c7b6d68aced2d","kind":"commit","published_at":"2025-03-11T17:09:52.000Z","download_url":"https://codeload.github.com/openai/openai-agents-python/tar.gz/v0.0.1","html_url":"https://github.com/openai/openai-agents-python/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openai%2Fopenai-agents-python/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-06-03T15:16:19.269Z","dependent_packages_count":0,"downloads":856575,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":53.72384373871586,"dependent_packages_count":9.540647396155281,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":31.632245567435568},"purl":"pkg:pypi/openai-agents","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/openai-agents","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/openai-agents","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/openai-agents/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/openai-agents/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/openai-agents/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/openai-agents/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/openai-agents/related_packages","maintainers":[{"uuid":"kwhinnery-openai","login":"kwhinnery-openai","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/kwhinnery-openai/","role":"Owner","created_at":"2025-03-04T20:07:08.233Z","updated_at":"2025-03-04T20:07:08.233Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/kwhinnery-openai/packages"},{"uuid":"rm-openai","login":"rm-openai","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/rm-openai/","role":"Owner","created_at":"2025-03-10T02:12:56.214Z","updated_at":"2025-03-10T02:12:56.214Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/rm-openai/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690055,"maintainers_count":292646,"namespaces_count":0,"keywords_count":228482,"github":"pypi","metadata":{"funded_packages_count":48953},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-05T05:19:27.498Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":28,"unique_repositories_count_past_30_days":4,"recent_issues":[{"uuid":"4801945536","node_id":"PR_kwDOR335Os7tgbcc","number":59,"state":"closed","title":"Bump the pip-minor-patch group across 1 directory with 37 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-07-03T10:38:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-03T08:47:45.000Z","updated_at":"2026-07-03T10:38:43.000Z","time_to_close":6656,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-minor-patch","update_count":37,"packages":[{"name":"alembic","old_version":"1.14.1","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.13.0","new_version":"4.14.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.3.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"croniter","old_version":"6.2.2","new_version":"6.2.3","repository_url":"https://github.com/pallets-eco/croniter"},{"name":"fastapi","old_version":"0.135.3","new_version":"0.139.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastapi-cli","old_version":"0.0.24","new_version":"0.0.27","repository_url":"https://github.com/fastapi/fastapi-cli"},{"name":"fastapi-cloud-cli","old_version":"0.15.1","new_version":"0.22.1","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.5.3","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.1.0"},{"name":"httptools","old_version":"0.7.1","new_version":"0.8.0","repository_url":"https://github.com/MagicStack/httptools"},{"name":"idna","old_version":"3.11","new_version":"3.18","repository_url":"https://github.com/kjd/idna"},{"name":"jiter","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mako","old_version":"1.3.10","new_version":"1.3.12","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"mcp","old_version":"1.27.1","new_version":"1.28.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"openai","old_version":"2.36.0","new_version":"2.44.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openai-agents","old_version":"0.17.4","new_version":"0.17.7","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.1","new_version":"2.14.2","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyotp","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/pyauth/pyotp"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"redis","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/redis/redis-py"},{"name":"rich-toolkit","old_version":"0.20.0","new_version":"0.20.1"},{"name":"rpds-py","old_version":"2026.5.1","new_version":"2026.6.3","repository_url":"https://github.com/crate-py/rpds"},{"name":"rq","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/rq/rq"},{"name":"sentry-sdk","old_version":"2.57.0","new_version":"2.64.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.51","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sse-starlette","old_version":"3.4.4","new_version":"3.4.5","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"starlette","old_version":"1.0.0","new_version":"1.3.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.68.3","repository_url":"https://github.com/tqdm/tqdm"},{"name":"typer","old_version":"0.26.7","new_version":"0.26.8","repository_url":"https://github.com/fastapi/typer"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.1","new_version":"1.2.0","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-minor-patch group with 37 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.14.1` | `1.18.5` |\n| [anyio](https://github.com/agronholm/anyio) | `4.13.0` | `4.14.1` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.4.2` |\n| [croniter](https://github.com/pallets-eco/croniter) | `6.2.2` | `6.2.3` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.139.0` |\n| [fastapi-cli](https://github.com/fastapi/fastapi-cli) | `0.0.24` | `0.0.27` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.15.1` | `0.22.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.5.3` |\n| griffelib | `2.0.2` | `2.1.0` |\n| [httptools](https://github.com/MagicStack/httptools) | `0.7.1` | `0.8.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.18` |\n| [jiter](https://github.com/pydantic/jiter) | `0.14.0` | `0.16.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.3.12` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.27.1` | `1.28.1` |\n| [openai](https://github.com/openai/openai-python) | `2.36.0` | `2.44.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.17.4` | `0.17.7` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.1` | `2.14.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.47.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [pyotp](https://github.com/pyauth/pyotp) | `2.9.0` | `2.10.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.32` |\n| [redis](https://github.com/redis/redis-py) | `8.0.0` | `8.0.1` |\n| rich-toolkit | `0.20.0` | `0.20.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `2026.5.1` | `2026.6.3` |\n| [rq](https://github.com/rq/rq) | `2.9.0` | `2.10.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.64.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.51` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.4.4` | `3.4.5` |\n| [starlette](https://github.com/Kludex/starlette) | `1.0.0` | `1.3.1` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.68.3` |\n| [typer](https://github.com/fastapi/typer) | `0.26.7` | `0.26.8` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.49.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.1` | `1.2.0` |\n\n\nUpdates `alembic` from 1.14.1 to 1.18.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.5\u003c/h1\u003e\n\u003cp\u003eReleased: June 25, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003e--splice\u003c/code\u003e support to the \u003ccode\u003emerge()\u003c/code\u003e command. Previously, the\nmerge command would suggest using \u003ccode\u003e--splice\u003c/code\u003e when attempting to merge\nnon-head revisions, but the flag was not actually accepted by the command.\nThe \u003ccode\u003esplice\u003c/code\u003e parameter is now available in both the command-line\ninterface and the \u003ccode\u003ecommand.merge()\u003c/code\u003e function, matching the existing\nsupport in \u003ccode\u003ecommand.revision()\u003c/code\u003e.  Pull request courtesy Kadir Can\nOzden.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1712\"\u003e#1712\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [environment]\u003c/strong\u003e Added \u003ccode\u003eScriptDirectory.get_heads.consider_depends_on\u003c/code\u003e\nparameter to \u003ccode\u003eScriptDirectory.get_heads()\u003c/code\u003e. When set to \u003ccode\u003eTrue\u003c/code\u003e,\nhead revisions that are also a dependency of another revision via\n\u003ccode\u003edepends_on\u003c/code\u003e are excluded from the result, matching the effective\nheads that would be present in the \u003ccode\u003ealembic_version\u003c/code\u003e table after\nrunning all upgrades.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1806\"\u003e#1806\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed rendering of dialect keyword arguments containing\n\u003ccode\u003e~sqlalchemy.schema.Column\u003c/code\u003e objects within sequences, such as\n\u003ccode\u003epostgresql_include\u003c/code\u003e.  These were previously rendered using \u003ccode\u003erepr()\u003c/code\u003e,\nproducing invalid Python in the generated migration scripts.  Column\nobjects within list or tuple values are now correctly rendered as their\nstring column names.  Pull request courtesy Ajay Singh.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1258\"\u003e#1258\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Implemented type comparison for \u003ccode\u003eENUM\u003c/code\u003e datatypes on MySQL, which\nchecks that the individual enum values are equivalent.  If additional\nentries are on either side, this generates a diff.  Changes of order do not\ngenerate a diff.  Pull request courtesy Furkan Köykıran.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1745\"\u003e#1745\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/779\"\u003e#779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Fixed bug where the \u003ccode\u003einline_references\u003c/code\u003e parameter of\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e did not include foreign key referential\nactions such as \u003ccode\u003eON DELETE\u003c/code\u003e, \u003ccode\u003eON UPDATE\u003c/code\u003e, \u003ccode\u003eDEFERRABLE\u003c/code\u003e,\n\u003ccode\u003eINITIALLY\u003c/code\u003e, and \u003ccode\u003eMATCH\u003c/code\u003e when rendering the inline \u003ccode\u003eREFERENCES\u003c/code\u003e\nclause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.13.0 to 4.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed teardown of higher-scoped async fixtures failing on asyncio with \u003ccode\u003eRuntimeError: Attempted to exit cancel scope in a different task than it was entered in\u003c/code\u003e when an async test raise an outcome exception (e.g., \u003ccode\u003epytest.skip()\u003c/code\u003e, \u003ccode\u003epytest.xfail()\u003c/code\u003e, or \u003ccode\u003epytest.fail()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1179\"\u003e#1179\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting a value of \u003ccode\u003e0\u003c/code\u003e when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1183\"\u003e#1183\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nyxst4ck\"\u003e\u003ccode\u003e@​nyxst4ck\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.15\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an asynchronous implementation of the \u003ccode\u003eitertools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/998\"\u003e#998\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003elocal_port\u003c/code\u003e parameter to \u003ccode\u003econnect_tcp()\u003c/code\u003e to allow binding to a specific local port before connecting (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1067\"\u003e#1067\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nullwiz\"\u003e\u003ccode\u003e@​nullwiz\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for custom capacity limiters in async path and file I/O functions and classes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003ecreate_task()\u003c/code\u003e task group method for easier asyncio migration (returns a \u003ccode\u003eTaskHandle\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1098\"\u003e#1098\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eTaskGroup.start_soon()\u003c/code\u003e to return a \u003ccode\u003eTaskHandle\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option for \u003ccode\u003eTaskGroup.start()\u003c/code\u003e to return a \u003ccode\u003eTaskHandle\u003c/code\u003e (which then contains the start value in the \u003ccode\u003estart_value\u003c/code\u003e property)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003ecancel()\u003c/code\u003e convenience method to \u003ccode\u003eTaskGroup\u003c/code\u003e as a shortcut for cancelling the task group's cancel scope\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved the error message when a known backend is not installed to suggest the install command (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1115\"\u003e#1115\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved \u003ccode\u003eanyio.Path\u003c/code\u003e to preserve subclass types by returning \u003ccode\u003eSelf\u003c/code\u003e in methods that return path objects (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1130\"\u003e#1130\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the parameter type annotation in \u003ccode\u003eanyio.Path.write_bytes()\u003c/code\u003e to accept any \u003ccode\u003eReadableBuffer\u003c/code\u003e, thus allowing it to accept \u003ccode\u003ebytearray\u003c/code\u003e and \u003ccode\u003ememoryview\u003c/code\u003e to match \u003ccode\u003epathlib.Path.write_bytes()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1135\"\u003e#1135\u003c/a\u003e; PR by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged several type annotations to only accept callables returning coroutine-like objects instead of arbitrary awaitables:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eTaskGroup.start_soon()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTaskGroup.start()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis reverts an earlier change from v3.7.0 which was made in error. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1153\"\u003e#1153\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eanyio.run\u003c/code\u003e to support callables returning arbitrary awaitables at runtime on all backends. Previously, this only worked on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1171\"\u003e#1171\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged several classes (and their subclasses) to have \u003ccode\u003e__slots__\u003c/code\u003e (with \u003ccode\u003e__weakref__\u003c/code\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eanyio.CancelScope\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.CapacityLimiter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.Condition\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.Event\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.Lock\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.ResourceGuard\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.Semaphore\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed cancellation exception escaping a cancel scope when triggered via \u003ccode\u003echeck_cancelled()\u003c/code\u003e in a worker thread (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1113\"\u003e#1113\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eTaskGroup\u003c/code\u003e raising \u003ccode\u003eAttributeError\u003c/code\u003e instead of a clear error when entered more than once (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1109\"\u003e#1109\u003c/a\u003e; PR by \u003ca href=\"https://github.com/bahtya\"\u003e\u003ccode\u003e@​bahtya\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/149b9e907618fadf6840a4d3cebad533b0c7d033\"\u003e\u003ccode\u003e149b9e9\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/377518cd1160314f2fdf74f356ae9e848c94a065\"\u003e\u003ccode\u003e377518c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1186\"\u003e#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b42a2f5e8e9910d0c57b970f9a747427a9da26f0\"\u003e\u003ccode\u003eb42a2f5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3ceb6ffbfa89be715f444550883356fbfbc13154\"\u003e\u003ccode\u003e3ceb6ff\u003c/code\u003e\u003c/a\u003e Allow 0 tokens in a CapacityLimiter instantiated outside an event loop (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1183\"\u003e#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e10d1db74f7a59cb283a1e4b3b22227da11c6f07\"\u003e\u003ccode\u003ee10d1db\u003c/code\u003e\u003c/a\u003e Add missing await to open_file() in file I/O concurrency example (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1dbc3b62256e5877bcf610aca98ba6e450d14c20\"\u003e\u003ccode\u003e1dbc3b6\u003c/code\u003e\u003c/a\u003e OutcomeException should not discard test runner_task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffe91331adb912c5d150f5d373f7cd28a0e96a62\"\u003e\u003ccode\u003effe9133\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f8b9f011e548c2c1c3e9abb0287bb1048ab3dca8\"\u003e\u003ccode\u003ef8b9f01\u003c/code\u003e\u003c/a\u003e Fixed asyncio lock waiter deadlocks after cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d517ee1d41080073cc244d8adebf822a08b762de\"\u003e\u003ccode\u003ed517ee1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/550b68e1acaf82b1503b0e99fbc7f964cd07fe49\"\u003e\u003ccode\u003e550b68e\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eanyio.run\u003c/code\u003e support \u003ccode\u003eAwaitable\u003c/code\u003e at runtime on all backends (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.13.0...4.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.2/\"\u003ehttps://pypi.org/project/click/8.4.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/34\"\u003ehttps://github.com/pallets/click/milestone/34\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by \u003ca href=\"https://redirect.github.com/pallets/click/issues/3126\"\u003e#3126\u003c/a\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3502\"\u003e#3502\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3043\"\u003e#3043\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3504\"\u003e#3504\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3508\"\u003e#3508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3509\"\u003e#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3059\"\u003e#3059\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3507\"\u003e#3507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3242\"\u003e#3242\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2542\"\u003e#2542\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3534\"\u003e#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from \u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3533\"\u003e#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2331\"\u003e#2331\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1884\"\u003e#1884\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3125\"\u003e#3125\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/32\"\u003ehttps://github.com/pallets/click/milestone/32\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type conversion again. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e # 3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion result. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our [Version Support Policy][version] on our website.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-06-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by {pr}\u003ccode\u003e3126\u003c/code\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. {issue}\u003ccode\u003e3502\u003c/code\u003e\n{issue}\u003ccode\u003e3043\u003c/code\u003e {pr}\u003ccode\u003e3504\u003c/code\u003e {pr}\u003ccode\u003e3508\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. {pr}\u003ccode\u003e3509\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n{issue}\u003ccode\u003e3059\u003c/code\u003e {pr}\u003ccode\u003e3507\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. {issue}\u003ccode\u003e3242\u003c/code\u003e {issue}\u003ccode\u003e2542\u003c/code\u003e {pr}\u003ccode\u003e3534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from {pr}\u003ccode\u003e3482\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e\n{pr}\u003ccode\u003e3533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. {pr}\u003ccode\u003e3578\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. {issue}\u003ccode\u003e2331\u003c/code\u003e {issue}\u003ccode\u003e1884\u003c/code\u003e {issue}\u003ccode\u003e3125\u003c/code\u003e {pr}\u003ccode\u003e3582\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.4.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type\nconversion again. {issue}\u003ccode\u003e3458\u003c/code\u003e {pr}\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. {issue}\u003ccode\u003e3277\u003c/code\u003e {pr}\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eEnum\u003c/code\u003e values used as \u003ccode\u003eChoice\u003c/code\u003e options produces a\nvalid completion result. {issue}\u003ccode\u003e3015\u003c/code\u003e {pr}\u003ccode\u003e3471\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. {issue}\u003ccode\u003e3487\u003c/code\u003e {pr}\u003ccode\u003e3493\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e {pr}\u003ccode\u003e3482\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eopen_url\u003c/code\u003e on Windows when the file path contains spaces.\n{issue}\u003ccode\u003e2994\u003c/code\u003e {pr}\u003ccode\u003e3478\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.4.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e{class}\u003ccode\u003eParamType\u003c/code\u003e typing improvements. {pr}\u003ccode\u003e3371\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e{class}\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53\"\u003e\u003ccode\u003eb2e30a1\u003c/code\u003e\u003c/a\u003e Release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49\"\u003e\u003ccode\u003e7a16b20\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when module differs from distribution name (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc\"\u003e\u003ccode\u003ebec5928\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when top-level module differs from distribution...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd\"\u003e\u003ccode\u003e916883a\u003c/code\u003e\u003c/a\u003e Fix tests to not rely on \u003ccode\u003e-Wdefault\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3591\"\u003e#3591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520\"\u003e\u003ccode\u003e09195f6\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02\"\u003e\u003ccode\u003e1557e26\u003c/code\u003e\u003c/a\u003e Check for warning exception with idiomatic context manager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3\"\u003e\u003ccode\u003ed9ff133\u003c/code\u003e\u003c/a\u003e Static typing improvements in \u003ccode\u003eclick.shell_completion\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3460\"\u003e#3460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793\"\u003e\u003ccode\u003e762c97e\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581\"\u003e\u003ccode\u003e8929d39\u003c/code\u003e\u003c/a\u003e Convert changes to markdown. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd\"\u003e\u003ccode\u003e237be50\u003c/code\u003e\u003c/a\u003e Move changes headings down a level.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `croniter` from 6.2.2 to 6.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/croniter/blob/main/CHANGELOG.rst\"\u003ecroniter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.3 (2026-07-02)\u003c/h2\u003e\n\u003cp\u003eFeatures and Improvements\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix quadratic expansion of comma-separated range lists for a large speed-up on expressions with many ranges. [1d79fc6, [#231](https://github.com/pallets-eco/croniter/issues/231), @alhudz]\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Reject a zero step (e.g. ``5-5/0``) in equal and reversed cron ranges instead of silently accepting it. [ab27767, [#232](https://github.com/pallets-eco/croniter/issues/232), @alhudz]\n- Fix ``expand_from_start_time`` month low-bound off-by-one so stepped month ranges start on the correct month. [f329964, [#235](https://github.com/pallets-eco/croniter/issues/235), @alhudz]\n\nPackaging\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eFix zizmor-reported security findings in GitHub Actions workflows. [ed19f94, \u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/230\"\u003e#230\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eBump pinned build and CI dependencies via dependabot.\u003c/li\u003e\n\u003cli\u003eUpgrade locked development and build dependencies (\u003ccode\u003euv lock --upgrade\u003c/code\u003e).\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/22b59e05f5ca485c45596b2a9b580fddffbf753f\"\u003e\u003ccode\u003e22b59e0\u003c/code\u003e\u003c/a\u003e Prepare for release 6.2.3 (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/236\"\u003e#236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/ab277671adc8e446e8dc7f1e939eabf024b6199e\"\u003e\u003ccode\u003eab27767\u003c/code\u003e\u003c/a\u003e reject zero step in equal and reversed cron ranges (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/232\"\u003e#232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/f329964223eeb29e7788b1a9d615b525148fec96\"\u003e\u003ccode\u003ef329964\u003c/code\u003e\u003c/a\u003e fix expand_from_start_time month low bound off-by-one (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/235\"\u003e#235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/9810279c20030954e2f1ed2cf5f1d34b98c6b07f\"\u003e\u003ccode\u003e9810279\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/233\"\u003e#233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/d051aaf6342fbe9c559b9fcd99e6fb6f3bb63cb7\"\u003e\u003ccode\u003ed051aaf\u003c/code\u003e\u003c/a\u003e Bump hatchling from 1.29.0 to 1.30.1 in the pip-dependencies group (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/234\"\u003e#234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/1d79fc6555fb9208e290e0af10194eec638ae01c\"\u003e\u003ccode\u003e1d79fc6\u003c/code\u003e\u003c/a\u003e fix quadratic expansion of comma-separated range lists (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/231\"\u003e#231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/ed19f94c472ef665598693a554e6a5555be41f7b\"\u003e\u003ccode\u003eed19f94\u003c/code\u003e\u003c/a\u003e Fix zizmor-reported security findings in GitHub Actions workflows (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/82657c37b873319570fee74c1864cb4d6153f543\"\u003e\u003ccode\u003e82657c3\u003c/code\u003e\u003c/a\u003e Bump trove-classifiers in the pip-dependencies group (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/8e13827f77358beabf75245ad37d31a581cb6d1e\"\u003e\u003ccode\u003e8e13827\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/228\"\u003e#228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/e55d70bf2288e25c1ddf850fde703d56888772f2\"\u003e\u003ccode\u003ee55d70b\u003c/code\u003e\u003c/a\u003e Bump trove-classifiers in the pip-dependencies group across 1 directory (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/croniter/compare/6.2.2...6.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.135.3 to 0.139.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.139.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Support dependencies in \u003ccode\u003eapp.frontend()\u003c/code\u003e, e.g. for automatic cookie authentication for the frontend. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15908\"\u003e#15908\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15897\"\u003e#15897\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15895\"\u003e#15895\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15896\"\u003e#15896\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15899\"\u003e#15899\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15892\"\u003e#15892\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15891\"\u003e#15891\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15893\"\u003e#15893\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15898\"\u003e#15898\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15900\"\u003e#15900\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15890\"\u003e#15890\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15894\"\u003e#15894\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15888\"\u003e#15888\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15880\"\u003e#15880\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15889\"\u003e#15889\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15883\"\u003e#15883\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15885\"\u003e#15885\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15882\"\u003e#15882\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15887\"\u003e#15887\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15886\"\u003e#15886\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15881\"\u003e#15881\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15884\"\u003e#15884\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15879\"\u003e#15879\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15909\"\u003e#15909\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15906\"\u003e#15906\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15878\"\u003e#15878\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove not needed \u003ccode\u003eallow-unsafe-pr-checkout: true\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15876\"\u003e#15876\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15872\"\u003e#15872\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 10 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15870\"\u003e#15870\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump CodSpeedHQ/action from 4.17.0 to 4.17.5 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15826\"\u003e#15826\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.138.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor Library Skills, make info easier to find for agents. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15841\"\u003e#15841\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15836\"\u003e#15836\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update issue-manager to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15833\"\u003e#15833\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15831\"\u003e#15831\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cecd96d9c6c318e0df1c40cedbc2e953381ddfd3\"\u003e\u003ccode\u003ececd96d\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.139.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15910\"\u003e#15910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/aea660936b55fdbd84270d24f892839388922dd6\"\u003e\u003ccode\u003eaea6609\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/319be508ce7db9ee5f52c3b9baa68c6cc1037c10\"\u003e\u003ccode\u003e319be50\u003c/code\u003e\u003c/a\u003e ✨ Support dependencies in \u003ccode\u003eapp.frontend()\u003c/code\u003e, e.g. for automatic cookie authent...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/66a90f6ee9c0cf58ec61b14f8925344d6f16eae5\"\u003e\u003ccode\u003e66a90f6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d30a3ebfc7d7fd7851ba4243677266c53cb9f154\"\u003e\u003ccode\u003ed30a3eb\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15909\"\u003e#15909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/122f1b58f4e0fabfefef3710a8c8247bb2bd820b\"\u003e\u003ccode\u003e122f1b5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/fd6ece32eeb27c9ce164bd9170f9d8e1db1dacff\"\u003e\u003ccode\u003efd6ece3\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI GitHub topic repositories (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15906\"\u003e#15906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ec2a6adaf14c440bdcd0fd3f4ca203daa8c3ba6a\"\u003e\u003ccode\u003eec2a6ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9d7d7febd3a66844f948254c1ba4745b6cc16f40\"\u003e\u003ccode\u003e9d7d7fe\u003c/code\u003e\u003c/a\u003e 🌐 Update translations for fr (update-outdated) (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15897\"\u003e#15897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8dc852df4713efa998d126c5194302e9f06e7675\"\u003e\u003ccode\u003e8dc852d\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.3...0.139.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi-cli` from 0.0.24 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi-cli/releases\"\u003efastapi-cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eFASTAPI_PUBLIC_URL\u003c/code\u003e env var to configure app's public URL that is shown on startup. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/381\"\u003e#381\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Show tip on how to configure \u003ccode\u003eentrypoint\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/389\"\u003e#389\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Show import string source. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/388\"\u003e#388\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Include the version of \u003ccode\u003efastapi-cloud-cli\u003c/code\u003e to the output of \u003ccode\u003e--version\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/341\"\u003e#341\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update docs about contributing. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/410\"\u003e#410\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/408\"\u003e#408\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add pre-commit hook to catch typos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/418\"\u003e#418\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.26.2 to 0.26.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/427\"\u003e#427\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi-cloud-cli from 0.17.1 to 0.19.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/429\"\u003e#429\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump rich-toolkit from 0.19.9 to 0.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/428\"\u003e#428\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/430\"\u003e#430\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 6 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/426\"\u003e#426\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump eps1lon/actions-label-merge-conflict from 3.0.3 to 3.1.0 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/425\"\u003e#425\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.25.1 to 0.26.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/424\"\u003e#424\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Automate release preparation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/420\"\u003e#420\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove old package stub slim, not user nor needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/419\"\u003e#419\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmorcore/zizmor-action from 0.5.3 to 0.5.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/414\"\u003e#414\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure Dependabot to group updates and update weekly. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/407\"\u003e#407\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/413\"\u003e#413\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix branch name in \u003ccode\u003eguard-dependencies.yml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/404\"\u003e#404\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/403\"\u003e#403\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump uvicorn from 0.44.0 to 0.46.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/400\"\u003e#400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump rich-toolkit from 0.19.7 to 0.19.9. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/399\"\u003e#399\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 2.0.0 to 2.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/397\"\u003e#397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/373\"\u003e#373\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.34 to 0.0.35. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/396\"\u003e#396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/392\"\u003e#392\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/393\"\u003e#393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.11 to 0.3.13. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/394\"\u003e#394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/395\"\u003e#395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.33 to 0.0.34. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.25.0 to 0.25.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/390\"\u003e#390\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.32 to 0.0.33. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/387\"\u003e#387\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi-cli/blob/main/release-notes.md\"\u003efastapi-cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-06-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eFASTAPI_PUBLIC_URL\u003c/code\u003e env var to configure app's public URL that is shown on startup. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/381\"\u003e#381\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-06-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Show tip on how to configure \u003ccode\u003eentrypoint\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/389\"\u003e#389\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-06-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Show import string source. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/388\"\u003e#388\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Include the version of \u003ccode\u003efastapi-cloud-cli\u003c/code\u003e to the output of \u003ccode\u003e--version\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/341\"\u003e#341\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update docs about contributing. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/410\"\u003e#410\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/408\"\u003e#408\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add pre-commit hook to catch typos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/418\"\u003e#418\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.26.2 to 0.26.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/427\"\u003e#427\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi-cloud-cli from 0.17.1 to 0.19.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/429\"\u003e#429\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump rich-toolkit from 0.19.9 to 0.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/428\"\u003e#428\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/430\"\u003e#430\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 6 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/426\"\u003e#426\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump eps1lon/actions-label-merge-conflict from 3.0.3 to 3.1.0 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/425\"\u003e#425\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.25.1 to 0.26.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/424\"\u003e#424\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Automate release preparation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/420\"\u003e#420\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove old package stub slim, not user nor needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/419\"\u003e#419\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmorcore/zizmor-action from 0.5.3 to 0.5.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/414\"\u003e#414\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure Dependabot to group updates and update weekly. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/407\"\u003e#407\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/413\"\u003e#413\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix branch name in \u003ccode\u003eguard-dependencies.yml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/404\"\u003e#404\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/403\"\u003e#403\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump uvicorn from 0.44.0 to 0.46.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/400\"\u003e#400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump rich-toolkit from 0.19.7 to 0.19.9. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/399\"\u003e#399\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 2.0.0 to 2.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/397\"\u003e#397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/373\"\u003e#373\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.34 to 0.0.35. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/396\"\u003e#396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/392\"\u003e#392\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/393\"\u003e#393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.11 to 0.3.13. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/394\"\u003e#394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/395\"\u003e#395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/760451b3fbd3814902a36696959b5e49f6c80dad\"\u003e\u003ccode\u003e760451b\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.27 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/e3893efbeb9d50a000ef997b7f54bc08a0f27fa2\"\u003e\u003ccode\u003ee3893ef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/46aca093b0835b00476c7b45d408e7cbaf960980\"\u003e\u003ccode\u003e46aca09\u003c/code\u003e\u003c/a\u003e ✨ Add \u003ccode\u003eFASTAPI_PUBLIC_URL\u003c/code\u003e env var to configure app's public URL that is show...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/04c12c244febb6b3939df6011b5a4bd5a7bca89c\"\u003e\u003ccode\u003e04c12c2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.26 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/96bd5ab16b7ae16bb3746c2eff2fed31e3a7bd5d\"\u003e\u003ccode\u003e96bd5ab\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/cd37a8e50f9b37a9f4571a8e6938f274a56297c9\"\u003e\u003ccode\u003ecd37a8e\u003c/code\u003e\u003c/a\u003e 🚸 Show tip on how to configure \u003ccode\u003eentrypoint\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/8c4ab6663187c5fcdb68fe523c70ff265a9c50da\"\u003e\u003ccode\u003e8c4ab66\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.25 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/b6bf5b53d87f64cad2e56541008b6f3a62305b1c\"\u003e\u003ccode\u003eb6bf5b5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/572ea4c0f286c5f70d407b30d2f444e69e4c1f65\"\u003e\u003ccode\u003e572ea4c\u003c/code\u003e\u003c/a\u003e 👷 Add pre-commit hook to catch typos (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/1428d40976c1bb2585941d9961898ce6b9d0f448\"\u003e\u003ccode\u003e1428d40\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi-cli/compare/0.0.24...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi-cloud-cli` from 0.15.1 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/releases\"\u003efastapi-cloud-cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.22.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Validate app logs tail limit before request. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/287\"\u003e#287\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.22.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add cloud apps update command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/280\"\u003e#280\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Remove \u003ccode\u003esrc\u003c/code\u003e from \u003ccode\u003edirectory\u003c/code\u003e option description and error message. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/279\"\u003e#279\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 4 updates. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/276\"\u003e#276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sentry-sdk from 2.62.0 to 2.63.0. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/277\"\u003e#277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/275\"\u003e#275\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/278\"\u003e#278\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.21.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add --json support for logout command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/269\"\u003e#269\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add cloud ci setup command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/268\"\u003e#268\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add cloud ci print-workflow command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/267\"\u003e#267\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens delete command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/264\"\u003e#264\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens create command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/263\"\u003e#263\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens list command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/262\"\u003e#262\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Handle invalid apps create --directory input. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/265\"\u003e#265\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Use new deployment route to fetch deployment. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/266\"\u003e#266\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Update deployment data when triggering upload complete. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/250\"\u003e#250\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Improve error messages for logs. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/249\"\u003e#249\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update docs badges: remove Publish badge, it doesn't give extra information. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/260\"\u003e#260\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/blob/main/release-notes.md\"\u003efastapi-cloud-cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.22.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Validate app logs tail limit before request. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/287\"\u003e#287\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.22.0 (2026-06-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add cloud apps update command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/280\"\u003e#280\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Remove \u003ccode\u003esrc\u003c/code\u003e from \u003ccode\u003edirectory\u003c/code\u003e option description and error message. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/279\"\u003e#279\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 4 updates. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/276\"\u003e#276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sentry-sdk from 2.62.0 to 2.63.0. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/277\"\u003e#277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/275\"\u003e#275\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/278\"\u003e#278\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.21.0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add --json support for logout command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/269\"\u003e#269\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add cloud ci setup command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/268\"\u003e#268\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add cloud ci print-workflow command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/267\"\u003e#267\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens delete command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/264\"\u003e#264\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens create command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/263\"\u003e#263\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens list command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/262\"\u003e#262\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Handle invalid apps create --directory input. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/265\"\u003e#265\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Use new deployment route to fetch deployment. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/266\"\u003e#266\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Update deployment data when triggering upload complete. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/250\"\u003e#250\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Improve error messages for logs. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/249\"\u003e#249\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update docs badges: remove Publish badge, it doesn't give extra information. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/260\"\u003e#260\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/commit/20f9fe34e1b95fb925e168f9d030b9d52cee5f8a\"\u003e\u003ccode\u003e20f9fe3\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.22.1 (\u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/commit/e2b4722fc22b3c3e6c0babafa5ad21862372ff52\"\u003e\u003ccode\u003ee2b4722\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/commit/5...\n\n_Description has been truncated_","html_url":"https://github.com/manasijatech/ananta-market-stack/pull/59","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/manasijatech%2Fananta-market-stack/issues/59","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/59/packages"},{"uuid":"4771658777","node_id":"PR_kwDOSNjZ2s7r9fdZ","number":856,"state":"closed","title":"chore(deps): bump the ci-python group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-07-01T01:25:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-29T21:18:05.000Z","updated_at":"2026-07-01T01:25:02.000Z","time_to_close":101215,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"ci-python","update_count":40,"packages":[{"name":"anyio","old_version":"4.14.0","new_version":"4.14.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"google-auth","old_version":"2.55.0","new_version":"2.55.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-bigquery","old_version":"3.42.0","new_version":"3.42.1","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"google-cloud-resource-manager","old_version":"1.17.0","new_version":"1.18.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-genai","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"huggingface-hub","old_version":"1.20.1","new_version":"1.21.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"importlib-metadata","old_version":"8.9.0","new_version":"9.0.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mcp","old_version":"1.28.0","new_version":"1.28.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"openai","old_version":"2.43.0","new_version":"2.44.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openai-agents","old_version":"0.14.6","new_version":"0.17.7","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.35.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"regex","old_version":"2026.5.9","new_version":"2026.6.28","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"typer","old_version":"0.25.1","new_version":"0.26.8","repository_url":"https://github.com/fastapi/typer"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.138.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiosmtplib","old_version":"3.0.1","new_version":"5.1.2","repository_url":"https://github.com/cole/aiosmtplib"},{"name":"alembic","old_version":"1.18.4","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"greenlet","old_version":"3.5.2","new_version":"3.5.3","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"google-api-python-client","old_version":"2.197.0","new_version":"2.198.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"icalendar","old_version":"7.1.3","new_version":"7.2.0","repository_url":"https://github.com/collective/icalendar"},{"name":"ruff","old_version":"0.15.18","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"httplib2","old_version":"0.31.2","new_version":"0.32.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"langsmith","old_version":"0.8.18","new_version":"0.9.3","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"xxhash","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/ifduyue/python-xxhash"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ci-python group with 40 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.0` | `4.14.1` |\n| [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.55.0` | `2.55.1` |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.42.0` | `3.42.1` |\n| [google-cloud-resource-manager](https://github.com/googleapis/google-cloud-python) | `1.17.0` | `1.18.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `2.9.0` | `2.10.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.20.1` | `1.21.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.9.0` | `9.0.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.28.0` | `1.28.1` |\n| [openai](https://github.com/openai/openai-python) | `2.43.0` | `2.44.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.14.6` | `0.17.7` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.47.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.5.9` | `2026.6.28` |\n| [typer](https://github.com/fastapi/typer) | `0.25.1` | `0.26.8` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.138.2` |\n| [aiosmtplib](https://github.com/cole/aiosmtplib) | `3.0.1` | `5.1.2` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.18.5` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.2` | `3.5.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.197.0` | `2.198.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.0` | `8.0.2` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [icalendar](https://github.com/collective/icalendar) | `7.1.3` | `7.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.15.20` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.31.2` | `0.32.0` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.18` | `0.9.3` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.63b1` | `0.64b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.7.0` | `3.8.0` |\n\n\nUpdates `anyio` from 4.14.0 to 4.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed teardown of higher-scoped async fixtures failing on asyncio with \u003ccode\u003eRuntimeError: Attempted to exit cancel scope in a different task than it was entered in\u003c/code\u003e when an async test raise an outcome exception (e.g., \u003ccode\u003epytest.skip()\u003c/code\u003e, \u003ccode\u003epytest.xfail()\u003c/code\u003e, or \u003ccode\u003epytest.fail()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1179\"\u003e#1179\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting a value of \u003ccode\u003e0\u003c/code\u003e when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1183\"\u003e#1183\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nyxst4ck\"\u003e\u003ccode\u003e@​nyxst4ck\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/149b9e907618fadf6840a4d3cebad533b0c7d033\"\u003e\u003ccode\u003e149b9e9\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/377518cd1160314f2fdf74f356ae9e848c94a065\"\u003e\u003ccode\u003e377518c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1186\"\u003e#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b42a2f5e8e9910d0c57b970f9a747427a9da26f0\"\u003e\u003ccode\u003eb42a2f5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3ceb6ffbfa89be715f444550883356fbfbc13154\"\u003e\u003ccode\u003e3ceb6ff\u003c/code\u003e\u003c/a\u003e Allow 0 tokens in a CapacityLimiter instantiated outside an event loop (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1183\"\u003e#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e10d1db74f7a59cb283a1e4b3b22227da11c6f07\"\u003e\u003ccode\u003ee10d1db\u003c/code\u003e\u003c/a\u003e Add missing await to open_file() in file I/O concurrency example (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1dbc3b62256e5877bcf610aca98ba6e450d14c20\"\u003e\u003ccode\u003e1dbc3b6\u003c/code\u003e\u003c/a\u003e OutcomeException should not discard test runner_task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.0...4.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.2/\"\u003ehttps://pypi.org/project/click/8.4.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/34\"\u003ehttps://github.com/pallets/click/milestone/34\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by \u003ca href=\"https://redirect.github.com/pallets/click/issues/3126\"\u003e#3126\u003c/a\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3502\"\u003e#3502\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3043\"\u003e#3043\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3504\"\u003e#3504\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3508\"\u003e#3508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3509\"\u003e#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3059\"\u003e#3059\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3507\"\u003e#3507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3242\"\u003e#3242\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2542\"\u003e#2542\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3534\"\u003e#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from \u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3533\"\u003e#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2331\"\u003e#2331\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1884\"\u003e#1884\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3125\"\u003e#3125\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.2\u003c/h2\u003e\n\u003cp\u003eUnreleased\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by {pr}\u003ccode\u003e3126\u003c/code\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. {issue}\u003ccode\u003e3502\u003c/code\u003e\n{issue}\u003ccode\u003e3043\u003c/code\u003e {pr}\u003ccode\u003e3504\u003c/code\u003e {pr}\u003ccode\u003e3508\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. {pr}\u003ccode\u003e3509\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n{issue}\u003ccode\u003e3059\u003c/code\u003e {pr}\u003ccode\u003e3507\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. {issue}\u003ccode\u003e3242\u003c/code\u003e {issue}\u003ccode\u003e2542\u003c/code\u003e {pr}\u003ccode\u003e3534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from {pr}\u003ccode\u003e3482\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e\n{pr}\u003ccode\u003e3533\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53\"\u003e\u003ccode\u003eb2e30a1\u003c/code\u003e\u003c/a\u003e Release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49\"\u003e\u003ccode\u003e7a16b20\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when module differs from distribution name (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc\"\u003e\u003ccode\u003ebec5928\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when top-level module differs from distribution...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd\"\u003e\u003ccode\u003e916883a\u003c/code\u003e\u003c/a\u003e Fix tests to not rely on \u003ccode\u003e-Wdefault\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3591\"\u003e#3591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520\"\u003e\u003ccode\u003e09195f6\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02\"\u003e\u003ccode\u003e1557e26\u003c/code\u003e\u003c/a\u003e Check for warning exception with idiomatic context manager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3\"\u003e\u003ccode\u003ed9ff133\u003c/code\u003e\u003c/a\u003e Static typing improvements in \u003ccode\u003eclick.shell_completion\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3460\"\u003e#3460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793\"\u003e\u003ccode\u003e762c97e\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581\"\u003e\u003ccode\u003e8929d39\u003c/code\u003e\u003c/a\u003e Convert changes to markdown. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd\"\u003e\u003ccode\u003e237be50\u003c/code\u003e\u003c/a\u003e Move changes headings down a level.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.55.0 to 2.55.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth: v2.55.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003e2.55.1\u003c/a\u003e (2026-06-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e1ef4183\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17515\"\u003e#17515\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/900d51fcc122464eb3611589f6f9a9c55a85598f\"\u003e\u003ccode\u003e900d51f\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17543\"\u003e#17543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e\u003ccode\u003e1ef4183\u003c/code\u003e\u003c/a\u003e fix(auth): lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/bd782cf279ae700f56d40702d4ef25ef89e2ff9b\"\u003e\u003ccode\u003ebd782cf\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-bigtable (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17575\"\u003e#17575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/57ebaa3c244a9fa97d3e6db206126c504f4b954f\"\u003e\u003ccode\u003e57ebaa3\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-firestore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17577\"\u003e#17577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/140d86fe6181a4d6f831df8cdc7d86facf8ebe00\"\u003e\u003ccode\u003e140d86f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-compute (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17576\"\u003e#17576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/39b252f4effe7e8915efa8796d90fd29f356bf96\"\u003e\u003ccode\u003e39b252f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-spanner (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17578\"\u003e#17578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/421eebdb31d526a6d5ba27c433cf2803d7619be3\"\u003e\u003ccode\u003e421eebd\u003c/code\u003e\u003c/a\u003e feat: support interactive execution of deferred DataFrames in TableWidget (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3619b29e10ae04623d101808cb98be5edbb483b4\"\u003e\u003ccode\u003e3619b29\u003c/code\u003e\u003c/a\u003e feat: support gemini-3.x models in loader and update default model to gemini-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17bef417db646c0f9fcd91529cd06b2527ec5e3f\"\u003e\u003ccode\u003e17bef41\u003c/code\u003e\u003c/a\u003e test(bigquery-magics): make table_id parsing check version-agnostic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17562\"\u003e#17562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e68853162249b7a55f560f9a203d49984665c854\"\u003e\u003ccode\u003ee688531\u003c/code\u003e\u003c/a\u003e bigtable: add ValueBitmaskFilter for data client (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17567\"\u003e#17567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery` from 3.42.0 to 3.42.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-resource-manager` from 1.17.0 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-resource-manager's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-resource-manager: v1.18.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-resource-manager-v1.17.0...google-cloud-resource-manager-v1.18.0\"\u003e1.18.0\u003c/a\u003e (2026-06-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eregenerate google-cloud-[o-r] packages (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17075\"\u003e#17075\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f4bd0182d808ae73c3c6981e6ce3d565f78a6051\"\u003ef4bd018\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a5ad18cbad0577b79917dfad2242a57dc21432e1\"\u003e\u003ccode\u003ea5ad18c\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17482\"\u003e#17482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f6937b33e31a4c3e884165b582442274a366a995\"\u003e\u003ccode\u003ef6937b3\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-bigtable 2.39.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17497\"\u003e#17497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/172302b809b0ff13267f18b5e7dd24be0dce2f70\"\u003e\u003ccode\u003e172302b\u003c/code\u003e\u003c/a\u003e ci(bigquery-storage): fix \u003ccode\u003ecore_deps_from_source\u003c/code\u003e and \u003ccode\u003eprerelease_deps\u003c/code\u003e by in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e7268785c6736c10c1337160b4d8606975062637\"\u003e\u003ccode\u003ee726878\u003c/code\u003e\u003c/a\u003e fix(bigframes): world-readable temp zip in create_cloud_function (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17522\"\u003e#17522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/2f893b1b53e7394655fd204d1f8a138212ad8227\"\u003e\u003ccode\u003e2f893b1\u003c/code\u003e\u003c/a\u003e fix: bump \u003ccode\u003e@​angular/common\u003c/code\u003e, \u003ccode\u003e@​angular/forms\u003c/code\u003e, \u003ccode\u003e@​angular/platform-browser\u003c/code\u003e and \u003ca href=\"https://github.com/ang\"\u003e\u003ccode\u003e@​ang\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f23063f9182cdec868c16afb80304892850fbe88\"\u003e\u003ccode\u003ef23063f\u003c/code\u003e\u003c/a\u003e fix: bump langsmith from 0.8.0 to 0.8.18 in /packages/bigframes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17518\"\u003e#17518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6fc45e3790c5a248dcec4b74799834c7b9219ef0\"\u003e\u003ccode\u003e6fc45e3\u003c/code\u003e\u003c/a\u003e fix: bump undici and \u003ccode\u003e@​angular/build\u003c/code\u003e in /packages/bigframes/bigframes/display/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/36b5b7ebb01030a2d0f10d49fe4827ddc79dde9a\"\u003e\u003ccode\u003e36b5b7e\u003c/code\u003e\u003c/a\u003e fix: bump msgpack from 1.1.1 to 1.2.1 in /packages/bigframes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17520\"\u003e#17520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/11de93965831311445abacaec2d7baeef21f837d\"\u003e\u003ccode\u003e11de939\u003c/code\u003e\u003c/a\u003e tests: add Python 3.15 pre-release testing (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17517\"\u003e#17517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/025840544f5d4ab6a429d1cd9bdbb256c981aa0d\"\u003e\u003ccode\u003e0258405\u003c/code\u003e\u003c/a\u003e fix(bigquery): close GAPIC storage transport and auth sessions to prevent soc...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-resource-manager-v1.17.0...google-cloud-resource-manager-v1.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-genai` from 2.9.0 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-genai/releases\"\u003egoogle-genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003e2.10.0\u003c/a\u003e (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Agent Platform MCP support to async generate_content_stream (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003ea4772cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Interactions] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e732368f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Models] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003ea359406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage fields for steps (\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e7bb6c72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd video generation and response format parameters. (\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003eec8f22b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix typos across docstrings (\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e63ec5bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-genai/blob/main/CHANGELOG.md\"\u003egoogle-genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003e2.10.0\u003c/a\u003e (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Agent Platform MCP support to async generate_content_stream (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003ea4772cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Interactions] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e732368f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Models] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003ea359406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage fields for steps (\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e7bb6c72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd video generation and response format parameters. (\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003eec8f22b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix typos across docstrings (\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e63ec5bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/e41801cd1ad7406b9f63b4a5a0924096765cf772\"\u003e\u003ccode\u003ee41801c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.10.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-genai/issues/2636\"\u003e#2636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/ab37930697772e9d11546b5c48b76f1401ee8d1e\"\u003e\u003ccode\u003eab37930\u003c/code\u003e\u003c/a\u003e chore: Disable ComputerUse.disabled_safety_policies in Gemini Enterprise API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003e\u003ccode\u003eec8f22b\u003c/code\u003e\u003c/a\u003e feat: add video generation and response format parameters.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e\u003ccode\u003e7bb6c72\u003c/code\u003e\u003c/a\u003e feat: add usage fields for steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e\u003ccode\u003e732368f\u003c/code\u003e\u003c/a\u003e feat: Add ComputerUse.disabled_safety_policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003e\u003ccode\u003ea359406\u003c/code\u003e\u003c/a\u003e feat: Add ComputerUse.disabled_safety_policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003e\u003ccode\u003ea4772cc\u003c/code\u003e\u003c/a\u003e feat: Add Agent Platform MCP support to async generate_content_stream\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/67703bf194d1ab3784d6f2b6814c38d2e7c7554b\"\u003e\u003ccode\u003e67703bf\u003c/code\u003e\u003c/a\u003e chore: Fix comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e\u003ccode\u003e63ec5bb\u003c/code\u003e\u003c/a\u003e docs: fix typos across docstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/3260c6f6f6971a1f5fd21a16416204f808df9b22\"\u003e\u003ccode\u003e3260c6f\u003c/code\u003e\u003c/a\u003e chore: Upgrade stalebot action to use v10 (due to Node20 deprecation)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.20.1 to 1.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.21.0] Jobs filtering \u0026amp; pagination\u003c/h2\u003e\n\u003ch2\u003e📊 Jobs listing revamped: filter, paginate, and \u003ccode\u003els\u003c/code\u003e instead of \u003ccode\u003eps\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe Jobs listing API and CLI have been overhauled with server-side filtering, proper pagination, and a CLI rename that aligns with the rest of \u003ccode\u003ehf\u003c/code\u003e. \u003ccode\u003elist_jobs()\u003c/code\u003e now accepts \u003ccode\u003estatus\u003c/code\u003e and \u003ccode\u003elabels\u003c/code\u003e parameters that push filtering to the server, and returns a lazy iterator (matching \u003ccode\u003elist_models\u003c/code\u003e, \u003ccode\u003elist_datasets\u003c/code\u003e, etc.) so large result sets are fetched page by page. On the CLI side, \u003ccode\u003ehf jobs ps\u003c/code\u003e has been renamed to \u003ccode\u003ehf jobs ls\u003c/code\u003e for consistency with \u003ccode\u003ehf repos ls\u003c/code\u003e, \u003ccode\u003ehf models ls\u003c/code\u003e, and friends — \u003ccode\u003eps\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e still work as aliases.\u003c/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eBreaking changes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elist_jobs()\u003c/code\u003e now returns an \u003ccode\u003eIterable[JobInfo]\u003c/code\u003e instead of \u003ccode\u003elist[JobInfo]\u003c/code\u003e. If you indexed the result (\u003ccode\u003ejobs[0]\u003c/code\u003e), wrap it with \u003ccode\u003elist(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-f\u003c/code\u003e/\u003ccode\u003e--filter\u003c/code\u003e in \u003ccode\u003ehf jobs ls\u003c/code\u003e is deprecated. Use \u003ccode\u003e--status\u003c/code\u003e and \u003ccode\u003e--label\u003c/code\u003e instead. Glob patterns (\u003ccode\u003edata-*\u003c/code\u003e), negation (\u003ccode\u003ekey!=value\u003c/code\u003e), and filtering by \u003ccode\u003eid\u003c/code\u003e/\u003ccode\u003eimage\u003c/code\u003e/\u003ccode\u003ecommand\u003c/code\u003e are no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom huggingface_hub import list_jobs\r\n\u003ch1\u003eFilter by status and labels\u003c/h1\u003e\n\u003cp\u003elist_jobs(status=[\u0026quot;RUNNING\u0026quot;, \u0026quot;SCHEDULING\u0026quot;], labels={\u0026quot;env\u0026quot;: \u0026quot;prod\u0026quot;})\u003c/p\u003e\n\u003ch1\u003eIterate lazily\u003c/h1\u003e\n\u003cp\u003efor job in list_jobs():\nprint(job.id)\u003c/p\u003e\n\u003ch1\u003eMaterialize all results\u003c/h1\u003e\n\u003cp\u003eall_jobs = list(list_jobs())\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Filter by status and labels\r\nhf jobs ls --status running,scheduling --label env=prod --label team=ml\r\n\r\n# Paginate with --limit\r\nhf jobs ls -a --limit 500\r\nhf jobs ls -a --limit 0  # no limit\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Add stage/label filtering to list_jobs API and CLI by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4395\"\u003e#4395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Jobs] Paginate list_jobs and add --limit to \u003ccode\u003ehf jobs ps\u003c/code\u003e by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4403\"\u003e#4403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] [Jobs] Rename job listing to 'hf jobs ls' (and keep 'hf jobs ps' alias) by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4409\"\u003e#4409\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/cli\"\u003eCLI guide\u003c/a\u003e, \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/jobs\"\u003eJobs guide\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🐛 Fix circular import on \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eA regression introduced in v1.20.0 caused \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e to raise an \u003ccode\u003eImportError\u003c/code\u003e on a fresh interpreter, due to a circular dependency between \u003ccode\u003e_oauth_device\u003c/code\u003e and \u003ccode\u003eutils._http\u003c/code\u003e. The fix moves \u003ccode\u003e_oauth_device.py\u003c/code\u003e into the \u003ccode\u003eutils\u003c/code\u003e layer so all imports resolve downward, eliminating the cycle. No lazy imports or workarounds required.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix circular import on \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4385\"\u003e#4385\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Other QoL Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRetry requests on httpx.RemoteProtocolError by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4398\"\u003e#4398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📖 Documentation\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aea9b9de1284f54862df99820f963d6030803860\"\u003e\u003ccode\u003eaea9b9d\u003c/code\u003e\u003c/a\u003e Release: v1.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e2ed568a0d8e3841d2fe9d192f17cdb30ccf129\"\u003e\u003ccode\u003e2e2ed56\u003c/code\u003e\u003c/a\u003e Release: v1.21.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4bd4c906cac546643ca5fe0ca08e301ce7a98b62\"\u003e\u003ccode\u003e4bd4c90\u003c/code\u003e\u003c/a\u003e [CLI] [Jobs] Rename job listing to 'hf jobs ls' (and keep 'hf jobs ps' alias)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/fa3eb459eb3fdf15347930d7dc70f0a7e413d6e5\"\u003e\u003ccode\u003efa3eb45\u003c/code\u003e\u003c/a\u003e [Jobs] Paginate list_jobs and add --limit to \u003ccode\u003ehf jobs ps\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4403\"\u003e#4403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/ecfd4c5e88acfa885fc9146bf5df61d4de7b46a9\"\u003e\u003ccode\u003eecfd4c5\u003c/code\u003e\u003c/a\u003e [CLI] Fix ty/mypy errors with click 8.4.2 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4408\"\u003e#4408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/341469f1f87fb9932410fde9bdb81ac269a64727\"\u003e\u003ccode\u003e341469f\u003c/code\u003e\u003c/a\u003e Update hardware flavor enums (automated commit) (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4406\"\u003e#4406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2fbcdfeec8a1bf689623ecb87afc7d5db4cd23bb\"\u003e\u003ccode\u003e2fbcdfe\u003c/code\u003e\u003c/a\u003e [i18n-HI] Add Hindi translation for guides overview (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4405\"\u003e#4405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5bc6bfa7df18752f1adfd649816be315937cfa6f\"\u003e\u003ccode\u003e5bc6bfa\u003c/code\u003e\u003c/a\u003e [Jobs] Add stage/label filtering to list_jobs API and CLI (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4395\"\u003e#4395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/d991f099f53c7439edbf9432c5137d2069199e5a\"\u003e\u003ccode\u003ed991f09\u003c/code\u003e\u003c/a\u003e Fix IndexError in filter_repo_objects on an empty pattern (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4402\"\u003e#4402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/0df783fb8f3d1a37b00255007e9af78e4e9dca8f\"\u003e\u003ccode\u003e0df783f\u003c/code\u003e\u003c/a\u003e Retry requests on httpx.RemoteProtocolError (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4398\"\u003e#4398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.20.1...v1.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 8.9.0 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of \u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated \u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it when the metadata files are missing instead of returning \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e Raise an exception when no metadata file is found (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e Remove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/07389c4c4609a49826ea9ed510419c2e32eccee9\"\u003e\u003ccode\u003e07389c4\u003c/code\u003e\u003c/a\u003e\u003ccode\u003ejaraco/skeleton#193\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/16fb289d38af0d510e39afcbbd43bace2d6d8dd9\"\u003e\u003ccode\u003e16fb289\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epytest-checkdocs\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 2.14\u003c/code\u003e to resolve deprecation warnings (jaraco/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/d9b029be3925b99d3b0d2ef529d79d0a1b9d2c52\"\u003e\u003ccode\u003ed9b029b\u003c/code\u003e\u003c/a\u003e Don't install (nor run) mypy on PyPy (librt build failures) (jaraco/skeleton#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/d5c6862e8d8291aec83aeea8261191e491a63d68\"\u003e\u003ccode\u003ed5c6862\u003c/code\u003e\u003c/a\u003e\u003ccode\u003ejaraco/skeleton#183\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/18a676486f8679438a6b16992177dee66f61bcaa\"\u003e\u003ccode\u003e18a6764\u003c/code\u003e\u003c/a\u003e Re-use ExceptionTrap for trapping exceptions.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.9.0...v9.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jiter` from 0.15.0 to 0.16.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/785cf750016150bda7410e95525bd6ed398102c4\"\u003e\u003ccode\u003e785cf75\u003c/code\u003e\u003c/a\u003e release: 0.16.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/e192631a659bcf251402950b78c5d17a17a9d827\"\u003e\u003ccode\u003ee192631\u003c/code\u003e\u003c/a\u003e Add 'Part of the Pydantic Stack' footer to README (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/c929d0cb4c9f59f9b89d1a0585203924f7a87f3b\"\u003e\u003ccode\u003ec929d0c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eserde\u003c/code\u003e Deserializer implementation (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/253\"\u003e#253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/6d57715e01ec78859c62fc5447073c0b5902de39\"\u003e\u003ccode\u003e6d57715\u003c/code\u003e\u003c/a\u003e Modernize Emscripten CI (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/a3a02cdb056233eb89be77e6c5a11044f07b4d20\"\u003e\u003ccode\u003ea3a02cd\u003c/code\u003e\u003c/a\u003e Bump maturin to v1.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/2fe4246c71c003ddb32c943e3b432925f05f7d3c\"\u003e\u003ccode\u003e2fe4246\u003c/code\u003e\u003c/a\u003e update to PyO3 0.29 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/1429532d486088de53293b57ad315a501e981e9a\"\u003e\u003ccode\u003e1429532\u003c/code\u003e\u003c/a\u003e Drop support for 3.13t target (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/jiter/compare/v0.15.0...v0.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.28.0 to 1.28.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/777b8d06710c140e3606b0d4598e2aa48546c266\"\u003e\u003ccode\u003e777b8d0\u003c/code\u003e\u003c/a\u003e [v1.x] Support TransportSecuritySettings in the WebSocket server transport (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/47204674fb26185c2cf45f065831f27b8e5d5c65\"\u003e\u003ccode\u003e4720467\u003c/code\u003e\u003c/a\u003e [v1.x] Set Development Status classifier to Production/Stable (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/6df3d734265eb49bf758a5e5eb420937337184e9\"\u003e\u003ccode\u003e6df3d73\u003c/code\u003e\u003c/a\u003e [v1.x] Buffer per-request StreamableHTTP streams; store priming event before ...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.28.0...v1.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.43.0 to 2.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.44.0\u003c/h2\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6d9262d5c666a1e4d47f63178db907ba3087ac5d\"\u003e\u003ccode\u003e6d9262d\u003c/code\u003e\u003c/a\u003e release: 2.44.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d35627525e192b7a65b556d8a79d22079ccabdf6\"\u003e\u003ccode\u003ed356275\u003c/code\u003e\u003c/a\u003e [codex] Add AWS Bedrock provider authentication (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f47f9a270861ca6a6096e8ea15ef8f3e1fb089b0\"\u003e\u003ccode\u003ef47f9a2\u003c/code\u003e\u003c/a\u003e fix(auth): prioritize first auth header\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai-agents` from 0.14.6 to 0.17.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: expose configurable websocket max_size limit by \u003ca href=\"https://github.com/anneheartrecord\"\u003e\u003ccode\u003e@​anneheartrecord\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3645\"\u003eopenai/openai-agents-python#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add buffered Chat Completions tool-call streaming by \u003ca href=\"https://github.com/incoffeemonster\"\u003e\u003ccode\u003e@​incoffeemonster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3506\"\u003eopenai/openai-agents-python#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reduce sandbox sink buffering and spool timeouts by \u003ca href=\"https://github.com/2830500285\"\u003e\u003ccode\u003e@​2830500285\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3642\"\u003eopenai/openai-agents-python#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3346\"\u003e#3346\u003c/a\u003e clean up branch-only messages when deleting branches by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3347\"\u003eopenai/openai-agents-python#3347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3348\"\u003e#3348\u003c/a\u003e make AdvancedSQLiteSession add_items atomic by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3349\"\u003eopenai/openai-agents-python#3349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cancel sibling guardrail tasks when one raises by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3239\"\u003eopenai/openai-agents-python#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip needs_approval_checker when status resolved in _collect_runs_by_approval by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3259\"\u003eopenai/openai-agents-python#3259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: validate ls special permission bits by position by \u003ca href=\"https://github.com/a1vazovsky\"\u003e\u003ccode\u003e@​a1vazovsky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3420\"\u003eopenai/openai-agents-python#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: gate remote-mount edit guidance by mode by \u003ca href=\"https://github.com/a1vazovsky\"\u003e\u003ccode\u003e@​a1vazovsky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3423\"\u003eopenai/openai-agents-python#3423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove dependency on types-requests by \u003ca href=\"https://github.com/rouge8\"\u003e\u003ccode\u003e@​rouge8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3509\"\u003eopenai/openai-agents-python#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: empty list/tuple tool output dropped via all([]) == True by \u003ca href=\"https://github.com/vidigoat\"\u003e\u003ccode\u003e@​vidigoat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3554\"\u003eopenai/openai-agents-python#3554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: wake PTY output collection on process exit (E2B) by \u003ca href=\"https://github.com/rohitrastogi\"\u003e\u003ccode\u003e@​rohitrastogi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3610\"\u003eopenai/openai-agents-python#3610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid stale object-id dedupe in server conversation tracker by \u003ca href=\"https://github.com/chutch\"\u003e\u003ccode\u003e@​chutch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3621\"\u003eopenai/openai-agents-python#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: report effective Blaxel timeouts by \u003ca href=\"https://github.com/he-yufeng\"\u003e\u003ccode\u003e@​he-yufeng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3643\"\u003eopenai/openai-agents-python#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: prevent ambiguous Realtime multi-agent tool dispatch by \u003ca href=\"https://github.com/mavrickdeveloper\"\u003e\u003ccode\u003e@​mavrickdeveloper\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3441\"\u003eopenai/openai-agents-python#3441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add hint to duplicated MCP server tool name error message by \u003ca href=\"https://github.com/wustwyh\"\u003e\u003ccode\u003e@​wustwyh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3678\"\u003eopenai/openai-agents-python#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: recursively extract HTTP errors from nested ExceptionGroups by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3556\"\u003eopenai/openai-agents-python#3556\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e changes for tool_not_found_behavior option by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3462\"\u003eopenai/openai-agents-python#3462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: changes for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3487\"\u003e#3487\u003c/a\u003e feature addition by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3488\"\u003eopenai/openai-agents-python#3488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix OpenAI capitalization in auto-generated ref titles by \u003ca href=\"https://github.com/atimothee\"\u003e\u003ccode\u003e@​atimothee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3646\"\u003eopenai/openai-agents-python#3646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add SDK maintainer references and review guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3676\"\u003eopenai/openai-agents-python#3676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.7 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3682\"\u003eopenai/openai-agents-python#3682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rouge8\"\u003e\u003ccode\u003e@​rouge8\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3509\"\u003eopenai/openai-agents-python#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vidigoat\"\u003e\u003ccode\u003e@​vidigoat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3554\"\u003eopenai/openai-agents-python#3554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rohitrastogi\"\u003e\u003ccode\u003e@​rohitrastogi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3610\"\u003eopenai/openai-agents-python#3610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chutch\"\u003e\u003ccode\u003e@​chutch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3621\"\u003eopenai/openai-agents-python#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/he-yufeng\"\u003e\u003ccode\u003e@​he-yufeng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3643\"\u003eopenai/openai-agents-python#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anneheartrecord\"\u003e\u003ccode\u003e@​anneheartrecord\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3645\"\u003eopenai/openai-agents-python#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/2830500285\"\u003e\u003ccode\u003e@​2830500285\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3642\"\u003eopenai/openai-agents-python#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atimothee\"\u003e\u003ccode\u003e@​atimothee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3646\"\u003eopenai/openai-agents-python#3646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/incoffeemonster\"\u003e\u003ccode\u003e@​incoffeemonster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3506\"\u003eopenai/openai-agents-python#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wustwyh\"\u003e\u003ccode\u003e@​wustwyh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3678\"\u003eopenai/openai-agents-python#3678\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add pre-approval tool input guardrails by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3487\"\u003eopenai/openai-agents-python#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SDK-only custom data for tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3486\"\u003eopenai/openai-agents-python#3486\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003efix: enforce the documented strict JSON-compatible contract for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e by \u003ca href=\"https://github.com/siddiksawani\"\u003e\u003ccode\u003e@​siddiksawani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3657\"\u003eopenai/openai-agents-python#3657\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix: suppress handoff whitespace tool-name warnings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3652\"\u003eopenai/openai-agents-python#3652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/8a0e34caaa65b64f5bdf5cf407ac467404c8a106\"\u003e\u003ccode\u003e8a0e34c\u003c/code\u003e\u003c/a\u003e Release 0.17.7 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/30ff4a5239512f8c587b4cd65199e1b3fcf2f6d0\"\u003e\u003ccode\u003e30ff4a5\u003c/code\u003e\u003c/a\u003e fix: recursively extract HTTP errors from nested ExceptionGroups (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3556\"\u003e#3556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/16d16ec2be255177af199361757bc8aedc936dd2\"\u003e\u003ccode\u003e16d16ec\u003c/code\u003e\u003c/a\u003e chore: update maintainer-review skill to have two phases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f706d651240aa8e83a536f03d4317d2ff358eefe\"\u003e\u003ccode\u003ef706d65\u003c/code\u003e\u003c/a\u003e chore: adjust examples-auto-run skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/2df8adcae7de0802d859e9ac0c6d4755747f17de\"\u003e\u003ccode\u003e2df8adc\u003c/code\u003e\u003c/a\u003e fix: add hint to duplicated MCP server tool name error message (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/7192bc968a136a183ae08a5c8d02aee79add41b7\"\u003e\u003ccode\u003e7192bc9\u003c/code\u003e\u003c/a\u003e docs: add SDK maintainer references and review guidance (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3676\"\u003e#3676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a9b7b7ef4a9eb7df50e2d9b837114f899f07b36f\"\u003e\u003ccode\u003ea9b7b7e\u003c/code\u003e\u003c/a\u003e fix(realtime): prevent ambiguous multi-agent tool dispatch (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/28d2a6c8382992b80421c9179997492e5fc39ce0\"\u003e\u003ccode\u003e28d2a6c\u003c/code\u003e\u003c/a\u003e feat: add buffered Chat Completions tool-call streaming (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3506\"\u003e#3506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3f6324c2d2e7cc94d6a44d3e4846d714ed3b83f3\"\u003e\u003ccode\u003e3f6324c\u003c/code\u003e\u003c/a\u003e docs: fix OpenAI capitalization in auto-generated ref titles (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f115dd60159c37f0ca5ed08e6777ff105059e8c2\"\u003e\u003ccode\u003ef115dd6\u003c/code\u003e\u003c/a\u003e fix: reduce sandbox sink buffering and spool timeouts (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3642\"\u003e#3642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.6...v0.17.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `protobuf` from 6.33.6 to 7.35.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/protocolbuffers/protobuf/releases\"\u003eprotobuf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eProtocol Buffers v34.0-rc1\u003c/h2\u003e\n\u003ch1\u003eAnnouncements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThis version includes breaking changes to: C++, Objective-C, PHP, Python.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make generator headers private (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add [[nodiscard]] to many APIs. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make the arena-enabled constructors of \u003ccode\u003eRepeatedField\u003c/code\u003e, \u003ccode\u003eRepeatedPtrField\u003c/code\u003e, and \u003ccode\u003eMap\u003c/code\u003e private. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() \u0026amp;\u0026amp; !is_repeated()) instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] All entity names have length limit (2afb0dc)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003egenerate_minimal_imports\u003c/code\u003e generation option warning (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Fix nullability annotations on some \u003ccode\u003eGPB*Dictionary\u003c/code\u003e types. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003e-[GPBFieldDescriptor optional]\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Other] Remove deprecated flag for enabling MSVC support (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  Add PHP typehints for setters and remove redundant GPBUtil checks (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25296\"\u003eprotocolbuffers/protobuf#25296\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  support default values for editions/proto2 (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25161\"\u003eprotocolbuffers/protobuf#25161\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_format/double_format from python proto text_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_precision from python proto json_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\u003c/a\u003e)\u003c/li\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/ContextualWisdomLab/naruon/pull/856","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContextualWisdomLab%2Fnaruon/issues/856","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/856/packages"},{"uuid":"4713391248","node_id":"PR_kwDORr6ht87pAAUk","number":71,"state":"closed","title":"chore(deps): bump openai-agents from 0.14.6 to 0.17.6","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-25T06:39:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-22T04:22:26.000Z","updated_at":"2026-06-25T06:39:52.000Z","time_to_close":267445,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.14.6","new_version":"0.17.6","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.14.6 to 0.17.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add pre-approval tool input guardrails by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3487\"\u003eopenai/openai-agents-python#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SDK-only custom data for tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3486\"\u003eopenai/openai-agents-python#3486\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003efix: enforce the documented strict JSON-compatible contract for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e by \u003ca href=\"https://github.com/siddiksawani\"\u003e\u003ccode\u003e@​siddiksawani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3657\"\u003eopenai/openai-agents-python#3657\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix: suppress handoff whitespace tool-name warnings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3652\"\u003eopenai/openai-agents-python#3652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix typo in sandbox guide by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3628\"\u003eopenai/openai-agents-python#3628\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.6 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3659\"\u003eopenai/openai-agents-python#3659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/siddiksawani\"\u003e\u003ccode\u003e@​siddiksawani\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3657\"\u003eopenai/openai-agents-python#3657\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.5...v0.17.6\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.5...v0.17.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: expose sandbox error retryability by \u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3581\"\u003eopenai/openai-agents-python#3581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3512\"\u003e#3512\u003c/a\u003e type tool-end hook results as object by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3518\"\u003eopenai/openai-agents-python#3518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use tuple form for SpeechGroupSpanData \u003ccode\u003e__slots__\u003c/code\u003e by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3534\"\u003eopenai/openai-agents-python#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump Modal sandbox extra to 1.4.3 by \u003ca href=\"https://github.com/jdoughty04\"\u003e\u003ccode\u003e@​jdoughty04\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3538\"\u003eopenai/openai-agents-python#3538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add MongoDB session example under examples/memory by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3036\"\u003eopenai/openai-agents-python#3036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add missing space in MCP params docstrings by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3535\"\u003eopenai/openai-agents-python#3535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix docstring typo in stdio params env description by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3557\"\u003eopenai/openai-agents-python#3557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix two docstring grammar errors in tool.py by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3543\"\u003eopenai/openai-agents-python#3543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add Latitude to external tracing processors list by \u003ca href=\"https://github.com/guillemwilly\"\u003e\u003ccode\u003e@​guillemwilly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3577\"\u003eopenai/openai-agents-python#3577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: tweak in usage doc by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3597\"\u003eopenai/openai-agents-python#3597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix string concatenation typo in agent instructions by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3599\"\u003eopenai/openai-agents-python#3599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: capitalization fix in tracing docs by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3602\"\u003eopenai/openai-agents-python#3602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix subject-verb agreement in agent loop description by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3605\"\u003eopenai/openai-agents-python#3605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: add unit tests for run_demo_loop streaming, EOF, and empty-input paths by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3542\"\u003eopenai/openai-agents-python#3542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: add unit tests for _openai_retry helpers (77% -\u0026gt; 95% coverage) by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3544\"\u003eopenai/openai-agents-python#3544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.5 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3619\"\u003eopenai/openai-agents-python#3619\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3534\"\u003eopenai/openai-agents-python#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdoughty04\"\u003e\u003ccode\u003e@​jdoughty04\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3538\"\u003eopenai/openai-agents-python#3538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/guillemwilly\"\u003e\u003ccode\u003e@​guillemwilly\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3577\"\u003eopenai/openai-agents-python#3577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.4...v0.17.5\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.4...v0.17.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/510b7de2ceea05df5ffbbfd461db2f60522dac09\"\u003e\u003ccode\u003e510b7de\u003c/code\u003e\u003c/a\u003e Release 0.17.6 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/09f0ed45e7177c340789f7946b2b14903b1c7d31\"\u003e\u003ccode\u003e09f0ed4\u003c/code\u003e\u003c/a\u003e fix: enforce the documented strict JSON-compatible contract for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3657\"\u003e#3657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/7fc489eb0d2d09b38f81d852c22f9193a89044c0\"\u003e\u003ccode\u003e7fc489e\u003c/code\u003e\u003c/a\u003e feat: add SDK-only custom data for tool outputs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a4ba63f7045d27998a0b1bc1ee64a313574ee139\"\u003e\u003ccode\u003ea4ba63f\u003c/code\u003e\u003c/a\u003e feat: add pre-approval tool input guardrails (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3487\"\u003e#3487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/288455911c243143432e9de0084026fe7a76ba8b\"\u003e\u003ccode\u003e2884559\u003c/code\u003e\u003c/a\u003e fix: suppress handoff whitespace tool-name warnings (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3652\"\u003e#3652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/12e268c8e28c27c5156c2b6d35528cdcdb1958e1\"\u003e\u003ccode\u003e12e268c\u003c/code\u003e\u003c/a\u003e chore: improve pr-draft-summary skill trigger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c359c20647b0b629c52289f13aa7717118f14c8c\"\u003e\u003ccode\u003ec359c20\u003c/code\u003e\u003c/a\u003e docs: update translated pages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/131c3aef76998fb81550c7961866e7b5c2b7a8bc\"\u003e\u003ccode\u003e131c3ae\u003c/code\u003e\u003c/a\u003e docs: tweak examples and senteneces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1b0076dda0cda651ea858ac7c13c59b0630c683e\"\u003e\u003ccode\u003e1b0076d\u003c/code\u003e\u003c/a\u003e fix(docs): fix typo in sandbox guide (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3628\"\u003e#3628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/d8068d96a97dc3b42294a8c832072b16a5cb7f23\"\u003e\u003ccode\u003ed8068d9\u003c/code\u003e\u003c/a\u003e Release 0.17.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3619\"\u003e#3619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.6...v0.17.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.14.6\u0026new-version=0.17.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dlwpdl/vxis/pull/71","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlwpdl%2Fvxis/issues/71","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/71/packages"},{"uuid":"4610972370","node_id":"PR_kwDONtiFDc7jzYl9","number":1976,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["ignore-for-release"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T07:45:47.000Z","updated_at":"2026-06-08T07:45:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":14,"packages":[{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.15.13","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"typer","old_version":"0.25.1","new_version":"0.26.7","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"openai","old_version":"2.37.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"mcp","old_version":"1.27.1","new_version":"1.27.2","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"filelock","old_version":"3.29.0","new_version":"3.29.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"python-multipart","old_version":"0.0.29","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"boto3","old_version":"1.43.9","new_version":"1.43.24","repository_url":"https://github.com/boto/boto3"},{"name":"langgraph","old_version":"1.2.0","new_version":"1.2.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langchain-core","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"openai-agents","old_version":"0.17.2","new_version":"0.17.4","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"langchain-openai","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/langchain-ai/langchain"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 14 updates in the /python directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.13` | `0.15.16` |\n| [typer](https://github.com/fastapi/typer) | `0.25.1` | `0.26.7` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.49.0` |\n| [openai](https://github.com/openai/openai-python) | `2.37.0` | `2.41.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.27.1` | `1.27.2` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.29.0` | `3.29.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.29` | `0.0.32` |\n| [boto3](https://github.com/boto/boto3) | `1.43.9` | `1.43.24` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.2.0` | `1.2.4` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.1` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.17.2` | `0.17.4` |\n| [langchain-openai](https://github.com/langchain-ai/langchain) | `1.2.1` | `1.2.2` |\n\n\nUpdates `pytest-asyncio` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio v1.4.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e - 2026-05-26\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated minimum supported pytest version to v8.4.0. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a \u003ccode\u003eResourceWarning: unclosed event loop\u003c/code\u003e warning that could occur when a synchronous test called \u003ccode\u003easyncio.run()\u003c/code\u003e or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dependency on \u003ccode\u003esphinx-tabs \u0026gt;= 3.5\u003c/code\u003e to organize documentation examples into tabs. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio v1.4.0a2\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2\"\u003e1.4.0a2\u003c/a\u003e - 2026-05-02\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425\"\u003e\u003ccode\u003e6e14cd2\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e\"\u003e\u003ccode\u003e4b900fb\u003c/code\u003e\u003c/a\u003e Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf\"\u003e\u003ccode\u003eab9f632\u003c/code\u003e\u003c/a\u003e Build(deps): Bump zipp from 3.23.1 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa\"\u003e\u003ccode\u003ea56fc77\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis from 6.152.6 to 6.152.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d\"\u003e\u003ccode\u003ee8bae9b\u003c/code\u003e\u003c/a\u003e Build(deps): Bump requests from 2.34.0 to 2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de\"\u003e\u003ccode\u003efc43340\u003c/code\u003e\u003c/a\u003e Build(deps): Bump idna from 3.14 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/762eaf5033b798b965c92afdbb2cebefa8fc3a8b\"\u003e\u003ccode\u003e762eaf5\u003c/code\u003e\u003c/a\u003e Build(deps): Bump jaraco-functools from 4.4.0 to 4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/b62e2228c80070977baf6b77ba89d5c148af920f\"\u003e\u003ccode\u003eb62e222\u003c/code\u003e\u003c/a\u003e Build(deps): Bump click from 8.3.3 to 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/919044700627889d25ca63b6e7a3bc785f3137eb\"\u003e\u003ccode\u003e9190447\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pydantic from 2.13.3 to 2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/82a393c5e31b6ebbbd8ec2a8dafc5f35b9cf1236\"\u003e\u003ccode\u003e82a393c\u003c/code\u003e\u003c/a\u003e ci: Remove unnecessary debug output.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.13 to 0.15.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6c498ab5394edc5622d7f348e12956bf86203716\"\u003e\u003ccode\u003e6c498ab\u003c/code\u003e\u003c/a\u003e Bump 0.15.16 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25635\"\u003e#25635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e51e132831c4e1c4a5ac00fca4c9256354ab99bf\"\u003e\u003ccode\u003ee51e132\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (`AS...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7c6dcd9f2611999c449143d241c582dedf287964\"\u003e\u003ccode\u003e7c6dcd9\u003c/code\u003e\u003c/a\u003e [ty] Add caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/27058fc071b542bf06395ba89cabed061d313ca6\"\u003e\u003ccode\u003e27058fc\u003c/code\u003e\u003c/a\u003e [ty] Compact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bf80d05f007c939799f530c9e775ed9449f5b2eb\"\u003e\u003ccode\u003ebf80d05\u003c/code\u003e\u003c/a\u003e Fix CODEOWNERS syntax (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25622\"\u003e#25622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10ccd511e94a81d1e836b174f1c553a73ff3f1b3\"\u003e\u003ccode\u003e10ccd51\u003c/code\u003e\u003c/a\u003e Shrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d7135f4d23e7f4d8404daed16b9ef11d14f3fb9\"\u003e\u003ccode\u003e0d7135f\u003c/code\u003e\u003c/a\u003e [ty] Upgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/49493a3cea83a08fa9aa143695017c816a540f1d\"\u003e\u003ccode\u003e49493a3\u003c/code\u003e\u003c/a\u003e [ty] Show type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/85207d3b7657a84252f266766cb0d56034dc21cc\"\u003e\u003ccode\u003e85207d3\u003c/code\u003e\u003c/a\u003e [ty] sys.implementation.version is not sys.version_info (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a8a0614348c1fcf47fc9b666eff61a103914d520\"\u003e\u003ccode\u003ea8a0614\u003c/code\u003e\u003c/a\u003e [ty] Avoid retaining duplicate function signatures (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25609\"\u003e#25609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.13...0.15.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typer` from 0.25.1 to 0.26.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.26.7\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Respect wait=False when launching URLs with xdg-open. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1820\"\u003e#1820\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.6\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that the default of a list argument is used correctly. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1821\"\u003e#1821\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Speed up the CI by shuffling the test matrix. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1815\"\u003e#1815\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.5\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that hidden commands are not shown when Rich markup is disabled. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1812\"\u003e#1812\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove old stub packages. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1810\"\u003e#1810\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.4\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update AI Library Skill to avoid verbose code for CLI Options. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1808\"\u003e#1808\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add CI to create draft release after merging a \u003ccode\u003erelease\u003c/code\u003e PR. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1807\"\u003e#1807\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update labeler to accept label \u003ccode\u003erelease\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1806\"\u003e#1806\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update GitHub Action permissions for prepare-release. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1804\"\u003e#1804\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add GitHub Actions prepare release workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1802\"\u003e#1802\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update publish action, do not use uv cache. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1803\"\u003e#1803\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1793\"\u003e#1793\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Unify the testing functionality. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1792\"\u003e#1792\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Update version of latest-changes GitHub action. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1798\"\u003e#1798\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that an envvar set for a \u003ccode\u003etyper.Option\u003c/code\u003e list is split on whitespace. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1791\"\u003e#1791\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.26.7 (2026-06-03)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Respect wait=False when launching URLs with xdg-open. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1820\"\u003e#1820\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.6 (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that the default of a list argument is used correctly. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1821\"\u003e#1821\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Speed up the CI by shuffling the test matrix. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1815\"\u003e#1815\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.5 (2026-06-01)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that hidden commands are not shown when Rich markup is disabled. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1812\"\u003e#1812\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove old stub packages. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1810\"\u003e#1810\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.4 (2026-05-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update AI Library Skill to avoid verbose code for CLI Options. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1808\"\u003e#1808\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add CI to create draft release after merging a \u003ccode\u003erelease\u003c/code\u003e PR. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1807\"\u003e#1807\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update labeler to accept label \u003ccode\u003erelease\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1806\"\u003e#1806\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update GitHub Action permissions for prepare-release. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1804\"\u003e#1804\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add GitHub Actions prepare release workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1802\"\u003e#1802\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update publish action, do not use uv cache. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1803\"\u003e#1803\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1793\"\u003e#1793\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.3 (2026-05-28)\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Unify the testing functionality. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1792\"\u003e#1792\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Update version of latest-changes GitHub action. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1798\"\u003e#1798\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/4e10334990db4e7e1e9a71aff363bcae7f7fc76d\"\u003e\u003ccode\u003e4e10334\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.26.7 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1823\"\u003e#1823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/08a8a032d3524035505babd5cb52eae93eab3f96\"\u003e\u003ccode\u003e08a8a03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/8e75bc3565d5dc270cd4ef3b09b5b2abf9f8491a\"\u003e\u003ccode\u003e8e75bc3\u003c/code\u003e\u003c/a\u003e 🐛 Respect wait=False when launching URLs with xdg-open (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1820\"\u003e#1820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/d2e002ab0d0afc9527cfacc00dd4c359a44898e9\"\u003e\u003ccode\u003ed2e002a\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.26.6 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/2fe5d0c2b63db2243b3f3ad37d9f164791a390b1\"\u003e\u003ccode\u003e2fe5d0c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/06fce7dc851de662792c840320abe990ddd3566e\"\u003e\u003ccode\u003e06fce7d\u003c/code\u003e\u003c/a\u003e 🐛 Ensure that the default of a list argument is used correctly (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1821\"\u003e#1821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/7f888b24c867458ab9547702720b71dc920c8925\"\u003e\u003ccode\u003e7f888b2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/2e9bf9e49401e58c59947a28f062566343f94c8f\"\u003e\u003ccode\u003e2e9bf9e\u003c/code\u003e\u003c/a\u003e 👷 Speed up the CI by shuffling the test matrix (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1815\"\u003e#1815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/1888fa2eb494564634a0f9080f4701d71c26225d\"\u003e\u003ccode\u003e1888fa2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.26.5 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1813\"\u003e#1813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a493a98a342b6565c37f9a4100b6eb1ae5a1b410\"\u003e\u003ccode\u003ea493a98\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.25.1...0.26.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.47.0 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump httptools minimum version to 0.8.0 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2962\"\u003eKludex/uvicorn#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2971\"\u003eKludex/uvicorn#2971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.0 (June 3, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003ehttptools\u003c/code\u003e minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (reverses the 0.48.0 behavior of ignoring them) (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3ef2e3e08e3d9ad9572800f8bc54f3eaed9eab0a\"\u003e\u003ccode\u003e3ef2e3e\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2973\"\u003e#2973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/eeb64b1d1c95a14096ed3313377c74b485f558fc\"\u003e\u003ccode\u003eeeb64b1\u003c/code\u003e\u003c/a\u003e Consume duplicate forwarding headers in ProxyHeadersMiddleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/630f4aca14e79183617c71be714030842a1041c5\"\u003e\u003ccode\u003e630f4ac\u003c/code\u003e\u003c/a\u003e Make the watchfiles reload tests deterministic (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2972\"\u003e#2972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9154922e3730f7aba68ecc3ecbf536680ee8fd1c\"\u003e\u003ccode\u003e9154922\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group across 1 directory with 6 updates ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/739727a1d80e468d1e47e98bbd824ee9e3c9554b\"\u003e\u003ccode\u003e739727a\u003c/code\u003e\u003c/a\u003e Migrate docs deploy from Cloudflare Pages to Workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2967\"\u003e#2967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/be4a240488d3fb678a11b8e8f83505266f5f1de7\"\u003e\u003ccode\u003ebe4a240\u003c/code\u003e\u003c/a\u003e Gate docs preview deploy on Cloudflare token presence (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c489d7e10dfe653a2bba914feedf2a632a026e6f\"\u003e\u003ccode\u003ec489d7e\u003c/code\u003e\u003c/a\u003e Bump httptools minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9f547bd82ef52bcba206e04170b359bd6daa25b3\"\u003e\u003ccode\u003e9f547bd\u003c/code\u003e\u003c/a\u003e Skip docs preview deploy for Dependabot PRs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/44446b894e37ca76830d6aa83df4349795400ed4\"\u003e\u003ccode\u003e44446b8\u003c/code\u003e\u003c/a\u003e Migrate documentation from MkDocs Material to Zensical (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cfd659c4f18b526adce9c255c96707bab20af40c\"\u003e\u003ccode\u003ecfd659c\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions to 10.21.3 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2958\"\u003e#2958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.37.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.27.1 to 1.27.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/releases\"\u003emcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.27.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] ci: deploy docs to py.sdk.modelcontextprotocol.io via Pages artifact by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2635\"\u003emodelcontextprotocol/python-sdk#2635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] Add subject and claims to AccessToken by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2690\"\u003emodelcontextprotocol/python-sdk#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] Bind transport sessions to the authenticated principal by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2719\"\u003emodelcontextprotocol/python-sdk#2719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] Scope experimental tasks to the session that created them by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2720\"\u003emodelcontextprotocol/python-sdk#2720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.27.1...v1.27.2\"\u003ehttps://github.com/modelcontextprotocol/python-sdk/compare/v1.27.1...v1.27.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/62137874ff26dd74d2fea80ff528a7fd9ca7a5e7\"\u003e\u003ccode\u003e6213787\u003c/code\u003e\u003c/a\u003e [v1.x] Scope experimental tasks to the session that created them (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2720\"\u003e#2720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/ce267b6fc515dc4efc1dc70b6975b16ff0feef0a\"\u003e\u003ccode\u003ece267b6\u003c/code\u003e\u003c/a\u003e [v1.x] Bind transport sessions to the authenticated principal (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/1abcca2408a6b50e10ec601181f63f9978705c00\"\u003e\u003ccode\u003e1abcca2\u003c/code\u003e\u003c/a\u003e [v1.x] Add subject and claims to AccessToken (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2690\"\u003e#2690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/9773a3f75edab3157253c8e612db1bc338cb9a1b\"\u003e\u003ccode\u003e9773a3f\u003c/code\u003e\u003c/a\u003e [v1.x] ci: deploy docs to py.sdk.modelcontextprotocol.io via Pages artifact (...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.27.1...v1.27.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 to 0.136.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🍱 Update sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.29.0 to 3.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.29.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix API docs of \u003ccode\u003erelease()\u003c/code\u003e by \u003ca href=\"https://github.com/MrAnno\"\u003e\u003ccode\u003e@​MrAnno\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/540\"\u003etox-dev/filelock#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify per-thread scope of FileLock configuration by \u003ca href=\"https://github.com/Gares95\"\u003e\u003ccode\u003e@​Gares95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/543\"\u003etox-dev/filelock#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path by \u003ca href=\"https://github.com/lphuc2250gma\"\u003e\u003ccode\u003e@​lphuc2250gma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/542\"\u003etox-dev/filelock#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path by \u003ca href=\"https://github.com/lphuc2250gma\"\u003e\u003ccode\u003e@​lphuc2250gma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/544\"\u003etox-dev/filelock#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path by \u003ca href=\"https://github.com/lphuc2250gma\"\u003e\u003ccode\u003e@​lphuc2250gma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/545\"\u003etox-dev/filelock#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(soft): refuse to follow symlinks when reading the lock file by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/548\"\u003etox-dev/filelock#548\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrAnno\"\u003e\u003ccode\u003e@​MrAnno\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/540\"\u003etox-dev/filelock#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gares95\"\u003e\u003ccode\u003e@​Gares95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/543\"\u003etox-dev/filelock#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lphuc2250gma\"\u003e\u003ccode\u003e@​lphuc2250gma\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/542\"\u003etox-dev/filelock#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/548\"\u003etox-dev/filelock#548\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.29.0...3.29.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.29.0...3.29.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst\"\u003efilelock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e3.29.1 (2026-06-03)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(soft): refuse to follow symlinks when reading the lock file :pr:\u003ccode\u003e548\u003c/code\u003e - by :user:\u003ccode\u003edxbjavid\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e547\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e546\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path :pr:\u003ccode\u003e545\u003c/code\u003e - by :user:\u003ccode\u003elphuc2250gma\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path :pr:\u003ccode\u003e544\u003c/code\u003e - by :user:\u003ccode\u003elphuc2250gma\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path :pr:\u003ccode\u003e542\u003c/code\u003e - by :user:\u003ccode\u003elphuc2250gma\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify per-thread scope of FileLock configuration :pr:\u003ccode\u003e543\u003c/code\u003e - by :user:\u003ccode\u003eGares95\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e541\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix API docs of \u003ccode\u003erelease()\u003c/code\u003e :pr:\u003ccode\u003e540\u003c/code\u003e - by :user:\u003ccode\u003eMrAnno\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e539\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e538\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e537\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 :pr:\u003ccode\u003e536\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e535\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.29.0 (2026-04-19)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows :pr:\u003ccode\u003e534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency :pr:\u003ccode\u003e533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 :pr:\u003ccode\u003e530\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.28.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again :pr:\u003ccode\u003e529\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.1 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling :pr:\u003ccode\u003e518\u003c/code\u003e - by :user:\u003ccode\u003enaarob\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 :pr:\u003ccode\u003e525\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.0 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking :pr:\u003ccode\u003e524\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e523\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/438b6fe991411a104a01baa543a9466c73f1fc79\"\u003e\u003ccode\u003e438b6fe\u003c/code\u003e\u003c/a\u003e Release 3.29.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bfbfa76c1b5069a7af1cbcddafe22fbf3f1a1aae\"\u003e\u003ccode\u003ebfbfa76\u003c/code\u003e\u003c/a\u003e 🐛 fix(soft): refuse to follow symlinks when reading the lock file (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/c51a72cb4913a1e451f892d238b81e39f4f64340\"\u003e\u003ccode\u003ec51a72c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cc05fd7f91030bc7f93c1467e3d7fbd3d401d624\"\u003e\u003ccode\u003ecc05fd7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb947e58c22d8f352abe8ae02078596eeb33fd2f\"\u003e\u003ccode\u003ecb947e5\u003c/code\u003e\u003c/a\u003e chore: improve filelock maintenance path (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/e087ca9d94091336c4256f3a6794b5dfed9595e4\"\u003e\u003ccode\u003ee087ca9\u003c/code\u003e\u003c/a\u003e chore: improve filelock maintenance path (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f9dd949b1976c9d124e9cd6b15102bfb8340ba4d\"\u003e\u003ccode\u003ef9dd949\u003c/code\u003e\u003c/a\u003e chore: improve filelock maintenance path (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/9200f1f53d924d6425cc663af03f9835bf53382a\"\u003e\u003ccode\u003e9200f1f\u003c/code\u003e\u003c/a\u003e docs: clarify per-thread scope of FileLock configuration (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/9d8985fc953d1301a56a74bc58d8a6b580bce5fa\"\u003e\u003ccode\u003e9d8985f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/7d1f48ccef189397896e55e4121d0fa74edb3be2\"\u003e\u003ccode\u003e7d1f48c\u003c/code\u003e\u003c/a\u003e docs: fix API docs of \u003ccode\u003erelease()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.29.0...3.29.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.29 to 0.0.32\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.32\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace per-byte partial-boundary scan with rfind lookbehind by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/300\"\u003eKludex/python-multipart#300\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.31...0.0.32\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.31...0.0.32\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.31\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up multipart header parsing and callback dispatch by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/295\"\u003eKludex/python-multipart#295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBound header field name size before validating by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/296\"\u003eKludex/python-multipart#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate Content-Length is non-negative in parse_form by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/297\"\u003eKludex/python-multipart#297\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.30...0.0.31\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.30...0.0.31\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.30\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTreat only \u003ccode\u003e\u0026amp;\u003c/code\u003e as the urlencoded field separator by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/290\"\u003eKludex/python-multipart#290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore RFC 2231 extended parameters in \u003ccode\u003eparse_options_header\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/291\"\u003eKludex/python-multipart#291\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.29...0.0.30\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.29...0.0.30\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.32 (2026-06-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary scanning for CR/LF-dense part data \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/300\"\u003e#300\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.31 (2026-06-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up multipart header parsing and callback dispatch \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/295\"\u003e#295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBound header field name size before validating \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/296\"\u003e#296\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003eContent-Length\u003c/code\u003e is non-negative in \u003ccode\u003eparse_form\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/297\"\u003e#297\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.30 (2026-05-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eParse \u003ccode\u003eap...\n\n_Description has been truncated_","html_url":"https://github.com/kagent-dev/kagent/pull/1976","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kagent-dev%2Fkagent/issues/1976","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1976/packages"},{"uuid":"4572653045","node_id":"PR_kwDOSUcW3s7h2X4z","number":72,"state":"closed","title":"chore(deps): bump the python-dependencies group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-13T02:19:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T15:09:33.000Z","updated_at":"2026-06-13T02:19:31.000Z","time_to_close":904189,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":5,"packages":[{"name":"idna","old_version":"3.16","new_version":"3.18","repository_url":"https://github.com/kjd/idna"},{"name":"openai","old_version":"2.38.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openai-agents","old_version":"0.17.3","new_version":"0.17.4","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"starlette","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"ruff","old_version":"0.15.14","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [idna](https://github.com/kjd/idna) | `3.16` | `3.18` |\n| [openai](https://github.com/openai/openai-python) | `2.38.0` | `2.41.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.17.3` | `0.17.4` |\n| [starlette](https://github.com/Kludex/starlette) | `1.1.0` | `1.2.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.14` | `0.15.16` |\n\n\nUpdates `idna` from 3.16 to 3.18\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.md\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.18 (2026-06-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen decoding a domain, add a \u003ccode\u003edisplay\u003c/code\u003e argument that will pass\nthrough invalid labels rather than raising an exception.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.17 (2026-05-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSubstantial 75% reduction in memory usage through new data\nstructures and some optimization in processing speed.\u003c/li\u003e\n\u003cli\u003eAdded a general 1024-character input length cap to the public\nvalidation, conversion, and codec entry points. This is well above\nany legitimate domain or label and guards against pathological\ninputs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/f39ea903ba49eb5a0b2c6723c9a929b41ed4a0f1\"\u003e\u003ccode\u003ef39ea90\u003c/code\u003e\u003c/a\u003e Release 3.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/40f4e407bc7452da37c24b0c112dcda9a5b299ba\"\u003e\u003ccode\u003e40f4e40\u003c/code\u003e\u003c/a\u003e Pre-release 3.18rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1a5bf80f2fa40454589e6144efe5f72015ef9d24\"\u003e\u003ccode\u003e1a5bf80\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/253\"\u003e#253\u003c/a\u003e from kjd/lenient-decode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5bbb26fc86e28c4ee1434ae8ae8db76de4c2a5ac\"\u003e\u003ccode\u003e5bbb26f\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into lenient-decode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c532bae5270489cef8faf9f6b1eb70cbcb454c6d\"\u003e\u003ccode\u003ec532bae\u003c/code\u003e\u003c/a\u003e Rename decode() lenient= option to display= (issue \u003ca href=\"https://redirect.github.com/kjd/idna/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/0b1758ba11952a2e88fd6141ffa620409bff0580\"\u003e\u003ccode\u003e0b1758b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/252\"\u003e#252\u003c/a\u003e from kjd/release-3.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/f48619c4cea6859b938d560fdd9feb898e678567\"\u003e\u003ccode\u003ef48619c\u003c/code\u003e\u003c/a\u003e Release 3.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/7421ba8003227f816142ab40178e3a7d204e6847\"\u003e\u003ccode\u003e7421ba8\u003c/code\u003e\u003c/a\u003e Pre-release 3.17rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/22ebb73b164081f209449b50162eb7ce086e96a4\"\u003e\u003ccode\u003e22ebb73\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/251\"\u003e#251\u003c/a\u003e from kjd/structure-optimizations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/2a7ac0a58c788d50112a5003af545a83807fb108\"\u003e\u003ccode\u003e2a7ac0a\u003c/code\u003e\u003c/a\u003e Drop redundant parallel-arrays comment from uts46data\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.16...v3.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.38.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai-agents` from 0.17.3 to 0.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support Realtime custom voice objects by \u003ca href=\"https://github.com/lionel-oai\"\u003e\u003ccode\u003e@​lionel-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3473\"\u003eopenai/openai-agents-python#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3461\"\u003eopenai/openai-agents-python#3461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: apply hardened http client default to MCP SSE transport by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3466\"\u003eopenai/openai-agents-python#3466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use non-None value for output in FunctionSpanData by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3483\"\u003eopenai/openai-agents-python#3483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: redact invalid JSON payload in ModelBehaviorError data by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3485\"\u003eopenai/openai-agents-python#3485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export more tracing related functions \u0026amp; types from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3489\"\u003eopenai/openai-agents-python#3489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3490\"\u003eopenai/openai-agents-python#3490\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 0.17.4 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3505\"\u003eopenai/openai-agents-python#3505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/6d5b888f6f57b8356398bea883b45172fec54b95\"\u003e\u003ccode\u003e6d5b888\u003c/code\u003e\u003c/a\u003e Release 0.17.4 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3505\"\u003e#3505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a92ea4c8e4c2bff05b81041d0d1f3df41360bfb\"\u003e\u003ccode\u003e9a92ea4\u003c/code\u003e\u003c/a\u003e Support Realtime custom voice objects (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fedc809afd5abb492df21c8e6bf365653b06c21f\"\u003e\u003ccode\u003efedc809\u003c/code\u003e\u003c/a\u003e fix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem fr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/573530febb67ff561d02e57cce639e792d4d716e\"\u003e\u003ccode\u003e573530f\u003c/code\u003e\u003c/a\u003e fix: export more tracing related functions \u0026amp; types from agents (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3489\"\u003e#3489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/813a00324e8165eacefd3ec4760d27b1d65d2a46\"\u003e\u003ccode\u003e813a003\u003c/code\u003e\u003c/a\u003e fix: redact invalid JSON payload in ModelBehaviorError data (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3485\"\u003e#3485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/eda7b51aeae663204dc3b8a1431688fa5fc50620\"\u003e\u003ccode\u003eeda7b51\u003c/code\u003e\u003c/a\u003e fix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3483\"\u003e#3483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/45effb4b7d7de1226ebba7ba304bccfcf0a37fdf\"\u003e\u003ccode\u003e45effb4\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9303389d8452995b18ba151614489fb93eaefad5\"\u003e\u003ccode\u003e9303389\u003c/code\u003e\u003c/a\u003e fix: use non-None value for output in FunctionSpanData (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3475\"\u003e#3475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9514473c234c8419b812b658157a5c3d4341713f\"\u003e\u003ccode\u003e9514473\u003c/code\u003e\u003c/a\u003e fix: apply hardened http client default to MCP SSE transport (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3466\"\u003e#3466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/445ad2273c2b527fc98dd8c1e53b3108d6bd93ea\"\u003e\u003ccode\u003e445ad22\u003c/code\u003e\u003c/a\u003e docs: add SECURITY.md in the same way with openai-agents-js repo\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 1.1.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ehttpx2\u003c/code\u003e for type checking in the \u003ccode\u003etestclient\u003c/code\u003e module by \u003ca href=\"https://github.com/leifwar\"\u003e\u003ccode\u003e@​leifwar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3304\"\u003eKludex/starlette#3304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd assert error for requires() when request param is not Request type by \u003ca href=\"https://github.com/KeeganOP\"\u003e\u003ccode\u003e@​KeeganOP\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3298\"\u003eKludex/starlette#3298\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leifwar\"\u003e\u003ccode\u003e@​leifwar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3304\"\u003eKludex/starlette#3304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/diskeu\"\u003e\u003ccode\u003e@​diskeu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3243\"\u003eKludex/starlette#3243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KeeganOP\"\u003e\u003ccode\u003e@​KeeganOP\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3298\"\u003eKludex/starlette#3298\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/1.2.0...1.2.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.2.0...1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport httpx2 in the test client by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3291\"\u003eKludex/starlette#3291\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/1.1.0...1.2.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.1.0...1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.1 (May 31, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ehttpx2\u003c/code\u003e for type checking in the \u003ccode\u003etestclient\u003c/code\u003e module \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3304\"\u003e#3304\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd assert error for \u003ccode\u003erequires()\u003c/code\u003e when the request parameter is not a \u003ccode\u003eRequest\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3298\"\u003e#3298\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.0 (May 28, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eSupport httpx2 in the test client \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3291\"\u003e#3291\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/ef773fe9fe86d452ea014a39c6ede1029b341e73\"\u003e\u003ccode\u003eef773fe\u003c/code\u003e\u003c/a\u003e Version 1.2.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3306\"\u003e#3306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3fc68a7e394cb938bd202774b9d6f5c33a237a66\"\u003e\u003ccode\u003e3fc68a7\u003c/code\u003e\u003c/a\u003e Add sponsors section to docs sidebar (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3305\"\u003e#3305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b053f7bbf194c3fac77d87c6033ec6181eb4cd90\"\u003e\u003ccode\u003eb053f7b\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 6 updates...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/14787751400853cc21853983a02d84bbfb4da45d\"\u003e\u003ccode\u003e1478775\u003c/code\u003e\u003c/a\u003e Add assert error for requires() when request param is not Request type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3298\"\u003e#3298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/65765470827be550cdbc1a2e7165da494da7f6e8\"\u003e\u003ccode\u003e6576547\u003c/code\u003e\u003c/a\u003e Describe disconnected-after-response behavior in test docstring (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3243\"\u003e#3243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9cb1553be6ff3d18a0d30a18e3b623ea86edeef0\"\u003e\u003ccode\u003e9cb1553\u003c/code\u003e\u003c/a\u003e Use same module (httpx|httpx2) for type checking as for runtime (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3304\"\u003e#3304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4060987466412dcdb3e5a0f05973b4208dddb6f0\"\u003e\u003ccode\u003e4060987\u003c/code\u003e\u003c/a\u003e Version 1.2.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3300\"\u003e#3300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/1e289ca3f957370122fb3bf7e046db65f6675037\"\u003e\u003ccode\u003e1e289ca\u003c/code\u003e\u003c/a\u003e Migrate docs deploy from Cloudflare Pages to Workers Static Assets (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3282\"\u003e#3282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/100f05a66bf3ff5643540164ae95fc3ad9ed3443\"\u003e\u003ccode\u003e100f05a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ehttpx2\u003c/code\u003e as a dev dependency (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3295\"\u003e#3295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/508023b488b649d97c091eb60da1d8ef3636ee06\"\u003e\u003ccode\u003e508023b\u003c/code\u003e\u003c/a\u003e Support httpx2 in the test client (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3291\"\u003e#3291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/1.1.0...1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.14 to 0.15.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6c498ab5394edc5622d7f348e12956bf86203716\"\u003e\u003ccode\u003e6c498ab\u003c/code\u003e\u003c/a\u003e Bump 0.15.16 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25635\"\u003e#25635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e51e132831c4e1c4a5ac00fca4c9256354ab99bf\"\u003e\u003ccode\u003ee51e132\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (`AS...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7c6dcd9f2611999c449143d241c582dedf287964\"\u003e\u003ccode\u003e7c6dcd9\u003c/code\u003e\u003c/a\u003e [ty] Add caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/27058fc071b542bf06395ba89cabed061d313ca6\"\u003e\u003ccode\u003e27058fc\u003c/code\u003e\u003c/a\u003e [ty] Compact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bf80d05f007c939799f530c9e775ed9449f5b2eb\"\u003e\u003ccode\u003ebf80d05\u003c/code\u003e\u003c/a\u003e Fix CODEOWNERS syntax (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25622\"\u003e#25622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10ccd511e94a81d1e836b174f1c553a73ff3f1b3\"\u003e\u003ccode\u003e10ccd51\u003c/code\u003e\u003c/a\u003e Shrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d7135f4d23e7f4d8404daed16b9ef11d14f3fb9\"\u003e\u003ccode\u003e0d7135f\u003c/code\u003e\u003c/a\u003e [ty] Upgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/49493a3cea83a08fa9aa143695017c816a540f1d\"\u003e\u003ccode\u003e49493a3\u003c/code\u003e\u003c/a\u003e [ty] Show type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/85207d3b7657a84252f266766cb0d56034dc21cc\"\u003e\u003ccode\u003e85207d3\u003c/code\u003e\u003c/a\u003e [ty] sys.implementation.version is not sys.version_info (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a8a0614348c1fcf47fc9b666eff61a103914d520\"\u003e\u003ccode\u003ea8a0614\u003c/code\u003e\u003c/a\u003e [ty] Avoid retaining duplicate function signatures (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25609\"\u003e#25609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.14...0.15.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/tryskian/scorey/pull/72","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryskian%2Fscorey/issues/72","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/72/packages"},{"uuid":"4572514299","node_id":"PR_kwDORT9AZc7h16Ly","number":644,"state":"closed","title":"build(deps): bump openai-agents from 0.17.3 to 0.17.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-13T01:46:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T14:52:05.000Z","updated_at":"2026-06-13T01:46:55.000Z","time_to_close":903281,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"openai-agents","old_version":"0.17.3","new_version":"0.17.4","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.17.3 to 0.17.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support Realtime custom voice objects by \u003ca href=\"https://github.com/lionel-oai\"\u003e\u003ccode\u003e@​lionel-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3473\"\u003eopenai/openai-agents-python#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3461\"\u003eopenai/openai-agents-python#3461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: apply hardened http client default to MCP SSE transport by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3466\"\u003eopenai/openai-agents-python#3466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use non-None value for output in FunctionSpanData by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3483\"\u003eopenai/openai-agents-python#3483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: redact invalid JSON payload in ModelBehaviorError data by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3485\"\u003eopenai/openai-agents-python#3485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export more tracing related functions \u0026amp; types from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3489\"\u003eopenai/openai-agents-python#3489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3490\"\u003eopenai/openai-agents-python#3490\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 0.17.4 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3505\"\u003eopenai/openai-agents-python#3505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/6d5b888f6f57b8356398bea883b45172fec54b95\"\u003e\u003ccode\u003e6d5b888\u003c/code\u003e\u003c/a\u003e Release 0.17.4 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3505\"\u003e#3505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a92ea4c8e4c2bff05b81041d0d1f3df41360bfb\"\u003e\u003ccode\u003e9a92ea4\u003c/code\u003e\u003c/a\u003e Support Realtime custom voice objects (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fedc809afd5abb492df21c8e6bf365653b06c21f\"\u003e\u003ccode\u003efedc809\u003c/code\u003e\u003c/a\u003e fix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem fr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/573530febb67ff561d02e57cce639e792d4d716e\"\u003e\u003ccode\u003e573530f\u003c/code\u003e\u003c/a\u003e fix: export more tracing related functions \u0026amp; types from agents (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3489\"\u003e#3489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/813a00324e8165eacefd3ec4760d27b1d65d2a46\"\u003e\u003ccode\u003e813a003\u003c/code\u003e\u003c/a\u003e fix: redact invalid JSON payload in ModelBehaviorError data (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3485\"\u003e#3485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/eda7b51aeae663204dc3b8a1431688fa5fc50620\"\u003e\u003ccode\u003eeda7b51\u003c/code\u003e\u003c/a\u003e fix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3483\"\u003e#3483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/45effb4b7d7de1226ebba7ba304bccfcf0a37fdf\"\u003e\u003ccode\u003e45effb4\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9303389d8452995b18ba151614489fb93eaefad5\"\u003e\u003ccode\u003e9303389\u003c/code\u003e\u003c/a\u003e fix: use non-None value for output in FunctionSpanData (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3475\"\u003e#3475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9514473c234c8419b812b658157a5c3d4341713f\"\u003e\u003ccode\u003e9514473\u003c/code\u003e\u003c/a\u003e fix: apply hardened http client default to MCP SSE transport (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3466\"\u003e#3466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/445ad2273c2b527fc98dd8c1e53b3108d6bd93ea\"\u003e\u003ccode\u003e445ad22\u003c/code\u003e\u003c/a\u003e docs: add SECURITY.md in the same way with openai-agents-js repo\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/tryskian/polinko/pull/644","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryskian%2Fpolinko/issues/644","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/644/packages"},{"uuid":"4520310526","node_id":"PR_kwDOSKFNzM7fNcsi","number":38,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["ignore-for-release"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T00:23:31.000Z","updated_at":"2026-05-26T00:23:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":28,"packages":[{"name":"ruff","old_version":"0.15.11","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"authlib","old_version":"1.7.0","new_version":"1.7.2","repository_url":"https://github.com/authlib/authlib"},{"name":"google-auth","old_version":"2.47.0","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"anyio","old_version":"4.10.0","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"typer","old_version":"0.16.0","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"openai","old_version":"2.14.0","new_version":"2.38.0","repository_url":"https://github.com/openai/openai-python"},{"name":"mcp","old_version":"1.25.0","new_version":"1.27.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"fastapi","old_version":"0.129.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"filelock","old_version":"3.20.3","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.29","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"boto3","old_version":"1.42.28","new_version":"1.43.14","repository_url":"https://github.com/boto/boto3"},{"name":"ollama","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/ollama/ollama-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"opentelemetry-instrumentation-openai","old_version":"0.52.5","new_version":"0.60.0","repository_url":"https://github.com/traceloop/openllmetry"},{"name":"langgraph","old_version":"1.0.6","new_version":"1.2.1","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"openai-agents","old_version":"0.6.5","new_version":"0.17.3","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"langchain-openai","old_version":"1.1.7","new_version":"1.2.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langgraph-checkpoint-sqlite","old_version":"3.0.3","new_version":"3.1.0","repository_url":"https://github.com/langchain-ai/langgraph"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 23 updates in the /python directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.14` |\n| [authlib](https://github.com/authlib/authlib) | `1.7.0` | `1.7.2` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.47.0` | `2.53.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.13.0` |\n| [typer](https://github.com/fastapi/typer) | `0.16.0` | `0.25.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.48.0` |\n| [openai](https://github.com/openai/openai-python) | `2.14.0` | `2.38.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.25.0` | `1.27.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.129.0` | `0.136.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.3` | `3.29.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.29` |\n| [boto3](https://github.com/boto/boto3) | `1.42.28` | `1.43.14` |\n| [ollama](https://github.com/ollama/ollama-python) | `0.6.1` | `0.6.2` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [opentelemetry-instrumentation-openai](https://github.com/traceloop/openllmetry) | `0.52.5` | `0.60.0` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.0.6` | `1.2.1` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.6.5` | `0.17.3` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [langchain-openai](https://github.com/langchain-ai/langchain) | `1.1.7` | `1.2.2` |\n| [langgraph-checkpoint-sqlite](https://github.com/langchain-ai/langgraph) | `3.0.3` | `3.1.0` |\n\n\nUpdates `ruff` from 0.15.11 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.7.0 to 1.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the readme links by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/886\"\u003eauthlib/authlib#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow non-recommended algorithms in ClientSecretJWT and PrivateKey by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/887\"\u003eauthlib/authlib#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate BCP47 language tags with a regex by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/873\"\u003eauthlib/authlib#873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RFC7523 signing with non RSA keys by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/884\"\u003eauthlib/authlib#884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.7.1...v1.7.2\"\u003ehttps://github.com/authlib/authlib/compare/v1.7.1...v1.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.7.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix authlib.jose deprecation warning poping from _joserfc_helpers by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/881\"\u003eauthlib/authlib#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix redirecting to unvalidated \u003ccode\u003eredirect_uri\u003c/code\u003e on \u003ccode\u003eInvalidScopeError\u003c/code\u003e  in \u003ccode\u003eOpenIDImplicitGrant\u003c/code\u003e and \u003ccode\u003eOpenIDHybridGrant\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.7.0...v1.7.1\"\u003ehttps://github.com/authlib/authlib/compare/v1.7.0...v1.7.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/a0b76fac3fa114d7759af2010546bfc332364b63\"\u003e\u003ccode\u003ea0b76fa\u003c/code\u003e\u003c/a\u003e chore: bump to 1.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/c85c7f2b02faf2667f62b27aa60df042dbc9b4ab\"\u003e\u003ccode\u003ec85c7f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/884\"\u003e#884\u003c/a\u003e from azmeuk/852-rfc7523-key-import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/a3b2adda43b4452ba9f384d224f95848974b4eb4\"\u003e\u003ccode\u003ea3b2add\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/873\"\u003e#873\u003c/a\u003e from azmeuk/bcp47\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/f2578eaa198aedbaaaf3bb00eccc451e15e45e3a\"\u003e\u003ccode\u003ef2578ea\u003c/code\u003e\u003c/a\u003e fix: Import RSAKey in auth.py for additional key support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b57182cf46a53da19623208dd852270ddec8ebcc\"\u003e\u003ccode\u003eb57182c\u003c/code\u003e\u003c/a\u003e fix: fallback support RSAKey when client_secret is text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/4e7590292ca9f948a0766640b27025618750e6c1\"\u003e\u003ccode\u003e4e75902\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 852-rfc7523-key-import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/5eb4a860600ea2f3acc1a2a9c3e621a430da9d0f\"\u003e\u003ccode\u003e5eb4a86\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/887\"\u003e#887\u003c/a\u003e from azmeuk/883-alg\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/5633f37c47bd8352b962f982cb916bc8b95bb5d5\"\u003e\u003ccode\u003e5633f37\u003c/code\u003e\u003c/a\u003e fix: allow non-recommended algorithms in ClientSecretJWT and PrivateKeyJWT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/4c8e7b381aaef68f60e2323a25ba96cdb346f82f\"\u003e\u003ccode\u003e4c8e7b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/886\"\u003e#886\u003c/a\u003e from azmeuk/885-readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/23b333e48a17ebf9f032a0e0f9eb3f990a06f97b\"\u003e\u003ccode\u003e23b333e\u003c/code\u003e\u003c/a\u003e docs: fix the readme links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.7.0...v1.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.47.0 to 2.53.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.49.0.dev0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.48.0...v2.49.0-dev0\"\u003e2.49.0-dev0\u003c/a\u003e (2026-01-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove deprecated rsa dependency (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e98cf69284d3620619a70b54fb0b9533caf11878\"\u003ee98cf69284d3620619a70b54fb0b9533caf11878\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.48.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827\"\u003e383c9827\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b\"\u003e454b441b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2\"\u003e52558ae2\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1\"\u003e8dcf91a1\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064\"\u003e25c1b064\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a240\"\u003e3f88a240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e\"\u003e97bfea9e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e10\"\u003ebfc07e10\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20c\"\u003ee431f20c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.48.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0rc0\"\u003e2.48.0rc0\u003c/a\u003e (2026-01-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehonor NO_GCE_CHECK environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse user_verification=preferred for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set by empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoved content-header from AWS IMDS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-auth/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558ae2881b1e6555f6f5c0d76365c15807ead9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91a1b05c85fbbd0bcee78d66e498099102ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c9827536d9376e8248370ce4c2b83e468d027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b064545702cbef087cfcd15fbbb6ef1af74f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f20cf73ccac71926a23ec454468cea92e053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a24089c4ee6822d510de0db210b54260d873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.14.1 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4\"\u003e\u003ccode\u003e9810405\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e@disjoint_base\u003c/code\u003e (PEP 800) (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03\"\u003e\u003ccode\u003e7ee9e05\u003c/code\u003e\u003c/a\u003e Backport type_params fix from CPython (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98\"\u003e\u003ccode\u003e1e8eb9c\u003c/code\u003e\u003c/a\u003e Do not refer to PEP 705 as being experimental (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.14.1...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.10.0 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ettl\u003c/code\u003e parameter to the \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e wrapper (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1073\"\u003e#1073\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWidened the type annotations of file I/O streams to accept \u003ccode\u003eIO[bytes]\u003c/code\u003e instead of just \u003ccode\u003eBinaryIO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path\u003c/code\u003e not being compatible with Python 3.15 due to the removal of \u003ccode\u003epathlib.Path.is_reserved()\u003c/code\u003e and the addition of \u003ccode\u003epathlib.Path.__vfspath__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1061\"\u003e#1061\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eBrokenResourceError\u003c/code\u003e raised by the asyncio \u003ccode\u003eSocketStream\u003c/code\u003e not having the original exception as its cause (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1055\"\u003e#1055\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eTypeError\u003c/code\u003e raised when using \u0026quot;func\u0026quot; as a parameter name in \u003ccode\u003epytest.mark.parametrize\u003c/code\u003e when using the pytest plugin (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1068\"\u003e#1068\u003c/a\u003e; PR by \u003ca href=\"https://github.com/JohnnyDeuss\"\u003e\u003ccode\u003e@​JohnnyDeuss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the pytest plugin not running tests that had the \u003ccode\u003eanyio\u003c/code\u003e marker added programmatically via \u003ccode\u003epytest_collection_modifyitems\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/422\"\u003e#422\u003c/a\u003e; PR by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when they are contained in an exception group alongside non-cancellation exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1091\"\u003e#1091\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCondition.wait()\u003c/code\u003e not passing on a notification when the task is cancelled but already received a notification\u003c/li\u003e\n\u003cli\u003eFixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1074\"\u003e#1074\u003c/a\u003e; PR by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2\"\u003e\u003ccode\u003eafbe93c\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d\"\u003e\u003ccode\u003e33bdf2e\u003c/code\u003e\u003c/a\u003e Rearranged the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78\"\u003e\u003ccode\u003e19e09e2\u003c/code\u003e\u003c/a\u003e Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c\"\u003e\u003ccode\u003e9369d80\u003c/code\u003e\u003c/a\u003e Fixed Condition.wait() not handing over notification when cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8\"\u003e\u003ccode\u003e6f122ab\u003c/code\u003e\u003c/a\u003e Fixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0\"\u003e\u003ccode\u003ebeaa45a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f\"\u003e\u003ccode\u003e602f660\u003c/code\u003e\u003c/a\u003e Widened type annotations to accept IO[bytes] in file streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3\"\u003e\u003ccode\u003eb5dcd45\u003c/code\u003e\u003c/a\u003e Added note about erasing the template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1\"\u003e\u003ccode\u003ed68670b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1090\"\u003e#1090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c\"\u003e\u003ccode\u003efc17a22\u003c/code\u003e\u003c/a\u003e tweak to_thread docs about abandon_on_cancel (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.10.0...4.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typer` from 0.16.0 to 0.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add Typer Library Skill for Agents. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1620\"\u003e#1620\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.11 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1722\"\u003e#1722\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.10 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1723\"\u003e#1723\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.25.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Don't truncate code lines in traceback when formatted with Rich. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1695\"\u003e#1695\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.24.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003etyper.launch\u003c/code\u003e forwards correctly when launching a file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1708\"\u003e#1708\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Ensure \u003ccode\u003ety\u003c/code\u003e runs without errors. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1628\"\u003e#1628\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1612\"\u003e#1612\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1630\"\u003e#1630\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix broken link to FastAPI and Friends newsletter. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1540\"\u003e#1540\u003c/a\u003e by \u003ca href=\"https://github.com/Karlemami\"\u003e\u003ccode\u003e@​Karlemami\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1622\"\u003e#1622\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove link to Typer developer survey. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1609\"\u003e#1609\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Clean up documentation in \u003ccode\u003einstall.md\u003c/code\u003e file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1606\"\u003e#1606\u003c/a\u003e by \u003ca href=\"https://github.com/Johandielangman\"\u003e\u003ccode\u003e@​Johandielangman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.1 to 1.20.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1715\"\u003e#1715\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.9 to 0.3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1716\"\u003e#1716\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1713\"\u003e#1713\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.31 to 0.0.32. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1711\"\u003e#1711\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.2 to 2.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1712\"\u003e#1712\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1667\"\u003e#1667\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1710\"\u003e#1710\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1700\"\u003e#1700\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.1 to 2.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1703\"\u003e#1703\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1701\"\u003e#1701\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.10 to 0.15.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1704\"\u003e#1704\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1702\"\u003e#1702\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 7.6.0 to 8.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1699\"\u003e#1699\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.30 to 0.0.31. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1696\"\u003e#1696\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.0 to 2.13.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1697\"\u003e#1697\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.1 (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add Typer Library Skill for Agents. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1620\"\u003e#1620\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.11 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1722\"\u003e#1722\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.10 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1723\"\u003e#1723\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.25.0 (2026-04-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Don't truncate code lines in traceback when formatted with Rich. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1695\"\u003e#1695\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.24.2 (2026-04-22)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003etyper.launch\u003c/code\u003e forwards correctly when launching a file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1708\"\u003e#1708\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Ensure \u003ccode\u003ety\u003c/code\u003e runs without errors. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1628\"\u003e#1628\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1612\"\u003e#1612\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1630\"\u003e#1630\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix broken link to FastAPI and Friends newsletter. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1540\"\u003e#1540\u003c/a\u003e by \u003ca href=\"https://github.com/Karlemami\"\u003e\u003ccode\u003e@​Karlemami\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1622\"\u003e#1622\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove link to Typer developer survey. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1609\"\u003e#1609\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Clean up documentation in \u003ccode\u003einstall.md\u003c/code\u003e file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1606\"\u003e#1606\u003c/a\u003e by \u003ca href=\"https://github.com/Johandielangman\"\u003e\u003ccode\u003e@​Johandielangman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.1 to 1.20.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1715\"\u003e#1715\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.9 to 0.3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1716\"\u003e#1716\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1713\"\u003e#1713\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.31 to 0.0.32. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1711\"\u003e#1711\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.2 to 2.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1712\"\u003e#1712\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1667\"\u003e#1667\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1710\"\u003e#1710\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1700\"\u003e#1700\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.1 to 2.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1703\"\u003e#1703\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1701\"\u003e#1701\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.10 to 0.15.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1704\"\u003e#1704\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1702\"\u003e#1702\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/cfcc2ef9f948bcce67897a6c7e689d39da690bf9\"\u003e\u003ccode\u003ecfcc2ef\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/13846cc59bd574567a9a1f56eae3cd42b9aa2a4f\"\u003e\u003ccode\u003e13846cc\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a43746997ad6f2b4a8829c69c919f4d4c2cc0698\"\u003e\u003ccode\u003ea437469\u003c/code\u003e\u003c/a\u003e 🔧 Add Typer Library Skill for Agents (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/ba6cc2c9e7cba35f891c91118e228e1d2da35edb\"\u003e\u003ccode\u003eba6cc2c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/0f3ead07c2bb384fdd590e895ca6705582c58d89\"\u003e\u003ccode\u003e0f3ead0\u003c/code\u003e\u003c/a\u003e ⬆ Bump ruff from 0.15.11 to 0.15.12 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1722\"\u003e#1722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/db4ade64936599b3460f2fc0a7c550c3fedc33b0\"\u003e\u003ccode\u003edb4ade6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/5a5206ceed2afdf234f88a6e2ef74ad9ebdf0d92\"\u003e\u003ccode\u003e5a5206c\u003c/code\u003e\u003c/a\u003e ⬆ Bump prek from 0.3.10 to 0.3.11 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1723\"\u003e#1723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/959845e173b4bec0d606d99247815c2710613ca8\"\u003e\u003ccode\u003e959845e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/5e1fcfb5935e7ac3ff3c7526ef297eae31bd4822\"\u003e\u003ccode\u003e5e1fcfb\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/dfb21ad034804584702d553ebfba40d8f4d791b9\"\u003e\u003ccode\u003edfb21ad\u003c/code\u003e\u003c/a\u003e 🚸 Don't truncate code lines in traceback when formatted with Rich (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.16.0...0.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.35.0 to 0.48.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.47.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2919\"\u003eKludex/uvicorn#2919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2920\"\u003eKludex/uvicorn#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2927\"\u003eKludex/uvicorn#...\n\n_Description has been truncated_","html_url":"https://github.com/tmohanvamsi/kagent/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmohanvamsi%2Fkagent/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"},{"uuid":"4488938007","node_id":"PR_kwDORT9AZc7dps4t","number":502,"state":"open","title":"build(deps): bump openai-agents from 0.10.4 to 0.17.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-20T18:26:43.000Z","updated_at":"2026-05-20T21:56:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"openai-agents","old_version":"0.10.4","new_version":"0.17.3","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.10.4 to 0.17.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.3\u003c/h2\u003e\n\u003cp\u003ea## What's Changed\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: keep mountpoint credentials out of sandbox commands by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3429\"\u003eopenai/openai-agents-python#3429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: unify memory optional dependency import errors by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3389\"\u003eopenai/openai-agents-python#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard None text in text_message_output and add output guardrail count to RunErrorDetails by \u003ca href=\"https://github.com/zhoufengen\"\u003e\u003ccode\u003e@​zhoufengen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3375\"\u003eopenai/openai-agents-python#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid mutating FunctionTool params_json_schema by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3382\"\u003eopenai/openai-agents-python#3382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid mutating codex output schema input by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3385\"\u003eopenai/openai-agents-python#3385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3357\"\u003e#3357\u003c/a\u003e output schema names for Literal types by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3358\"\u003eopenai/openai-agents-python#3358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip wait_for_status when Vercel sandbox is in a terminal state by \u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3410\"\u003eopenai/openai-agents-python#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: filter hosted_tool_call types in remove_all_tools handoff filter by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3386\"\u003eopenai/openai-agents-python#3386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard None text in ItemHelpers.extract_last_content by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3394\"\u003eopenai/openai-agents-python#3394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: log exception when output guardrail raises instead of silently ignoring by \u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3411\"\u003eopenai/openai-agents-python#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reject relative sandbox workspace roots by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3422\"\u003eopenai/openai-agents-python#3422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: normalize leading question marks in exposed port queries by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3424\"\u003eopenai/openai-agents-python#3424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3363\"\u003e#3363\u003c/a\u003e honor short custom voice splitter chunks by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3364\"\u003eopenai/openai-agents-python#3364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: runtime handling updates by \u003ca href=\"https://github.com/adrianbravo-oai\"\u003e\u003ccode\u003e@​adrianbravo-oai\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3451\"\u003eopenai/openai-agents-python#3451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add SDK review guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3376\"\u003eopenai/openai-agents-python#3376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: mark Agent.instructions as optional by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3384\"\u003eopenai/openai-agents-python#3384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: translate all pages using new settings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3392\"\u003eopenai/openai-agents-python#3392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document auto_previous_response_id by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3383\"\u003eopenai/openai-agents-python#3383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix LiteLLM API reference redirect by \u003ca href=\"https://github.com/ynachiket\"\u003e\u003ccode\u003e@​ynachiket\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3444\"\u003eopenai/openai-agents-python#3444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix duplicated word in usaspending glossary example by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3445\"\u003eopenai/openai-agents-python#3445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: clean up CI jobs and update uv pin by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3400\"\u003eopenai/openai-agents-python#3400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: harden release tag workflow by \u003ca href=\"https://github.com/hintz-openai\"\u003e\u003ccode\u003e@​hintz-openai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3399\"\u003eopenai/openai-agents-python#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.3 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3417\"\u003eopenai/openai-agents-python#3417\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zhoufengen\"\u003e\u003ccode\u003e@​zhoufengen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3375\"\u003eopenai/openai-agents-python#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hintz-openai\"\u003e\u003ccode\u003e@​hintz-openai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3399\"\u003eopenai/openai-agents-python#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3410\"\u003eopenai/openai-agents-python#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ynachiket\"\u003e\u003ccode\u003e@​ynachiket\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3444\"\u003eopenai/openai-agents-python#3444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3445\"\u003eopenai/openai-agents-python#3445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianbravo-oai\"\u003e\u003ccode\u003e@​adrianbravo-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3451\"\u003eopenai/openai-agents-python#3451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.2...v0.17.3\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.2...v0.17.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3268\"\u003e#3268\u003c/a\u003e fix OpenAI Conversations reasoning persistence by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3352\"\u003eopenai/openai-agents-python#3352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid auto response for unknown realtime tools (ref: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3287\"\u003e#3287\u003c/a\u003e) by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3366\"\u003eopenai/openai-agents-python#3366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3354\"\u003e#3354\u003c/a\u003e interrupt tracing retry backoff on shutdown by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3355\"\u003eopenai/openai-agents-python#3355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3359\"\u003e#3359\u003c/a\u003e preserve local approval rejection reasons by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3360\"\u003eopenai/openai-agents-python#3360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3361\"\u003e#3361\u003c/a\u003e honor session settings in AsyncSQLiteSession by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3362\"\u003eopenai/openai-agents-python#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3310\"\u003e#3310\u003c/a\u003e avoid empty chat tool outputs by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3312\"\u003eopenai/openai-agents-python#3312\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/17f7caeaa33d97eee7152f9834af5e706b8f90e2\"\u003e\u003ccode\u003e17f7cae\u003c/code\u003e\u003c/a\u003e Release 0.17.3 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f6ba91b120b97e38a4cdb3e61b226cef348679eb\"\u003e\u003ccode\u003ef6ba91b\u003c/code\u003e\u003c/a\u003e Runtime handling updates (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/65774ce88d98b12fa3b0f5ede2b2f705a25e053d\"\u003e\u003ccode\u003e65774ce\u003c/code\u003e\u003c/a\u003e docs: fix duplicated word in usaspending glossary example (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/13d1815218251155dbf7fe9aa395e0db64b2d118\"\u003e\u003ccode\u003e13d1815\u003c/code\u003e\u003c/a\u003e docs: re-fix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3444\"\u003e#3444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/41fe113dd0623cbbe326996e536d570ded4179ba\"\u003e\u003ccode\u003e41fe113\u003c/code\u003e\u003c/a\u003e docs: fix LiteLLM API reference redirect (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3444\"\u003e#3444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4970fd6ce4fc1019a4b70787706ce35c1e0ea030\"\u003e\u003ccode\u003e4970fd6\u003c/code\u003e\u003c/a\u003e fix: keep mountpoint credentials out of sandbox commands (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3429\"\u003e#3429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4bd459e403ac826c87b17fef8ffcbdf42a70b09a\"\u003e\u003ccode\u003e4bd459e\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3363\"\u003e#3363\u003c/a\u003e honor short custom voice splitter chunks (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e37b3d266b4061109a03906882325807fc05e85f\"\u003e\u003ccode\u003ee37b3d2\u003c/code\u003e\u003c/a\u003e fix: normalize leading question marks in exposed port queries (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3424\"\u003e#3424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/94523f946eada821a3847af4a8a851071fb2a93d\"\u003e\u003ccode\u003e94523f9\u003c/code\u003e\u003c/a\u003e fix: reject relative sandbox workspace roots (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3422\"\u003e#3422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/cb0461d177ce1a931d24db05103a2d8b02f3cd36\"\u003e\u003ccode\u003ecb0461d\u003c/code\u003e\u003c/a\u003e fix: log exception when output guardrail raises instead of silently ignoring ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.10.4...v0.17.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/tryskian/polinko/pull/502","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryskian%2Fpolinko/issues/502","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/502/packages"},{"uuid":"4461602939","node_id":"PR_kwDORl2wQc7cSa99","number":34,"state":"closed","title":"Bump openai-agents from 0.0.7 to 0.17.2 in /openai-agents","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-23T23:12:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T23:12:35.000Z","updated_at":"2026-05-23T23:12:48.000Z","time_to_close":604812,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"openai-agents","old_version":"0.0.7","new_version":"0.17.2","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/openai-agents","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.0.7 to 0.17.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3268\"\u003e#3268\u003c/a\u003e fix OpenAI Conversations reasoning persistence by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3352\"\u003eopenai/openai-agents-python#3352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid auto response for unknown realtime tools (ref: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3287\"\u003e#3287\u003c/a\u003e) by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3366\"\u003eopenai/openai-agents-python#3366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3354\"\u003e#3354\u003c/a\u003e interrupt tracing retry backoff on shutdown by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3355\"\u003eopenai/openai-agents-python#3355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3359\"\u003e#3359\u003c/a\u003e preserve local approval rejection reasons by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3360\"\u003eopenai/openai-agents-python#3360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3361\"\u003e#3361\u003c/a\u003e honor session settings in AsyncSQLiteSession by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3362\"\u003eopenai/openai-agents-python#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3310\"\u003e#3310\u003c/a\u003e avoid empty chat tool outputs by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3312\"\u003eopenai/openai-agents-python#3312\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify max_delay for retries works by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3350\"\u003eopenai/openai-agents-python#3350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3351\"\u003eopenai/openai-agents-python#3351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: normalize memory docstring cross-references by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3370\"\u003eopenai/openai-agents-python#3370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document sandbox archive limits after \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3278\"\u003e#3278\u003c/a\u003e release by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3311\"\u003eopenai/openai-agents-python#3311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3371\"\u003eopenai/openai-agents-python#3371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.2 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3368\"\u003eopenai/openai-agents-python#3368\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.1...v0.17.2\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.1...v0.17.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eSandboxes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: include sandbox provider error details by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3326\"\u003eopenai/openai-agents-python#3326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3274\"\u003e#3274\u003c/a\u003e limit sandbox archive extraction by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3278\"\u003eopenai/openai-agents-python#3278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3273\"\u003e#3273\u003c/a\u003e validate git repo subpaths by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3276\"\u003eopenai/openai-agents-python#3276\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow empty GitRepo subpaths as repository root by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3299\"\u003eopenai/openai-agents-python#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: preserve GitRepo root subpath aliases by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3303\"\u003eopenai/openai-agents-python#3303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTracing\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: make tracing shutdown best-effort on process exit by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3343\"\u003eopenai/openai-agents-python#3343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep BatchTraceProcessor worker alive on exporter errors by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3216\"\u003eopenai/openai-agents-python#3216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard no-op tracing span IDs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3296\"\u003eopenai/openai-agents-python#3296\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSessions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3267\"\u003e#3267\u003c/a\u003e preserve required hosted tool IDs in OpenAI conversation sessions by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3341\"\u003eopenai/openai-agents-python#3341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3304\"\u003e#3304\u003c/a\u003e skip corrupt items during pop (sessions) by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3305\"\u003eopenai/openai-agents-python#3305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3306\"\u003e#3306\u003c/a\u003e track MongoDB metadata timestamps by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3307\"\u003eopenai/openai-agents-python#3307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: preserve created_at across writes (redis-session) by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3202\"\u003eopenai/openai-agents-python#3202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip corrupt docs in MongoDBSession.pop_item by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3247\"\u003eopenai/openai-agents-python#3247\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRealtime Agents\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3333\"\u003e#3333\u003c/a\u003e scope Realtime tool approvals by qualified key by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3340\"\u003eopenai/openai-agents-python#3340\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/55e4a850fce820a1816af0b413d03a39f2e5f817\"\u003e\u003ccode\u003e55e4a85\u003c/code\u003e\u003c/a\u003e Release 0.17.2 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3368\"\u003e#3368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5594fb464d45b3280c3395aeb071b9d77c611889\"\u003e\u003ccode\u003e5594fb4\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3371\"\u003e#3371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/64de1cb211bf23f25f7147983b8e2286da566e0c\"\u003e\u003ccode\u003e64de1cb\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3310\"\u003e#3310\u003c/a\u003e avoid empty chat tool outputs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3312\"\u003e#3312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1d3df7fa0418700201337fa38c94a82e8fc4872f\"\u003e\u003ccode\u003e1d3df7f\u003c/code\u003e\u003c/a\u003e docs: document sandbox archive limits after \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3278\"\u003e#3278\u003c/a\u003e release (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3311\"\u003e#3311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ae3263b8400b66ecf443720ce9bb2fa24d6cb571\"\u003e\u003ccode\u003eae3263b\u003c/code\u003e\u003c/a\u003e docs: normalize memory docstring cross-references (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3370\"\u003e#3370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e3c99d99641f53ab0d4b13ead6435f451985c5b6\"\u003e\u003ccode\u003ee3c99d9\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3361\"\u003e#3361\u003c/a\u003e honor session settings in AsyncSQLiteSession (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3362\"\u003e#3362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/b2bd8218c6bf15334cc18bce1fe6a54a4ac4ca76\"\u003e\u003ccode\u003eb2bd821\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3359\"\u003e#3359\u003c/a\u003e preserve local approval rejection reasons (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3360\"\u003e#3360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/8715a0585a5d9549c79c267f479f91831ef72241\"\u003e\u003ccode\u003e8715a05\u003c/code\u003e\u003c/a\u003e fix: avoid auto response for unknown realtime tools (ref: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3287\"\u003e#3287\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3366\"\u003e#3366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4a95659892eccf52013038de625c45090f825c3c\"\u003e\u003ccode\u003e4a95659\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3354\"\u003e#3354\u003c/a\u003e interrupt tracing retry backoff on shutdown (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3355\"\u003e#3355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5635fab9d36123d5bc85d8ae17d9f09b84c56697\"\u003e\u003ccode\u003e5635fab\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3268\"\u003e#3268\u003c/a\u003e fix OpenAI Conversations reasoning persistence (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3352\"\u003e#3352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.0.7...v0.17.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.0.7\u0026new-version=0.17.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/delega-dev/delega-examples/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/delega-dev%2Fdelega-examples/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"},{"uuid":"4416977439","node_id":"PR_kwDOSRS2eM7aDgyh","number":5,"state":"open","title":"build(deps): bump the backend-dependencies group in /server with 2 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-10T22:07:49.000Z","updated_at":"2026-05-10T22:08:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"backend-dependencies","update_count":2,"packages":[{"name":"openai-agents","old_version":"0.15.1","new_version":"0.17.0","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"pydantic","old_version":"2.13.3","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"}],"path":"/server","ecosystem":"pip"},"body":"Bumps the backend-dependencies group in /server with 2 updates: [openai-agents](https://github.com/openai/openai-agents-python) and [pydantic](https://github.com/pydantic/pydantic).\n\nUpdates `openai-agents` from 0.15.1 to 0.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003ch2\u003eKey Changes\u003c/h2\u003e\n\u003ch3\u003eRealtimeAgent's default is now gpt-realtime-2\u003c/h3\u003e\n\u003cp\u003eSince this version, the default model for RealtimeAgents is gpt-realtime-2: \u003ca href=\"https://developers.openai.com/api/docs/models/gpt-realtime-2\"\u003ehttps://developers.openai.com/api/docs/models/gpt-realtime-2\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eSandbox local source materialization change\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.Expand commentComment on line R24Resolved\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\r\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eTreat \u003ccode\u003eextra_path_grants\u003c/code\u003e as trusted application configuration. Do not populate grants from model output or other untrusted manifest input unless your application has already approved those host paths.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: default realtime sessions to gpt-realtime-2 by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3190\"\u003eopenai/openai-agents-python#3190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3169\"\u003e#3169\u003c/a\u003e constrain local sandbox artifact sources to base dir by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3177\"\u003eopenai/openai-agents-python#3177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Responses context-management extra_args collision by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3185\"\u003eopenai/openai-agents-python#3185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 0.17.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3191\"\u003eopenai/openai-agents-python#3191\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eTreat \u003ccode\u003eextra_path_grants\u003c/code\u003e as trusted application configuration. Do not populate grants from model output or other untrusted manifest input unless your application has already approved those host paths.\u003c/p\u003e\n\u003ch3\u003e0.16.0\u003c/h3\u003e\n\u003cp\u003eIn this version, the SDK default model is now \u003ccode\u003egpt-5.4-mini\u003c/code\u003e instead of \u003ccode\u003egpt-4.1\u003c/code\u003e. This affects agents and runs that do not explicitly set a model. Because the new default is a GPT-5 model, implicit default model settings now include GPT-5 defaults such as \u003ccode\u003ereasoning.effort=\u0026quot;none\u0026quot;\u003c/code\u003e and \u003ccode\u003everbosity=\u0026quot;low\u0026quot;\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIf you need to keep the previous default model behavior, set a model explicitly on the agent or run config, or set the \u003ccode\u003eOPENAI_DEFAULT_MODEL\u003c/code\u003e environment variable:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eagent = Agent(name=\u0026quot;Assistant\u0026quot;, model=\u0026quot;gpt-4.1\u0026quot;)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRunner.run\u003c/code\u003e, \u003ccode\u003eRunner.run_sync\u003c/code\u003e, and \u003ccode\u003eRunner.run_streamed\u003c/code\u003e now accept \u003ccode\u003emax_turns=None\u003c/code\u003e to disable the turn limit.\u003c/li\u003e\n\u003cli\u003eSandbox workspace hydration now rejects tar archives with symlinks that point outside the archive root, including absolute symlink targets, across local, Docker, and provider-backed sandbox implementations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.15.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0fea7e83471b8ff6b87c784e99b4d19d84b4bc46\"\u003e\u003ccode\u003e0fea7e8\u003c/code\u003e\u003c/a\u003e Release 0.17.0 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0a76dd03cecde32a7223355328c3a3f273fd8b61\"\u003e\u003ccode\u003e0a76dd0\u003c/code\u003e\u003c/a\u003e docs: improve auto run for examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f47d486985e074ac6831bdef0711cd2b4fa8ae3b\"\u003e\u003ccode\u003ef47d486\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3169\"\u003e#3169\u003c/a\u003e constrain local sandbox artifact sources to base dir (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3177\"\u003e#3177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1660d306b579580a4e374cee57834e2b7feecab8\"\u003e\u003ccode\u003e1660d30\u003c/code\u003e\u003c/a\u003e feat: default realtime sessions to gpt-realtime-2 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ee36d4358499939b5cee5d8851b656a84d2112ee\"\u003e\u003ccode\u003eee36d43\u003c/code\u003e\u003c/a\u003e Fix Responses extra_args collision with omitted kwargs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3185\"\u003e#3185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a91f630f79e96cc345a1a84ddf28a861e6670b54\"\u003e\u003ccode\u003ea91f630\u003c/code\u003e\u003c/a\u003e fix: skip prerequisite-bound examples in auto runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/bd84b65258af0473b541ef6c6ccf2882288c2430\"\u003e\u003ccode\u003ebd84b65\u003c/code\u003e\u003c/a\u003e Release 0.16.1 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/28de3652d3ba39958d75813c5958fe5e30483b67\"\u003e\u003ccode\u003e28de365\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3168\"\u003e#3168\u003c/a\u003e validate MCP require_approval policies (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3179\"\u003e#3179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a67d95f58a94cb57accc70bc9b3151e6e3bfbdf4\"\u003e\u003ccode\u003ea67d95f\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3174\"\u003e#3174\u003c/a\u003e count valid encrypted session items for limits (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3175\"\u003e#3175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3a11cf52250616fd7fcf779d808762666507a4e8\"\u003e\u003ccode\u003e3a11cf5\u003c/code\u003e\u003c/a\u003e fix: reject non-object function tool input JSON (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3166\"\u003e#3166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.15.1...v0.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.3 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/shenqistart/circle/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenqistart%2Fcircle/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"4381365585","node_id":"PR_kwDOSNt2dc7YQRzP","number":2,"state":"closed","title":"build(deps): bump openai-agents from 0.14.6 to 0.15.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-12T06:52:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-05T03:46:48.000Z","updated_at":"2026-05-12T06:52:46.000Z","time_to_close":615956,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"openai-agents","old_version":"0.14.6","new_version":"0.15.1","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.14.6 to 0.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: expose Responses WebSocket keepalive options by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3080\"\u003eopenai/openai-agents-python#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: restore UnixLocal PTY terminal signal defaults by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3082\"\u003eopenai/openai-agents-python#3082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3074\"\u003e#3074\u003c/a\u003e restore SIGINT defaults for UnixLocal PTY children by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3075\"\u003eopenai/openai-agents-python#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add 0.15 changelog by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3058\"\u003eopenai/openai-agents-python#3058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3064\"\u003eopenai/openai-agents-python#3064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve quickstart documentation for Windows OS users by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3071\"\u003eopenai/openai-agents-python#3071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3072\"\u003eopenai/openai-agents-python#3072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: cover guardrail name fallback to function \u003cstrong\u003ename\u003c/strong\u003e by \u003ca href=\"https://github.com/Quratulain-bilal\"\u003e\u003ccode\u003e@​Quratulain-bilal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3073\"\u003eopenai/openai-agents-python#3073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: harden Dapr Redis integration fixture loading by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3078\"\u003eopenai/openai-agents-python#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.15.1 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3083\"\u003eopenai/openai-agents-python#3083\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3078\"\u003eopenai/openai-agents-python#3078\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003ch2\u003eKey Changes\u003c/h2\u003e\n\u003ch3\u003eBetter model refusal handling\u003c/h3\u003e\n\u003cp\u003eIn this version, model refusals are now surfaced explicitly as \u003ccode\u003eModelRefusalError\u003c/code\u003e instead of being treated as empty text output or, for structured outputs, causing the run loop to retry until \u003ccode\u003eMaxTurnsExceeded\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis affects code that previously expected a refusal-only model response to complete with \u003ccode\u003efinal_output == \u0026quot;\u0026quot;\u003c/code\u003e. To handle refusals without raising, provide a \u003ccode\u003emodel_refusal\u003c/code\u003e run error handler:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eresult = Runner.run_sync(\r\n    agent,\r\n    input,\r\n    error_handlers={\u0026quot;model_refusal\u0026quot;: lambda data: data.error.refusal},\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor structured-output agents, the handler can return a value matching the agent's output schema, and the SDK will validate it like other run error handler final outputs.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3055\"\u003e#3055\u003c/a\u003e surface model refusals during run resolution by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3057\"\u003eopenai/openai-agents-python#3057\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add missing space after period in MCPServerStdio docstring by \u003ca href=\"https://github.com/GopalGB\"\u003e\u003ccode\u003e@​GopalGB\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3053\"\u003eopenai/openai-agents-python#3053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/github-script from 8.0.0 to 9.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3059\"\u003eopenai/openai-agents-python#3059\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.15.0\u003c/h3\u003e\n\u003cp\u003eIn this version, model refusals are now surfaced explicitly as \u003ccode\u003eModelRefusalError\u003c/code\u003e instead of being treated as empty text output or, for structured outputs, causing the run loop to retry until \u003ccode\u003eMaxTurnsExceeded\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis affects code that previously expected a refusal-only model response to complete with \u003ccode\u003efinal_output == \u0026quot;\u0026quot;\u003c/code\u003e. To handle refusals without raising, provide a \u003ccode\u003emodel_refusal\u003c/code\u003e run error handler:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eresult = Runner.run_sync(\n    agent,\n    input,\n    error_handlers={\u0026quot;model_refusal\u0026quot;: lambda data: data.error.refusal},\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor structured-output agents, the handler can return a value matching the agent's output schema, and the SDK will validate it like other run error handler final outputs.\u003c/p\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ceb238fd1bd341c38c43ab191874f142515bb813\"\u003e\u003ccode\u003eceb238f\u003c/code\u003e\u003c/a\u003e Release 0.15.1 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/41c646d89862c59f536b3cdb7947bf104353ff8d\"\u003e\u003ccode\u003e41c646d\u003c/code\u003e\u003c/a\u003e fix: restore UnixLocal PTY terminal signal defaults (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3082\"\u003e#3082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4b2881c7c4d572f1f091e4530bb3af712f1f99a0\"\u003e\u003ccode\u003e4b2881c\u003c/code\u003e\u003c/a\u003e feat: expose Responses WebSocket keepalive options (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3080\"\u003e#3080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a47b7ea7eced7f88c830979b0caea47d260fafd5\"\u003e\u003ccode\u003ea47b7ea\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3074\"\u003e#3074\u003c/a\u003e restore SIGINT defaults for UnixLocal PTY children (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/42c30155181b1a9913d1c3a32befc4638ab9d062\"\u003e\u003ccode\u003e42c3015\u003c/code\u003e\u003c/a\u003e chore: harden Dapr Redis integration fixture loading (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ae224b4449c1831d2e44b03b2677845a89aefd0e\"\u003e\u003ccode\u003eae224b4\u003c/code\u003e\u003c/a\u003e test: cover guardrail name fallback to function \u003cstrong\u003ename\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3073\"\u003e#3073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/756fa431a7ecc896e26d6556b40f761830cb7cf6\"\u003e\u003ccode\u003e756fa43\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/841f72f296d15aa28f11f9c167506181b13af5e1\"\u003e\u003ccode\u003e841f72f\u003c/code\u003e\u003c/a\u003e docs: improve quickstart documentation for Windows OS users (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/611d080ff048134fb2e5e40baf56b8a8cc69592e\"\u003e\u003ccode\u003e611d080\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/48d7e9cae7190e579c518fd571bdd317a1711e09\"\u003e\u003ccode\u003e48d7e9c\u003c/code\u003e\u003c/a\u003e docs: add 0.15 changelog (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.6...v0.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=uv\u0026previous-version=0.14.6\u0026new-version=0.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/pyama86/owncall/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyama86%2Fowncall/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"},{"uuid":"4378796075","node_id":"PR_kwDOKBSOF87YH069","number":89,"state":"closed","title":"chore(deps): bump openai-agents from 0.7.0 to 0.17.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-26T21:33:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T18:39:08.000Z","updated_at":"2026-05-26T21:33:32.000Z","time_to_close":1911262,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.7.0","new_version":"0.17.4","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.7.0 to 0.17.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support Realtime custom voice objects by \u003ca href=\"https://github.com/lionel-oai\"\u003e\u003ccode\u003e@​lionel-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3473\"\u003eopenai/openai-agents-python#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3461\"\u003eopenai/openai-agents-python#3461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: apply hardened http client default to MCP SSE transport by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3466\"\u003eopenai/openai-agents-python#3466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use non-None value for output in FunctionSpanData by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3483\"\u003eopenai/openai-agents-python#3483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: redact invalid JSON payload in ModelBehaviorError data by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3485\"\u003eopenai/openai-agents-python#3485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export more tracing related functions \u0026amp; types from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3489\"\u003eopenai/openai-agents-python#3489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3490\"\u003eopenai/openai-agents-python#3490\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 0.17.4 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3505\"\u003eopenai/openai-agents-python#3505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: keep mountpoint credentials out of sandbox commands by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3429\"\u003eopenai/openai-agents-python#3429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: unify memory optional dependency import errors by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3389\"\u003eopenai/openai-agents-python#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard None text in text_message_output and add output guardrail count to RunErrorDetails by \u003ca href=\"https://github.com/zhoufengen\"\u003e\u003ccode\u003e@​zhoufengen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3375\"\u003eopenai/openai-agents-python#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid mutating FunctionTool params_json_schema by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3382\"\u003eopenai/openai-agents-python#3382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid mutating codex output schema input by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3385\"\u003eopenai/openai-agents-python#3385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3357\"\u003e#3357\u003c/a\u003e output schema names for Literal types by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3358\"\u003eopenai/openai-agents-python#3358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip wait_for_status when Vercel sandbox is in a terminal state by \u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3410\"\u003eopenai/openai-agents-python#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: filter hosted_tool_call types in remove_all_tools handoff filter by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3386\"\u003eopenai/openai-agents-python#3386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard None text in ItemHelpers.extract_last_content by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3394\"\u003eopenai/openai-agents-python#3394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: log exception when output guardrail raises instead of silently ignoring by \u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3411\"\u003eopenai/openai-agents-python#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reject relative sandbox workspace roots by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3422\"\u003eopenai/openai-agents-python#3422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: normalize leading question marks in exposed port queries by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3424\"\u003eopenai/openai-agents-python#3424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3363\"\u003e#3363\u003c/a\u003e honor short custom voice splitter chunks by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3364\"\u003eopenai/openai-agents-python#3364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: runtime handling updates by \u003ca href=\"https://github.com/adrianbravo-oai\"\u003e\u003ccode\u003e@​adrianbravo-oai\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3451\"\u003eopenai/openai-agents-python#3451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add SDK review guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3376\"\u003eopenai/openai-agents-python#3376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: mark Agent.instructions as optional by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3384\"\u003eopenai/openai-agents-python#3384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: translate all pages using new settings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3392\"\u003eopenai/openai-agents-python#3392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document auto_previous_response_id by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3383\"\u003eopenai/openai-agents-python#3383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix LiteLLM API reference redirect by \u003ca href=\"https://github.com/ynachiket\"\u003e\u003ccode\u003e@​ynachiket\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3444\"\u003eopenai/openai-agents-python#3444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix duplicated word in usaspending glossary example by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3445\"\u003eopenai/openai-agents-python#3445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: clean up CI jobs and update uv pin by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3400\"\u003eopenai/openai-agents-python#3400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: harden release tag workflow by \u003ca href=\"https://github.com/hintz-openai\"\u003e\u003ccode\u003e@​hintz-openai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3399\"\u003eopenai/openai-agents-python#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.3 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3417\"\u003eopenai/openai-agents-python#3417\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/6d5b888f6f57b8356398bea883b45172fec54b95\"\u003e\u003ccode\u003e6d5b888\u003c/code\u003e\u003c/a\u003e Release 0.17.4 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3505\"\u003e#3505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a92ea4c8e4c2bff05b81041d0d1f3df41360bfb\"\u003e\u003ccode\u003e9a92ea4\u003c/code\u003e\u003c/a\u003e Support Realtime custom voice objects (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fedc809afd5abb492df21c8e6bf365653b06c21f\"\u003e\u003ccode\u003efedc809\u003c/code\u003e\u003c/a\u003e fix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem fr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/573530febb67ff561d02e57cce639e792d4d716e\"\u003e\u003ccode\u003e573530f\u003c/code\u003e\u003c/a\u003e fix: export more tracing related functions \u0026amp; types from agents (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3489\"\u003e#3489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/813a00324e8165eacefd3ec4760d27b1d65d2a46\"\u003e\u003ccode\u003e813a003\u003c/code\u003e\u003c/a\u003e fix: redact invalid JSON payload in ModelBehaviorError data (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3485\"\u003e#3485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/eda7b51aeae663204dc3b8a1431688fa5fc50620\"\u003e\u003ccode\u003eeda7b51\u003c/code\u003e\u003c/a\u003e fix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3483\"\u003e#3483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/45effb4b7d7de1226ebba7ba304bccfcf0a37fdf\"\u003e\u003ccode\u003e45effb4\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9303389d8452995b18ba151614489fb93eaefad5\"\u003e\u003ccode\u003e9303389\u003c/code\u003e\u003c/a\u003e fix: use non-None value for output in FunctionSpanData (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3475\"\u003e#3475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9514473c234c8419b812b658157a5c3d4341713f\"\u003e\u003ccode\u003e9514473\u003c/code\u003e\u003c/a\u003e fix: apply hardened http client default to MCP SSE transport (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3466\"\u003e#3466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/445ad2273c2b527fc98dd8c1e53b3108d6bd93ea\"\u003e\u003ccode\u003e445ad22\u003c/code\u003e\u003c/a\u003e docs: add SECURITY.md in the same way with openai-agents-js repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.7.0...v0.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/performlikemj/sautai/pull/89","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/performlikemj%2Fsautai/issues/89","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/89/packages"},{"uuid":"4378190840","node_id":"PR_kwDORT9AZc7YF1O2","number":378,"state":"closed","title":"build(deps): bump openai-agents from 0.10.4 to 0.15.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-06T04:22:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T16:54:30.000Z","updated_at":"2026-05-06T04:22:59.000Z","time_to_close":127701,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"openai-agents","old_version":"0.10.4","new_version":"0.15.1","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.10.4 to 0.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: expose Responses WebSocket keepalive options by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3080\"\u003eopenai/openai-agents-python#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: restore UnixLocal PTY terminal signal defaults by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3082\"\u003eopenai/openai-agents-python#3082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3074\"\u003e#3074\u003c/a\u003e restore SIGINT defaults for UnixLocal PTY children by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3075\"\u003eopenai/openai-agents-python#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add 0.15 changelog by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3058\"\u003eopenai/openai-agents-python#3058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3064\"\u003eopenai/openai-agents-python#3064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve quickstart documentation for Windows OS users by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3071\"\u003eopenai/openai-agents-python#3071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3072\"\u003eopenai/openai-agents-python#3072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: cover guardrail name fallback to function \u003cstrong\u003ename\u003c/strong\u003e by \u003ca href=\"https://github.com/Quratulain-bilal\"\u003e\u003ccode\u003e@​Quratulain-bilal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3073\"\u003eopenai/openai-agents-python#3073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: harden Dapr Redis integration fixture loading by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3078\"\u003eopenai/openai-agents-python#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.15.1 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3083\"\u003eopenai/openai-agents-python#3083\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3078\"\u003eopenai/openai-agents-python#3078\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003ch2\u003eKey Changes\u003c/h2\u003e\n\u003ch3\u003eBetter model refusal handling\u003c/h3\u003e\n\u003cp\u003eIn this version, model refusals are now surfaced explicitly as \u003ccode\u003eModelRefusalError\u003c/code\u003e instead of being treated as empty text output or, for structured outputs, causing the run loop to retry until \u003ccode\u003eMaxTurnsExceeded\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis affects code that previously expected a refusal-only model response to complete with \u003ccode\u003efinal_output == \u0026quot;\u0026quot;\u003c/code\u003e. To handle refusals without raising, provide a \u003ccode\u003emodel_refusal\u003c/code\u003e run error handler:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eresult = Runner.run_sync(\r\n    agent,\r\n    input,\r\n    error_handlers={\u0026quot;model_refusal\u0026quot;: lambda data: data.error.refusal},\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor structured-output agents, the handler can return a value matching the agent's output schema, and the SDK will validate it like other run error handler final outputs.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3055\"\u003e#3055\u003c/a\u003e surface model refusals during run resolution by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3057\"\u003eopenai/openai-agents-python#3057\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add missing space after period in MCPServerStdio docstring by \u003ca href=\"https://github.com/GopalGB\"\u003e\u003ccode\u003e@​GopalGB\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3053\"\u003eopenai/openai-agents-python#3053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/github-script from 8.0.0 to 9.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3059\"\u003eopenai/openai-agents-python#3059\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.15.0\u003c/h3\u003e\n\u003cp\u003eIn this version, model refusals are now surfaced explicitly as \u003ccode\u003eModelRefusalError\u003c/code\u003e instead of being treated as empty text output or, for structured outputs, causing the run loop to retry until \u003ccode\u003eMaxTurnsExceeded\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis affects code that previously expected a refusal-only model response to complete with \u003ccode\u003efinal_output == \u0026quot;\u0026quot;\u003c/code\u003e. To handle refusals without raising, provide a \u003ccode\u003emodel_refusal\u003c/code\u003e run error handler:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eresult = Runner.run_sync(\n    agent,\n    input,\n    error_handlers={\u0026quot;model_refusal\u0026quot;: lambda data: data.error.refusal},\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor structured-output agents, the handler can return a value matching the agent's output schema, and the SDK will validate it like other run error handler final outputs.\u003c/p\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ceb238fd1bd341c38c43ab191874f142515bb813\"\u003e\u003ccode\u003eceb238f\u003c/code\u003e\u003c/a\u003e Release 0.15.1 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/41c646d89862c59f536b3cdb7947bf104353ff8d\"\u003e\u003ccode\u003e41c646d\u003c/code\u003e\u003c/a\u003e fix: restore UnixLocal PTY terminal signal defaults (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3082\"\u003e#3082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4b2881c7c4d572f1f091e4530bb3af712f1f99a0\"\u003e\u003ccode\u003e4b2881c\u003c/code\u003e\u003c/a\u003e feat: expose Responses WebSocket keepalive options (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3080\"\u003e#3080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a47b7ea7eced7f88c830979b0caea47d260fafd5\"\u003e\u003ccode\u003ea47b7ea\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3074\"\u003e#3074\u003c/a\u003e restore SIGINT defaults for UnixLocal PTY children (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/42c30155181b1a9913d1c3a32befc4638ab9d062\"\u003e\u003ccode\u003e42c3015\u003c/code\u003e\u003c/a\u003e chore: harden Dapr Redis integration fixture loading (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ae224b4449c1831d2e44b03b2677845a89aefd0e\"\u003e\u003ccode\u003eae224b4\u003c/code\u003e\u003c/a\u003e test: cover guardrail name fallback to function \u003cstrong\u003ename\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3073\"\u003e#3073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/756fa431a7ecc896e26d6556b40f761830cb7cf6\"\u003e\u003ccode\u003e756fa43\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/841f72f296d15aa28f11f9c167506181b13af5e1\"\u003e\u003ccode\u003e841f72f\u003c/code\u003e\u003c/a\u003e docs: improve quickstart documentation for Windows OS users (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/611d080ff048134fb2e5e40baf56b8a8cc69592e\"\u003e\u003ccode\u003e611d080\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/48d7e9cae7190e579c518fd571bdd317a1711e09\"\u003e\u003ccode\u003e48d7e9c\u003c/code\u003e\u003c/a\u003e docs: add 0.15 changelog (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.10.4...v0.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.10.4\u0026new-version=0.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/tryskian/polinko/pull/378","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryskian%2Fpolinko/issues/378","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/378/packages"},{"uuid":"4330167484","node_id":"PR_kwDORzsKKM7VsC0v","number":99,"state":"open","title":"chore(deps): bump openai-agents from 0.13.6 to 0.14.6 in /addons/formula-chat/api","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-26T06:06:10.000Z","updated_at":"2026-04-26T06:09:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.13.6","new_version":"0.14.6","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/addons/formula-chat/api","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.13.6 to 0.14.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: update examples and defaults to GPT-5.5 by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3016\"\u003eopenai/openai-agents-python#3016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: relax websockets upper bound from \u0026lt;16 to \u0026lt;17 by \u003ca href=\"https://github.com/mathisobadia\"\u003e\u003ccode\u003e@​mathisobadia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3013\"\u003eopenai/openai-agents-python#3013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: harden uv dependency resolution by \u003ca href=\"https://github.com/mcgrew-oai\"\u003e\u003ccode\u003e@​mcgrew-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3014\"\u003eopenai/openai-agents-python#3014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3021\"\u003eopenai/openai-agents-python#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add MongoDB session documentation by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3015\"\u003eopenai/openai-agents-python#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3023\"\u003eopenai/openai-agents-python#3023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.6 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3022\"\u003eopenai/openai-agents-python#3022\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mcgrew-oai\"\u003e\u003ccode\u003e@​mcgrew-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3014\"\u003eopenai/openai-agents-python#3014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mathisobadia\"\u003e\u003ccode\u003e@​mathisobadia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3013\"\u003eopenai/openai-agents-python#3013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.5...v0.14.6\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.5...v0.14.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3001\"\u003e#3001\u003c/a\u003e add Modal sandbox idle timeout option by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3005\"\u003eopenai/openai-agents-python#3005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3004\"\u003e#3004\u003c/a\u003e serve HITL resume tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3006\"\u003eopenai/openai-agents-python#3006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: backfill streamed terminal output by \u003ca href=\"https://github.com/ankitphogat\"\u003e\u003ccode\u003e@​ankitphogat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3000\"\u003eopenai/openai-agents-python#3000\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify lazy skill source host paths by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2998\"\u003eopenai/openai-agents-python#2998\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2999\"\u003eopenai/openai-agents-python#2999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.5 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3007\"\u003eopenai/openai-agents-python#3007\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankitphogat\"\u003e\u003ccode\u003e@​ankitphogat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3000\"\u003eopenai/openai-agents-python#3000\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.4...v0.14.5\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.4...v0.14.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add BoxMount support by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2988\"\u003eopenai/openai-agents-python#2988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: ignore relative snapshot base overrides by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2976\"\u003eopenai/openai-agents-python#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: share sandbox ephemeral mount lifecycle by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2986\"\u003eopenai/openai-agents-python#2986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: share sandbox tar exclude arg generation by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2987\"\u003eopenai/openai-agents-python#2987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: extract sandbox session helper operations by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2985\"\u003eopenai/openai-agents-python#2985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: remove duplicate word in voice interruptions section by \u003ca href=\"https://github.com/abhicris\"\u003e\u003ccode\u003e@​abhicris\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2981\"\u003eopenai/openai-agents-python#2981\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a207b6938699d87d2d17dd67dd628ca3af0232d\"\u003e\u003ccode\u003e9a207b6\u003c/code\u003e\u003c/a\u003e Release 0.14.6 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3022\"\u003e#3022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9af6ad111cab2defd5ef76404d575c35067af8de\"\u003e\u003ccode\u003e9af6ad1\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3023\"\u003e#3023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1821bf8094a21fee53c4e48f9346943c4a49dc5d\"\u003e\u003ccode\u003e1821bf8\u003c/code\u003e\u003c/a\u003e docs: add MongoDB session documentation (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3015\"\u003e#3015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/071e2b68f6b73bc96badfdee92e862cd41427eac\"\u003e\u003ccode\u003e071e2b6\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3021\"\u003e#3021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c88f339d32f2c1fc22ab5c71b0c86328379b6881\"\u003e\u003ccode\u003ec88f339\u003c/code\u003e\u003c/a\u003e Update examples and defaults to GPT-5.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3016\"\u003e#3016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5ffc1ecee444157447eca830275ff347adaa8c16\"\u003e\u003ccode\u003e5ffc1ec\u003c/code\u003e\u003c/a\u003e relax websockets upper bound from \u0026lt;16 to \u0026lt;17 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c2cb03146163e650518f9ed7d9a293352620881b\"\u003e\u003ccode\u003ec2cb031\u003c/code\u003e\u003c/a\u003e chore: harden uv dependency resolution (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3014\"\u003e#3014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fe3a5e6c271839107be2e554f96438436787331c\"\u003e\u003ccode\u003efe3a5e6\u003c/code\u003e\u003c/a\u003e Release 0.14.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3007\"\u003e#3007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/16e040929b76058e2776068eded0df40c4887445\"\u003e\u003ccode\u003e16e0409\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3004\"\u003e#3004\u003c/a\u003e serve HITL resume tool outputs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5be06a16a9aba93adff8539cde4a7a9519998a51\"\u003e\u003ccode\u003e5be06a1\u003c/code\u003e\u003c/a\u003e feat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3001\"\u003e#3001\u003c/a\u003e add Modal sandbox idle timeout option (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.6...v0.14.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.13.6\u0026new-version=0.14.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/HARISHMARAN/Harry-s-F1-data/pull/99","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HARISHMARAN%2FHarry-s-F1-data/issues/99","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/99/packages"},{"uuid":"4329474464","node_id":"PR_kwDORl2wQc7Vp9zt","number":27,"state":"closed","title":"Bump openai-agents from 0.0.7 to 0.14.6 in /openai-agents","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-02T23:12:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-25T23:12:39.000Z","updated_at":"2026-05-02T23:12:50.000Z","time_to_close":604809,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"openai-agents","old_version":"0.0.7","new_version":"0.14.6","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/openai-agents","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.0.7 to 0.14.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: update examples and defaults to GPT-5.5 by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3016\"\u003eopenai/openai-agents-python#3016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: relax websockets upper bound from \u0026lt;16 to \u0026lt;17 by \u003ca href=\"https://github.com/mathisobadia\"\u003e\u003ccode\u003e@​mathisobadia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3013\"\u003eopenai/openai-agents-python#3013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: harden uv dependency resolution by \u003ca href=\"https://github.com/mcgrew-oai\"\u003e\u003ccode\u003e@​mcgrew-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3014\"\u003eopenai/openai-agents-python#3014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3021\"\u003eopenai/openai-agents-python#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add MongoDB session documentation by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3015\"\u003eopenai/openai-agents-python#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3023\"\u003eopenai/openai-agents-python#3023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.6 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3022\"\u003eopenai/openai-agents-python#3022\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mcgrew-oai\"\u003e\u003ccode\u003e@​mcgrew-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3014\"\u003eopenai/openai-agents-python#3014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mathisobadia\"\u003e\u003ccode\u003e@​mathisobadia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3013\"\u003eopenai/openai-agents-python#3013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.5...v0.14.6\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.5...v0.14.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3001\"\u003e#3001\u003c/a\u003e add Modal sandbox idle timeout option by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3005\"\u003eopenai/openai-agents-python#3005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3004\"\u003e#3004\u003c/a\u003e serve HITL resume tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3006\"\u003eopenai/openai-agents-python#3006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: backfill streamed terminal output by \u003ca href=\"https://github.com/ankitphogat\"\u003e\u003ccode\u003e@​ankitphogat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3000\"\u003eopenai/openai-agents-python#3000\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify lazy skill source host paths by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2998\"\u003eopenai/openai-agents-python#2998\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2999\"\u003eopenai/openai-agents-python#2999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.5 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3007\"\u003eopenai/openai-agents-python#3007\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankitphogat\"\u003e\u003ccode\u003e@​ankitphogat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3000\"\u003eopenai/openai-agents-python#3000\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.4...v0.14.5\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.4...v0.14.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add BoxMount support by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2988\"\u003eopenai/openai-agents-python#2988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: ignore relative snapshot base overrides by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2976\"\u003eopenai/openai-agents-python#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: share sandbox ephemeral mount lifecycle by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2986\"\u003eopenai/openai-agents-python#2986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: share sandbox tar exclude arg generation by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2987\"\u003eopenai/openai-agents-python#2987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: extract sandbox session helper operations by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2985\"\u003eopenai/openai-agents-python#2985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: remove duplicate word in voice interruptions section by \u003ca href=\"https://github.com/abhicris\"\u003e\u003ccode\u003e@​abhicris\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2981\"\u003eopenai/openai-agents-python#2981\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a207b6938699d87d2d17dd67dd628ca3af0232d\"\u003e\u003ccode\u003e9a207b6\u003c/code\u003e\u003c/a\u003e Release 0.14.6 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3022\"\u003e#3022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9af6ad111cab2defd5ef76404d575c35067af8de\"\u003e\u003ccode\u003e9af6ad1\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3023\"\u003e#3023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1821bf8094a21fee53c4e48f9346943c4a49dc5d\"\u003e\u003ccode\u003e1821bf8\u003c/code\u003e\u003c/a\u003e docs: add MongoDB session documentation (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3015\"\u003e#3015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/071e2b68f6b73bc96badfdee92e862cd41427eac\"\u003e\u003ccode\u003e071e2b6\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3021\"\u003e#3021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c88f339d32f2c1fc22ab5c71b0c86328379b6881\"\u003e\u003ccode\u003ec88f339\u003c/code\u003e\u003c/a\u003e Update examples and defaults to GPT-5.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3016\"\u003e#3016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5ffc1ecee444157447eca830275ff347adaa8c16\"\u003e\u003ccode\u003e5ffc1ec\u003c/code\u003e\u003c/a\u003e relax websockets upper bound from \u0026lt;16 to \u0026lt;17 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c2cb03146163e650518f9ed7d9a293352620881b\"\u003e\u003ccode\u003ec2cb031\u003c/code\u003e\u003c/a\u003e chore: harden uv dependency resolution (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3014\"\u003e#3014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fe3a5e6c271839107be2e554f96438436787331c\"\u003e\u003ccode\u003efe3a5e6\u003c/code\u003e\u003c/a\u003e Release 0.14.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3007\"\u003e#3007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/16e040929b76058e2776068eded0df40c4887445\"\u003e\u003ccode\u003e16e0409\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3004\"\u003e#3004\u003c/a\u003e serve HITL resume tool outputs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5be06a16a9aba93adff8539cde4a7a9519998a51\"\u003e\u003ccode\u003e5be06a1\u003c/code\u003e\u003c/a\u003e feat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3001\"\u003e#3001\u003c/a\u003e add Modal sandbox idle timeout option (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.0.7...v0.14.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.0.7\u0026new-version=0.14.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/delega-dev/delega-examples/pull/27","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/delega-dev%2Fdelega-examples/issues/27","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/27/packages"},{"uuid":"4313214957","node_id":"PR_kwDOR7dI1c7U1b4j","number":199,"state":"closed","title":"chore(deps): bump openai-agents from 0.13.6 to 0.14.1 in /apps/orchestrator","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T03:15:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T03:09:26.000Z","updated_at":"2026-04-27T03:15:31.000Z","time_to_close":345963,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.13.6","new_version":"0.14.1","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/apps/orchestrator","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.13.6 to 0.14.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: sanitize OpenAI tracing export payloads by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2896\"\u003eopenai/openai-agents-python#2896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2873\"\u003e#2873\u003c/a\u003e preserve computer driver compatibility for modifier keys by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2877\"\u003eopenai/openai-agents-python#2877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2151\"\u003e#2151\u003c/a\u003e shield server-managed handoffs from unsupported history rewrites by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2747\"\u003eopenai/openai-agents-python#2747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: stop streamed tool execution after known input guardrail tripwire by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2688\"\u003eopenai/openai-agents-python#2688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2891\"\u003eopenai/openai-agents-python#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: align translated sandbox nav and refresh generated refs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2892\"\u003eopenai/openai-agents-python#2892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify ToolContext availability in function-tool lifecycle hooks by \u003ca href=\"https://github.com/HuxleyHu98\"\u003e\u003ccode\u003e@​HuxleyHu98\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2687\"\u003eopenai/openai-agents-python#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2893\"\u003eopenai/openai-agents-python#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add sandbox auto-label mapping by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2894\"\u003eopenai/openai-agents-python#2894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.1 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2895\"\u003eopenai/openai-agents-python#2895\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HuxleyHu98\"\u003e\u003ccode\u003e@​HuxleyHu98\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2687\"\u003eopenai/openai-agents-python#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2896\"\u003eopenai/openai-agents-python#2896\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.0...v0.14.1\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.0...v0.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eSandbox Agents\u003c/h3\u003e\n\u003cp\u003eThis release adds \u003cstrong\u003eSandbox Agents\u003c/strong\u003e, a beta SDK surface for running agents with a persistent, isolated workspace. Sandbox agents keep the normal \u003ccode\u003eAgent\u003c/code\u003e and \u003ccode\u003eRunner\u003c/code\u003e flow, but add workspace manifests, sandbox-native capabilities, sandbox clients, snapshots, and resume support so agents can work over real files, run commands, edit repositories, generate artifacts, and continue work across runs.\u003c/p\u003e\n\u003cp\u003eKey pieces:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSandboxAgent\u003c/code\u003e: an \u003ccode\u003eAgent\u003c/code\u003e with sandbox defaults such as \u003ccode\u003edefault_manifest\u003c/code\u003e, sandbox instructions, capabilities, and \u003ccode\u003erun_as\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eManifest\u003c/code\u003e: a fresh-workspace contract for files, directories, local files, local directories, Git repos, environment, users, groups, and mounts.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSandboxRunConfig\u003c/code\u003e: per-run sandbox wiring for client creation, live session injection, serialized session resume, manifest overrides, snapshots, and materialization concurrency limits.\u003c/li\u003e\n\u003cli\u003eBuilt-in capabilities for shell access, filesystem editing and image inspection, skills, memory, and compaction.\u003c/li\u003e\n\u003cli\u003eWorkspace snapshots and serialized sandbox session state for reconnecting to existing work or seeding a fresh sandbox from saved contents.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSandbox clients and hosted providers\u003c/h3\u003e\n\u003cp\u003eSandbox agents now support local, containerized, and hosted execution backends:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e for fast local development.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDockerSandboxClient\u003c/code\u003e for container isolation and image parity.\u003c/li\u003e\n\u003cli\u003eHosted sandbox clients for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe release also adds provider-specific examples and mount strategies for common storage backends, including S3, Cloudflare R2, Google Cloud Storage, Azure Blob Storage, and S3 Files where supported by the selected backend.\u003c/p\u003e\n\u003ch3\u003eSandbox memory\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3dffa4ba9351ee38b964af43b50a2fe70f1a89f6\"\u003e\u003ccode\u003e3dffa4b\u003c/code\u003e\u003c/a\u003e Release 0.14.1 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/2cef83b4777524bf7d44a0afee0d472adfb50e9a\"\u003e\u003ccode\u003e2cef83b\u003c/code\u003e\u003c/a\u003e fix: sanitize OpenAI tracing export payloads (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2896\"\u003e#2896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0a100fb1e409ba034854aafd464a825a86df8a38\"\u003e\u003ccode\u003e0a100fb\u003c/code\u003e\u003c/a\u003e ci: add sandbox auto-label mapping (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fa049a26fb1c6542653ab886965779d5fb31773b\"\u003e\u003ccode\u003efa049a2\u003c/code\u003e\u003c/a\u003e fix: stop streamed tool execution after known input guardrail tripwire (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2688\"\u003e#2688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/901348023d9e26ac4e5565e0d86367d3ac40fed5\"\u003e\u003ccode\u003e9013480\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2873\"\u003e#2873\u003c/a\u003e preserve computer driver compatibility for modifier keys (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2877\"\u003e#2877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/83b38333826b9cd34abd767703e0a1b9eea46105\"\u003e\u003ccode\u003e83b3833\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2151\"\u003e#2151\u003c/a\u003e shield server-managed handoffs from unsupported history rewrites (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5d05d5d5d27067692fc1114b56c9dd849ce08015\"\u003e\u003ccode\u003e5d05d5d\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2893\"\u003e#2893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/bd871cddb2cb76e5707677c0e385d094c9a1a7a6\"\u003e\u003ccode\u003ebd871cd\u003c/code\u003e\u003c/a\u003e docs: clarify ToolContext availability in function-tool lifecycle hooks (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2687\"\u003e#2687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/489221155b2360b8f16b5fca394f59bc63ac355c\"\u003e\u003ccode\u003e4892211\u003c/code\u003e\u003c/a\u003e docs: align translated sandbox nav and refresh generated refs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2892\"\u003e#2892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e3366670ad0cb88cd778a51ad91a45e87e6d8227\"\u003e\u003ccode\u003ee336667\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.6...v0.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.13.6\u0026new-version=0.14.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/xiaojiou176-open/OpenVibeCoding/pull/199","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojiou176-open%2FOpenVibeCoding/issues/199","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/199/packages"},{"uuid":"4295793419","node_id":"PR_kwDOJpb2687T89KH","number":2740,"state":"closed","title":"chore(deps): bump the py-minor-and-patch group in /python with 18 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T23:19:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T12:53:12.000Z","updated_at":"2026-04-20T23:19:51.000Z","time_to_close":37598,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"py-minor-and-patch","update_count":18,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"opentelemetry-sdk","old_version":"1.38.0","new_version":"1.41.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.38.0","new_version":"1.41.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.38.0","new_version":"1.41.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"openai-agents","old_version":"0.13.6","new_version":"0.14.2","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"claude-agent-sdk","old_version":"0.1.58","new_version":"0.1.63","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"google-adk","old_version":"1.29.0","new_version":"1.14.1","repository_url":"https://github.com/google/adk-python"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.15.10","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"langchain-core","old_version":"1.2.28","new_version":"1.3.0","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-openai","old_version":"1.1.12","new_version":"1.1.14","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-anthropic","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"google-genai","old_version":"1.72.0","new_version":"1.73.1","repository_url":"https://github.com/googleapis/python-genai"},{"name":"ty","old_version":"0.0.29","new_version":"0.0.31","repository_url":"https://github.com/astral-sh/ty"},{"name":"openai","old_version":"2.31.0","new_version":"2.32.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.87.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"}],"path":"/python","ecosystem":"pip"},"body":"Bumps the py-minor-and-patch group in /python with 18 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.2` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.41.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.41.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.41.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.13.6` | `0.14.2` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.58` | `0.1.63` |\n| [google-adk](https://github.com/google/adk-python) | `1.29.0` | `1.14.1` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.10` | `0.15.11` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.0` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.2.28` | `1.3.0` |\n| [langchain-openai](https://github.com/langchain-ai/langchain) | `1.1.12` | `1.1.14` |\n| [langchain-anthropic](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.1` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.72.0` | `1.73.1` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.29` | `0.0.31` |\n| [openai](https://github.com/openai/openai-python) | `2.31.0` | `2.32.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.87.0` | `0.96.0` |\n\nUpdates `pydantic` from 2.12.5 to 2.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.2/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c/a\u003e tests: do not reload the tags module (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2c6c7dfa2d406e44b91f3f8d26eeed72437c9435\"\u003e\u003ccode\u003e2c6c7df\u003c/code\u003e\u003c/a\u003e feat: add handling for Emscripten wheels tags per PEP 783 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/6762eea4de40da02c119d02cc77c907c6b446b86\"\u003e\u003ccode\u003e6762eea\u003c/code\u003e\u003c/a\u003e docs(markers): document \u0026amp; and | operators for combining Marker objects (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.38.0 to 1.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4910\"\u003e#4910\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e3017323f147fd14a64fa8bb070271026182208a\"\u003e\u003ccode\u003ee301732\u003c/code\u003e\u003c/a\u003e Add MikeGoldsmith to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8783a5831d54d9224edd930e5106225fc0f97c1b\"\u003e\u003ccode\u003e8783a58\u003c/code\u003e\u003c/a\u003e introduce \u003ccode\u003ealls-green\u003c/code\u003e action for required checks (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4988\"\u003e#4988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.38.0 to 1.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4910\"\u003e#4910\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e3017323f147fd14a64fa8bb070271026182208a\"\u003e\u003ccode\u003ee301732\u003c/code\u003e\u003c/a\u003e Add MikeGoldsmith to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8783a5831d54d9224edd930e5106225fc0f97c1b\"\u003e\u003ccode\u003e8783a58\u003c/code\u003e\u003c/a\u003e introduce \u003ccode\u003ealls-green\u003c/code\u003e action for required checks (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4988\"\u003e#4988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-http` from 1.38.0 to 1.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-http's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4910\"\u003e#4910\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e3017323f147fd14a64fa8bb070271026182208a\"\u003e\u003ccode\u003ee301732\u003c/code\u003e\u003c/a\u003e Add MikeGoldsmith to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8783a5831d54d9224edd930e5106225fc0f97c1b\"\u003e\u003ccode\u003e8783a58\u003c/code\u003e\u003c/a\u003e introduce \u003ccode\u003ealls-green\u003c/code\u003e action for required checks (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4988\"\u003e#4988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai-agents` from 0.13.6 to 0.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support sandbox extra path grants by \u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2920\"\u003eopenai/openai-agents-python#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2228\"\u003e#2228\u003c/a\u003e persist tool origin metadata in run items by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2654\"\u003eopenai/openai-agents-python#2654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(extensions): add MongoDB session backend by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2902\"\u003eopenai/openai-agents-python#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: loosen sandbox compaction model parsing by \u003ca href=\"https://github.com/sdcoffey\"\u003e\u003ccode\u003e@​sdcoffey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2930\"\u003eopenai/openai-agents-python#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove_all_tools missing hosted tool types by \u003ca href=\"https://github.com/javierdejesusda\"\u003e\u003ccode\u003e@​javierdejesusda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2885\"\u003eopenai/openai-agents-python#2885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: tolerate None text in ResponseOutputText content items by \u003ca href=\"https://github.com/beveradb\"\u003e\u003ccode\u003e@​beveradb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2883\"\u003eopenai/openai-agents-python#2883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/1876\"\u003e#1876\u003c/a\u003e LiteLLM extra_body forwarding by \u003ca href=\"https://github.com/yu2001-s\"\u003e\u003ccode\u003e@​yu2001-s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2900\"\u003eopenai/openai-agents-python#2900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: trust filesystem permissions for Vercel roots by \u003ca href=\"https://github.com/scotttrinh\"\u003e\u003ccode\u003e@​scotttrinh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2910\"\u003eopenai/openai-agents-python#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/604\"\u003e#604\u003c/a\u003e handle None choices in ChatCompletion response by \u003ca href=\"https://github.com/Spectual\"\u003e\u003ccode\u003e@​Spectual\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2850\"\u003eopenai/openai-agents-python#2850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: normalize compacted Responses user inputs before session reuse by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2925\"\u003eopenai/openai-agents-python#2925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2929\"\u003e#2929\u003c/a\u003e surface run-loop exceptions after stream_events() completes by \u003ca href=\"https://github.com/nileshpatil6\"\u003e\u003ccode\u003e@​nileshpatil6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2931\"\u003eopenai/openai-agents-python#2931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify OpenAI provider configuration guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2901\"\u003eopenai/openai-agents-python#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2903\"\u003eopenai/openai-agents-python#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: sync sandbox translations and set doc translation default model to gpt-5.4 by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2904\"\u003eopenai/openai-agents-python#2904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2935\"\u003eopenai/openai-agents-python#2935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump \u003ccode\u003etemporalio\u003c/code\u003e Dep in Temporal example by \u003ca href=\"https://github.com/JasonSteving99\"\u003e\u003ccode\u003e@​JasonSteving99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2918\"\u003eopenai/openai-agents-python#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.2 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2899\"\u003eopenai/openai-agents-python#2899\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/javierdejesusda\"\u003e\u003ccode\u003e@​javierdejesusda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2885\"\u003eopenai/openai-agents-python#2885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beveradb\"\u003e\u003ccode\u003e@​beveradb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2883\"\u003eopenai/openai-agents-python#2883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yu2001-s\"\u003e\u003ccode\u003e@​yu2001-s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2900\"\u003eopenai/openai-agents-python#2900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JasonSteving99\"\u003e\u003ccode\u003e@​JasonSteving99\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2918\"\u003eopenai/openai-agents-python#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scotttrinh\"\u003e\u003ccode\u003e@​scotttrinh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2910\"\u003eopenai/openai-agents-python#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Spectual\"\u003e\u003ccode\u003e@​Spectual\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2850\"\u003eopenai/openai-agents-python#2850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2902\"\u003eopenai/openai-agents-python#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2920\"\u003eopenai/openai-agents-python#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nileshpatil6\"\u003e\u003ccode\u003e@​nileshpatil6\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2931\"\u003eopenai/openai-agents-python#2931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.1...v0.14.2\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.1...v0.14.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: sanitize OpenAI tracing export payloads by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2896\"\u003eopenai/openai-agents-python#2896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2873\"\u003e#2873\u003c/a\u003e preserve computer driver compatibility for modifier keys by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2877\"\u003eopenai/openai-agents-python#2877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2151\"\u003e#2151\u003c/a\u003e shield server-managed handoffs from unsupported history rewrites by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2747\"\u003eopenai/openai-agents-python#2747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: stop streamed tool execution after known input guardrail tripwire by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2688\"\u003eopenai/openai-agents-python#2688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2891\"\u003eopenai/openai-agents-python#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: align translated sandbox nav and refresh generated refs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2892\"\u003eopenai/openai-agents-python#2892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify ToolContext availability in function-tool lifecycle hooks by \u003ca href=\"https://github.com/HuxleyHu98\"\u003e\u003ccode\u003e@​HuxleyHu98\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2687\"\u003eopenai/openai-agents-python#2687\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/langchain-ai/langsmith-sdk/pull/2740","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/langchain-ai%2Flangsmith-sdk/issues/2740","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2740/packages"},{"uuid":"4290082115","node_id":"PR_kwDORzsKKM7TrWq1","number":86,"state":"open","title":"chore(deps): bump openai-agents from 0.13.6 to 0.14.2 in /addons/formula-chat/api","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-19T06:05:54.000Z","updated_at":"2026-04-26T08:00:30.070Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.13.6","new_version":"0.14.2","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/addons/formula-chat/api","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.13.6 to 0.14.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support sandbox extra path grants by \u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2920\"\u003eopenai/openai-agents-python#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2228\"\u003e#2228\u003c/a\u003e persist tool origin metadata in run items by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2654\"\u003eopenai/openai-agents-python#2654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(extensions): add MongoDB session backend by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2902\"\u003eopenai/openai-agents-python#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: loosen sandbox compaction model parsing by \u003ca href=\"https://github.com/sdcoffey\"\u003e\u003ccode\u003e@​sdcoffey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2930\"\u003eopenai/openai-agents-python#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove_all_tools missing hosted tool types by \u003ca href=\"https://github.com/javierdejesusda\"\u003e\u003ccode\u003e@​javierdejesusda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2885\"\u003eopenai/openai-agents-python#2885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: tolerate None text in ResponseOutputText content items by \u003ca href=\"https://github.com/beveradb\"\u003e\u003ccode\u003e@​beveradb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2883\"\u003eopenai/openai-agents-python#2883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/1876\"\u003e#1876\u003c/a\u003e LiteLLM extra_body forwarding by \u003ca href=\"https://github.com/yu2001-s\"\u003e\u003ccode\u003e@​yu2001-s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2900\"\u003eopenai/openai-agents-python#2900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: trust filesystem permissions for Vercel roots by \u003ca href=\"https://github.com/scotttrinh\"\u003e\u003ccode\u003e@​scotttrinh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2910\"\u003eopenai/openai-agents-python#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/604\"\u003e#604\u003c/a\u003e handle None choices in ChatCompletion response by \u003ca href=\"https://github.com/Spectual\"\u003e\u003ccode\u003e@​Spectual\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2850\"\u003eopenai/openai-agents-python#2850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: normalize compacted Responses user inputs before session reuse by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2925\"\u003eopenai/openai-agents-python#2925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2929\"\u003e#2929\u003c/a\u003e surface run-loop exceptions after stream_events() completes by \u003ca href=\"https://github.com/nileshpatil6\"\u003e\u003ccode\u003e@​nileshpatil6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2931\"\u003eopenai/openai-agents-python#2931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify OpenAI provider configuration guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2901\"\u003eopenai/openai-agents-python#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2903\"\u003eopenai/openai-agents-python#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: sync sandbox translations and set doc translation default model to gpt-5.4 by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2904\"\u003eopenai/openai-agents-python#2904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2935\"\u003eopenai/openai-agents-python#2935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump \u003ccode\u003etemporalio\u003c/code\u003e Dep in Temporal example by \u003ca href=\"https://github.com/JasonSteving99\"\u003e\u003ccode\u003e@​JasonSteving99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2918\"\u003eopenai/openai-agents-python#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.2 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2899\"\u003eopenai/openai-agents-python#2899\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/javierdejesusda\"\u003e\u003ccode\u003e@​javierdejesusda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2885\"\u003eopenai/openai-agents-python#2885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beveradb\"\u003e\u003ccode\u003e@​beveradb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2883\"\u003eopenai/openai-agents-python#2883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yu2001-s\"\u003e\u003ccode\u003e@​yu2001-s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2900\"\u003eopenai/openai-agents-python#2900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JasonSteving99\"\u003e\u003ccode\u003e@​JasonSteving99\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2918\"\u003eopenai/openai-agents-python#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scotttrinh\"\u003e\u003ccode\u003e@​scotttrinh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2910\"\u003eopenai/openai-agents-python#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Spectual\"\u003e\u003ccode\u003e@​Spectual\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2850\"\u003eopenai/openai-agents-python#2850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2902\"\u003eopenai/openai-agents-python#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2920\"\u003eopenai/openai-agents-python#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nileshpatil6\"\u003e\u003ccode\u003e@​nileshpatil6\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2931\"\u003eopenai/openai-agents-python#2931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.1...v0.14.2\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.1...v0.14.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: sanitize OpenAI tracing export payloads by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2896\"\u003eopenai/openai-agents-python#2896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2873\"\u003e#2873\u003c/a\u003e preserve computer driver compatibility for modifier keys by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2877\"\u003eopenai/openai-agents-python#2877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2151\"\u003e#2151\u003c/a\u003e shield server-managed handoffs from unsupported history rewrites by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2747\"\u003eopenai/openai-agents-python#2747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: stop streamed tool execution after known input guardrail tripwire by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2688\"\u003eopenai/openai-agents-python#2688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2891\"\u003eopenai/openai-agents-python#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: align translated sandbox nav and refresh generated refs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2892\"\u003eopenai/openai-agents-python#2892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify ToolContext availability in function-tool lifecycle hooks by \u003ca href=\"https://github.com/HuxleyHu98\"\u003e\u003ccode\u003e@​HuxleyHu98\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2687\"\u003eopenai/openai-agents-python#2687\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e80d2d2319eb300ac17ec496988b70246a5042d6\"\u003e\u003ccode\u003ee80d2d2\u003c/code\u003e\u003c/a\u003e Release 0.14.2 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/61443ca8af4b7f952859abf461d1104b55789caf\"\u003e\u003ccode\u003e61443ca\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2929\"\u003e#2929\u003c/a\u003e surface run-loop exceptions after stream_events() completes (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2931\"\u003e#2931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/55c89007362aef510909365ec149b1a83ed23a90\"\u003e\u003ccode\u003e55c8900\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/377204714d169efb261f0115779b8c930c11c87a\"\u003e\u003ccode\u003e3772047\u003c/code\u003e\u003c/a\u003e feat: support sandbox extra path grants (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2920\"\u003e#2920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/dd3f59e399a94229ce6804838b964b3e23c1e73b\"\u003e\u003ccode\u003edd3f59e\u003c/code\u003e\u003c/a\u003e Loosen sandbox compaction model parsing (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/67fb85a17f47bce80c949f4a3b17f0efc5da5b73\"\u003e\u003ccode\u003e67fb85a\u003c/code\u003e\u003c/a\u003e feat(extensions): add MongoDB session backend (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f84ef7f649d1bb3ba7ca86e41509081e7e779bc6\"\u003e\u003ccode\u003ef84ef7f\u003c/code\u003e\u003c/a\u003e fix: normalize compacted Responses user inputs before session reuse (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2925\"\u003e#2925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/b7ba44688db786719c550aee2fa7228189f25ff3\"\u003e\u003ccode\u003eb7ba446\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/604\"\u003e#604\u003c/a\u003e handle None choices in ChatCompletion response (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2850\"\u003e#2850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/b58d059f4dc7a3827f30389e31fd6e521cdcdf57\"\u003e\u003ccode\u003eb58d059\u003c/code\u003e\u003c/a\u003e fix: Trust filesystem permissions for Vercel roots (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2910\"\u003e#2910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3ad12bc27308278fc875144a04c60a068d399b1a\"\u003e\u003ccode\u003e3ad12bc\u003c/code\u003e\u003c/a\u003e chore: Bump \u003ccode\u003etemporalio\u003c/code\u003e Dep in Temporal Example (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.6...v0.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.13.6\u0026new-version=0.14.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/HARISHMARAN/Harry-s-F1-data/pull/86","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HARISHMARAN%2FHarry-s-F1-data/issues/86","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/86/packages"},{"uuid":"4254865121","node_id":"PR_kwDORcNYdc7R_GUr","number":311,"state":"open","title":"Update openai-agents requirement from \u003e=0.1.0 to \u003e=0.8.4 in /sdk","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T13:06:56.000Z","updated_at":"2026-05-01T04:49:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"openai-agents","old_version":"\u003e=0.1.0","new_version":"\u003e=0.8.4","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/sdk","ecosystem":"pip"},"body":"Updates the requirements on [openai-agents](https://github.com/openai/openai-agents-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.4\u003c/h2\u003e\n\u003ch2\u003eKey Changes\u003c/h2\u003e\n\u003ch3\u003eHosted container tool + Skills\u003c/h3\u003e\n\u003cp\u003eThis release includes the hosted shell runtime tool along with its native skills support. Developers now can pass a container-based shell runtime with skills this way:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom agents import Agent, ShellTool\r\n\u003cp\u003eagent = Agent(\nname=\u0026quot;Shell Agent\u0026quot;,\nmodel=\u0026quot;gpt-5.2\u0026quot;,\ninstructions=\u0026quot;Use the available shell tool to answer user requests.\u0026quot;,\ntools=[\nShellTool(\nenvironment={\n\u0026quot;type\u0026quot;: \u0026quot;container_auto\u0026quot;,\n\u0026quot;network_policy\u0026quot;: {\u0026quot;type\u0026quot;: \u0026quot;disabled\u0026quot;},\n\u0026quot;skills\u0026quot;: [\n{\n\u0026quot;type\u0026quot;: \u0026quot;skill_reference\u0026quot;,\n\u0026quot;skill_id\u0026quot;: \u0026quot;skill_698bbe879adc81918725cbc69dcae7960bc5613dadaed377\u0026quot;,\n\u0026quot;version\u0026quot;: \u0026quot;1\u0026quot;,\n}\n],\n}\n)\n],\n)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eRefer to \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/examples/tools/container_shell_inline_skill.py\"\u003eexamples/tools/container_shell_inline_skill.py\u003c/a\u003e and \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/examples/tools/container_shell_skill_reference.py\"\u003eexamples/tools/container_shell_skill_reference.py\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add container shell + skills support by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2469\"\u003eopenai/openai-agents-python#2469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(realtime): omit null audio formats in SIP call attach updates by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2454\"\u003eopenai/openai-agents-python#2454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(result): support Pydantic model_rebuild for RunResultStreaming by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2455\"\u003eopenai/openai-agents-python#2455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(tool): resolve default failure handler at invoke time by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2460\"\u003eopenai/openai-agents-python#2460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(agent-tools): inherit parent RunConfig when agent-as-tool is invoked by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2463\"\u003eopenai/openai-agents-python#2463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(stream): emit queued events before max-turns exception by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2458\"\u003eopenai/openai-agents-python#2458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(prompt): omit tool_choice when prompt manages built-in tools by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2464\"\u003eopenai/openai-agents-python#2464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocuments \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2452\"\u003eopenai/openai-agents-python#2452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(mcp): validate required params before call_tool by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2453\"\u003eopenai/openai-agents-python#2453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify Azure Realtime GA endpoint configuration by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2440\"\u003eopenai/openai-agents-python#2440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2466\"\u003eopenai/openai-agents-python#2466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.8.4 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2465\"\u003eopenai/openai-agents-python#2465\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.11.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.10.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a significant new feature area for OpenAI Responses users: websocket transport support for the Responses API.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded websocket transport support for OpenAI Responses models (opt-in; HTTP remains the default transport).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eresponses_websocket_session()\u003c/code\u003e helper / \u003ccode\u003eResponsesWebSocketSession\u003c/code\u003e for reusing a shared websocket-capable provider and \u003ccode\u003eRunConfig\u003c/code\u003e across multi-turn runs.\u003c/li\u003e\n\u003cli\u003eAdded a new websocket streaming example (\u003ccode\u003eexamples/basic/stream_ws.py\u003c/code\u003e) covering streaming, tools, approvals, and follow-up turns.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/67687cbab31c6c071204dc7f48ea6e47624aa2e7\"\u003e\u003ccode\u003e67687cb\u003c/code\u003e\u003c/a\u003e Release 0.8.4 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2465\"\u003e#2465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/947fff8bd03d7dd322abf4a92df7a0c24f55807e\"\u003e\u003ccode\u003e947fff8\u003c/code\u003e\u003c/a\u003e fix(prompt): omit tool_choice when prompt manages built-in tools (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2464\"\u003e#2464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0793a8ce916377ad80f47f9819ee99bc86676aaa\"\u003e\u003ccode\u003e0793a8c\u003c/code\u003e\u003c/a\u003e feat: add container shell + skills support (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2469\"\u003e#2469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f76ec8ac1c8e5ca5af2661b704481ba353ff31a2\"\u003e\u003ccode\u003ef76ec8a\u003c/code\u003e\u003c/a\u003e fix(stream): emit queued events before max-turns exception (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2458\"\u003e#2458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1168ee1ad15a200ce2effe6a5aa42727fa3c52e3\"\u003e\u003ccode\u003e1168ee1\u003c/code\u003e\u003c/a\u003e fix(agent-tools): inherit parent RunConfig when agent-as-tool is invoked (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2463\"\u003e#2463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/85e56167f740d2a560285f7f4ba39cb3cfe3ec83\"\u003e\u003ccode\u003e85e5616\u003c/code\u003e\u003c/a\u003e fix(tool): resolve default failure handler at invoke time (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2460\"\u003e#2460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f1f88f8fa42c2016339871d04fb49afd4db86c17\"\u003e\u003ccode\u003ef1f88f8\u003c/code\u003e\u003c/a\u003e fix(result): support Pydantic model_rebuild for RunResultStreaming (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2455\"\u003e#2455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/72204371c394f57099e6f313fcbc947432bc0dff\"\u003e\u003ccode\u003e7220437\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2466\"\u003e#2466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f1d8923e480177e4664a364e1f0f87ea125e9f73\"\u003e\u003ccode\u003ef1d8923\u003c/code\u003e\u003c/a\u003e fix(realtime): omit null audio formats in SIP call attach updates (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2454\"\u003e#2454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/86f5c71e1906ecc324efe97e8f1ed7b0b9e174ed\"\u003e\u003ccode\u003e86f5c71\u003c/code\u003e\u003c/a\u003e docs: clarify Azure Realtime GA endpoint configuration (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.1.0...v0.8.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/nicholasraimbault/skytale/pull/311","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholasraimbault%2Fskytale/issues/311","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/311/packages"},{"uuid":"4246757033","node_id":"PR_kwDORzsKKM7RvLHS","number":61,"state":"open","title":"chore(deps): bump openai-agents from 0.13.4 to 0.13.6 in /addons/formula-chat/api","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-12T06:05:39.000Z","updated_at":"2026-04-12T06:06:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.13.4","new_version":"0.13.6","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/addons/formula-chat/api","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.13.4 to 0.13.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.13.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2863\"\u003e#2863\u003c/a\u003e lazy-load SQLiteSession exports by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2864\"\u003eopenai/openai-agents-python#2864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2856\"\u003e#2856\u003c/a\u003e stop recursive trace preview truncation by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2860\"\u003eopenai/openai-agents-python#2860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: harden SQLAlchemySession against transient SQLite locks by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2854\"\u003eopenai/openai-agents-python#2854\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: updates for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2844\"\u003e#2844\u003c/a\u003e changes by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2845\"\u003eopenai/openai-agents-python#2845\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2847\"\u003eopenai/openai-agents-python#2847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(tracing): add HoneyHive to tracing integrations list by \u003ca href=\"https://github.com/m1lestones\"\u003e\u003ccode\u003e@​m1lestones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2851\"\u003eopenai/openai-agents-python#2851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2853\"\u003eopenai/openai-agents-python#2853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.13.6 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2861\"\u003eopenai/openai-agents-python#2861\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/m1lestones\"\u003e\u003ccode\u003e@​m1lestones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2851\"\u003eopenai/openai-agents-python#2851\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.5...v0.13.6\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.13.5...v0.13.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.13.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2807\"\u003e#2807\u003c/a\u003e support callable approval policies for local MCP servers by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2818\"\u003eopenai/openai-agents-python#2818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2135\"\u003e#2135\u003c/a\u003e add public flush_traces API by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2844\"\u003eopenai/openai-agents-python#2844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2823\"\u003e#2823\u003c/a\u003e AnyLLM reasoning extraction for iterable vLLM/any-llm Reasoning objects by \u003ca href=\"https://github.com/ziqi-cn\"\u003e\u003ccode\u003e@​ziqi-cn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2822\"\u003eopenai/openai-agents-python#2822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: serialize SQLite session writes with shared file locks by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2843\"\u003eopenai/openai-agents-python#2843\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump openai/codex-action from 1.4 to 1.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2819\"\u003eopenai/openai-agents-python#2819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump astral-sh/setup-uv from 7.3.1 to 8.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2820\"\u003eopenai/openai-agents-python#2820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: sync examples.md with current examples directory by \u003ca href=\"https://github.com/AbdullahBapra\"\u003e\u003ccode\u003e@​AbdullahBapra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2827\"\u003eopenai/openai-agents-python#2827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2828\"\u003eopenai/openai-agents-python#2828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.13.5 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2821\"\u003eopenai/openai-agents-python#2821\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbdullahBapra\"\u003e\u003ccode\u003e@​AbdullahBapra\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2827\"\u003eopenai/openai-agents-python#2827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ziqi-cn\"\u003e\u003ccode\u003e@​ziqi-cn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2822\"\u003eopenai/openai-agents-python#2822\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.4...v0.13.5\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.13.4...v0.13.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/bfc8c6355ff0cc2b7f43980ed1b459f411dc42e5\"\u003e\u003ccode\u003ebfc8c63\u003c/code\u003e\u003c/a\u003e Release 0.13.6 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2861\"\u003e#2861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/690079e2b98a54e0a3ba165cb36ebdef33caa6b2\"\u003e\u003ccode\u003e690079e\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2863\"\u003e#2863\u003c/a\u003e lazy-load SQLiteSession exports (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2864\"\u003e#2864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fb67680fae60fef27cd0e71e73a68c73f9212526\"\u003e\u003ccode\u003efb67680\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2856\"\u003e#2856\u003c/a\u003e stop recursive trace preview truncation (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2860\"\u003e#2860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c06cd45004f63bd33ef9dd66bdc2b4d0cdc82e1b\"\u003e\u003ccode\u003ec06cd45\u003c/code\u003e\u003c/a\u003e fix: harden SQLAlchemySession against transient SQLite locks (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2854\"\u003e#2854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/aeb653e56286895e7d8918b220e9d99b9e739f35\"\u003e\u003ccode\u003eaeb653e\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2853\"\u003e#2853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0386210b3bc754ce13165672720ee2cecae53767\"\u003e\u003ccode\u003e0386210\u003c/code\u003e\u003c/a\u003e docs(tracing): add HoneyHive to tracing integrations list (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2851\"\u003e#2851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fa508992edc6640f2ccf6addfbdb30c98f109b5d\"\u003e\u003ccode\u003efa50899\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2847\"\u003e#2847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e1d861ca5076a262e395344bbcfc95857cedaf78\"\u003e\u003ccode\u003ee1d861c\u003c/code\u003e\u003c/a\u003e docs: updates for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2844\"\u003e#2844\u003c/a\u003e changes (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/b0ab25c2d6796c7699492dd2289efa509aae3705\"\u003e\u003ccode\u003eb0ab25c\u003c/code\u003e\u003c/a\u003e Release 0.13.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/7a3f6b70d1bd4e700f3a06547b673295fb52e74d\"\u003e\u003ccode\u003e7a3f6b7\u003c/code\u003e\u003c/a\u003e feat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2135\"\u003e#2135\u003c/a\u003e add public flush_traces API (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2844\"\u003e#2844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.4...v0.13.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.13.4\u0026new-version=0.13.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/HARISHMARAN/Harry-s-F1-data/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HARISHMARAN%2FHarry-s-F1-data/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"}],"issue_packages":[{"old_version":"0.17.4","new_version":"0.17.7","update_type":"patch","path":null,"pr_created_at":"2026-07-03T08:47:45.000Z","version_change":"0.17.4 → 0.17.7","issue":{"uuid":"4801945536","node_id":"PR_kwDOR335Os7tgbcc","number":59,"state":"closed","title":"Bump the pip-minor-patch group across 1 directory with 37 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-07-03T10:38:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-03T08:47:45.000Z","updated_at":"2026-07-03T10:38:43.000Z","time_to_close":6656,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-minor-patch","update_count":37,"packages":[{"name":"alembic","old_version":"1.14.1","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.13.0","new_version":"4.14.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.3.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"croniter","old_version":"6.2.2","new_version":"6.2.3","repository_url":"https://github.com/pallets-eco/croniter"},{"name":"fastapi","old_version":"0.135.3","new_version":"0.139.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastapi-cli","old_version":"0.0.24","new_version":"0.0.27","repository_url":"https://github.com/fastapi/fastapi-cli"},{"name":"fastapi-cloud-cli","old_version":"0.15.1","new_version":"0.22.1","repository_url":"https://github.com/fastapilabs/fastapi-cloud-cli"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.5.3","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"griffelib","old_version":"2.0.2","new_version":"2.1.0"},{"name":"httptools","old_version":"0.7.1","new_version":"0.8.0","repository_url":"https://github.com/MagicStack/httptools"},{"name":"idna","old_version":"3.11","new_version":"3.18","repository_url":"https://github.com/kjd/idna"},{"name":"jiter","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mako","old_version":"1.3.10","new_version":"1.3.12","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"mcp","old_version":"1.27.1","new_version":"1.28.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"openai","old_version":"2.36.0","new_version":"2.44.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openai-agents","old_version":"0.17.4","new_version":"0.17.7","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.1","new_version":"2.14.2","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyotp","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/pyauth/pyotp"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"redis","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/redis/redis-py"},{"name":"rich-toolkit","old_version":"0.20.0","new_version":"0.20.1"},{"name":"rpds-py","old_version":"2026.5.1","new_version":"2026.6.3","repository_url":"https://github.com/crate-py/rpds"},{"name":"rq","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/rq/rq"},{"name":"sentry-sdk","old_version":"2.57.0","new_version":"2.64.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.51","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sse-starlette","old_version":"3.4.4","new_version":"3.4.5","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"starlette","old_version":"1.0.0","new_version":"1.3.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"tqdm","old_version":"4.67.3","new_version":"4.68.3","repository_url":"https://github.com/tqdm/tqdm"},{"name":"typer","old_version":"0.26.7","new_version":"0.26.8","repository_url":"https://github.com/fastapi/typer"},{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.1","new_version":"1.2.0","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-minor-patch group with 37 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.14.1` | `1.18.5` |\n| [anyio](https://github.com/agronholm/anyio) | `4.13.0` | `4.14.1` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.4.2` |\n| [croniter](https://github.com/pallets-eco/croniter) | `6.2.2` | `6.2.3` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.139.0` |\n| [fastapi-cli](https://github.com/fastapi/fastapi-cli) | `0.0.24` | `0.0.27` |\n| [fastapi-cloud-cli](https://github.com/fastapilabs/fastapi-cloud-cli) | `0.15.1` | `0.22.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.5.3` |\n| griffelib | `2.0.2` | `2.1.0` |\n| [httptools](https://github.com/MagicStack/httptools) | `0.7.1` | `0.8.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.18` |\n| [jiter](https://github.com/pydantic/jiter) | `0.14.0` | `0.16.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.3.12` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.27.1` | `1.28.1` |\n| [openai](https://github.com/openai/openai-python) | `2.36.0` | `2.44.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.17.4` | `0.17.7` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.1` | `2.14.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.47.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [pyotp](https://github.com/pyauth/pyotp) | `2.9.0` | `2.10.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.32` |\n| [redis](https://github.com/redis/redis-py) | `8.0.0` | `8.0.1` |\n| rich-toolkit | `0.20.0` | `0.20.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `2026.5.1` | `2026.6.3` |\n| [rq](https://github.com/rq/rq) | `2.9.0` | `2.10.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.64.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.51` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.4.4` | `3.4.5` |\n| [starlette](https://github.com/Kludex/starlette) | `1.0.0` | `1.3.1` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.68.3` |\n| [typer](https://github.com/fastapi/typer) | `0.26.7` | `0.26.8` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.49.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.1` | `1.2.0` |\n\n\nUpdates `alembic` from 1.14.1 to 1.18.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.5\u003c/h1\u003e\n\u003cp\u003eReleased: June 25, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003e--splice\u003c/code\u003e support to the \u003ccode\u003emerge()\u003c/code\u003e command. Previously, the\nmerge command would suggest using \u003ccode\u003e--splice\u003c/code\u003e when attempting to merge\nnon-head revisions, but the flag was not actually accepted by the command.\nThe \u003ccode\u003esplice\u003c/code\u003e parameter is now available in both the command-line\ninterface and the \u003ccode\u003ecommand.merge()\u003c/code\u003e function, matching the existing\nsupport in \u003ccode\u003ecommand.revision()\u003c/code\u003e.  Pull request courtesy Kadir Can\nOzden.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1712\"\u003e#1712\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [environment]\u003c/strong\u003e Added \u003ccode\u003eScriptDirectory.get_heads.consider_depends_on\u003c/code\u003e\nparameter to \u003ccode\u003eScriptDirectory.get_heads()\u003c/code\u003e. When set to \u003ccode\u003eTrue\u003c/code\u003e,\nhead revisions that are also a dependency of another revision via\n\u003ccode\u003edepends_on\u003c/code\u003e are excluded from the result, matching the effective\nheads that would be present in the \u003ccode\u003ealembic_version\u003c/code\u003e table after\nrunning all upgrades.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1806\"\u003e#1806\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed rendering of dialect keyword arguments containing\n\u003ccode\u003e~sqlalchemy.schema.Column\u003c/code\u003e objects within sequences, such as\n\u003ccode\u003epostgresql_include\u003c/code\u003e.  These were previously rendered using \u003ccode\u003erepr()\u003c/code\u003e,\nproducing invalid Python in the generated migration scripts.  Column\nobjects within list or tuple values are now correctly rendered as their\nstring column names.  Pull request courtesy Ajay Singh.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1258\"\u003e#1258\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Implemented type comparison for \u003ccode\u003eENUM\u003c/code\u003e datatypes on MySQL, which\nchecks that the individual enum values are equivalent.  If additional\nentries are on either side, this generates a diff.  Changes of order do not\ngenerate a diff.  Pull request courtesy Furkan Köykıran.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1745\"\u003e#1745\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/779\"\u003e#779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Fixed bug where the \u003ccode\u003einline_references\u003c/code\u003e parameter of\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e did not include foreign key referential\nactions such as \u003ccode\u003eON DELETE\u003c/code\u003e, \u003ccode\u003eON UPDATE\u003c/code\u003e, \u003ccode\u003eDEFERRABLE\u003c/code\u003e,\n\u003ccode\u003eINITIALLY\u003c/code\u003e, and \u003ccode\u003eMATCH\u003c/code\u003e when rendering the inline \u003ccode\u003eREFERENCES\u003c/code\u003e\nclause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.13.0 to 4.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed teardown of higher-scoped async fixtures failing on asyncio with \u003ccode\u003eRuntimeError: Attempted to exit cancel scope in a different task than it was entered in\u003c/code\u003e when an async test raise an outcome exception (e.g., \u003ccode\u003epytest.skip()\u003c/code\u003e, \u003ccode\u003epytest.xfail()\u003c/code\u003e, or \u003ccode\u003epytest.fail()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1179\"\u003e#1179\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting a value of \u003ccode\u003e0\u003c/code\u003e when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1183\"\u003e#1183\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nyxst4ck\"\u003e\u003ccode\u003e@​nyxst4ck\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.15\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an asynchronous implementation of the \u003ccode\u003eitertools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/998\"\u003e#998\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003elocal_port\u003c/code\u003e parameter to \u003ccode\u003econnect_tcp()\u003c/code\u003e to allow binding to a specific local port before connecting (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1067\"\u003e#1067\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nullwiz\"\u003e\u003ccode\u003e@​nullwiz\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for custom capacity limiters in async path and file I/O functions and classes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003ecreate_task()\u003c/code\u003e task group method for easier asyncio migration (returns a \u003ccode\u003eTaskHandle\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1098\"\u003e#1098\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eTaskGroup.start_soon()\u003c/code\u003e to return a \u003ccode\u003eTaskHandle\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option for \u003ccode\u003eTaskGroup.start()\u003c/code\u003e to return a \u003ccode\u003eTaskHandle\u003c/code\u003e (which then contains the start value in the \u003ccode\u003estart_value\u003c/code\u003e property)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003ecancel()\u003c/code\u003e convenience method to \u003ccode\u003eTaskGroup\u003c/code\u003e as a shortcut for cancelling the task group's cancel scope\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved the error message when a known backend is not installed to suggest the install command (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1115\"\u003e#1115\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved \u003ccode\u003eanyio.Path\u003c/code\u003e to preserve subclass types by returning \u003ccode\u003eSelf\u003c/code\u003e in methods that return path objects (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1130\"\u003e#1130\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the parameter type annotation in \u003ccode\u003eanyio.Path.write_bytes()\u003c/code\u003e to accept any \u003ccode\u003eReadableBuffer\u003c/code\u003e, thus allowing it to accept \u003ccode\u003ebytearray\u003c/code\u003e and \u003ccode\u003ememoryview\u003c/code\u003e to match \u003ccode\u003epathlib.Path.write_bytes()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1135\"\u003e#1135\u003c/a\u003e; PR by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged several type annotations to only accept callables returning coroutine-like objects instead of arbitrary awaitables:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eTaskGroup.start_soon()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTaskGroup.start()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis reverts an earlier change from v3.7.0 which was made in error. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1153\"\u003e#1153\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eanyio.run\u003c/code\u003e to support callables returning arbitrary awaitables at runtime on all backends. Previously, this only worked on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1171\"\u003e#1171\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged several classes (and their subclasses) to have \u003ccode\u003e__slots__\u003c/code\u003e (with \u003ccode\u003e__weakref__\u003c/code\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eanyio.CancelScope\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.CapacityLimiter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.Condition\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.Event\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.Lock\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.ResourceGuard\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanyio.Semaphore\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed cancellation exception escaping a cancel scope when triggered via \u003ccode\u003echeck_cancelled()\u003c/code\u003e in a worker thread (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1113\"\u003e#1113\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eTaskGroup\u003c/code\u003e raising \u003ccode\u003eAttributeError\u003c/code\u003e instead of a clear error when entered more than once (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1109\"\u003e#1109\u003c/a\u003e; PR by \u003ca href=\"https://github.com/bahtya\"\u003e\u003ccode\u003e@​bahtya\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/149b9e907618fadf6840a4d3cebad533b0c7d033\"\u003e\u003ccode\u003e149b9e9\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/377518cd1160314f2fdf74f356ae9e848c94a065\"\u003e\u003ccode\u003e377518c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1186\"\u003e#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b42a2f5e8e9910d0c57b970f9a747427a9da26f0\"\u003e\u003ccode\u003eb42a2f5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3ceb6ffbfa89be715f444550883356fbfbc13154\"\u003e\u003ccode\u003e3ceb6ff\u003c/code\u003e\u003c/a\u003e Allow 0 tokens in a CapacityLimiter instantiated outside an event loop (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1183\"\u003e#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e10d1db74f7a59cb283a1e4b3b22227da11c6f07\"\u003e\u003ccode\u003ee10d1db\u003c/code\u003e\u003c/a\u003e Add missing await to open_file() in file I/O concurrency example (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1dbc3b62256e5877bcf610aca98ba6e450d14c20\"\u003e\u003ccode\u003e1dbc3b6\u003c/code\u003e\u003c/a\u003e OutcomeException should not discard test runner_task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/ffe91331adb912c5d150f5d373f7cd28a0e96a62\"\u003e\u003ccode\u003effe9133\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f8b9f011e548c2c1c3e9abb0287bb1048ab3dca8\"\u003e\u003ccode\u003ef8b9f01\u003c/code\u003e\u003c/a\u003e Fixed asyncio lock waiter deadlocks after cancellation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d517ee1d41080073cc244d8adebf822a08b762de\"\u003e\u003ccode\u003ed517ee1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/550b68e1acaf82b1503b0e99fbc7f964cd07fe49\"\u003e\u003ccode\u003e550b68e\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eanyio.run\u003c/code\u003e support \u003ccode\u003eAwaitable\u003c/code\u003e at runtime on all backends (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.13.0...4.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.2/\"\u003ehttps://pypi.org/project/click/8.4.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/34\"\u003ehttps://github.com/pallets/click/milestone/34\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by \u003ca href=\"https://redirect.github.com/pallets/click/issues/3126\"\u003e#3126\u003c/a\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3502\"\u003e#3502\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3043\"\u003e#3043\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3504\"\u003e#3504\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3508\"\u003e#3508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3509\"\u003e#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3059\"\u003e#3059\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3507\"\u003e#3507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3242\"\u003e#3242\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2542\"\u003e#2542\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3534\"\u003e#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from \u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3533\"\u003e#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2331\"\u003e#2331\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1884\"\u003e#1884\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3125\"\u003e#3125\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/32\"\u003ehttps://github.com/pallets/click/milestone/32\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type conversion again. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e # 3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion result. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our [Version Support Policy][version] on our website.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-06-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by {pr}\u003ccode\u003e3126\u003c/code\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. {issue}\u003ccode\u003e3502\u003c/code\u003e\n{issue}\u003ccode\u003e3043\u003c/code\u003e {pr}\u003ccode\u003e3504\u003c/code\u003e {pr}\u003ccode\u003e3508\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. {pr}\u003ccode\u003e3509\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n{issue}\u003ccode\u003e3059\u003c/code\u003e {pr}\u003ccode\u003e3507\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. {issue}\u003ccode\u003e3242\u003c/code\u003e {issue}\u003ccode\u003e2542\u003c/code\u003e {pr}\u003ccode\u003e3534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from {pr}\u003ccode\u003e3482\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e\n{pr}\u003ccode\u003e3533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. {pr}\u003ccode\u003e3578\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. {issue}\u003ccode\u003e2331\u003c/code\u003e {issue}\u003ccode\u003e1884\u003c/code\u003e {issue}\u003ccode\u003e3125\u003c/code\u003e {pr}\u003ccode\u003e3582\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.4.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type\nconversion again. {issue}\u003ccode\u003e3458\u003c/code\u003e {pr}\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. {issue}\u003ccode\u003e3277\u003c/code\u003e {pr}\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eEnum\u003c/code\u003e values used as \u003ccode\u003eChoice\u003c/code\u003e options produces a\nvalid completion result. {issue}\u003ccode\u003e3015\u003c/code\u003e {pr}\u003ccode\u003e3471\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. {issue}\u003ccode\u003e3487\u003c/code\u003e {pr}\u003ccode\u003e3493\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e {pr}\u003ccode\u003e3482\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eopen_url\u003c/code\u003e on Windows when the file path contains spaces.\n{issue}\u003ccode\u003e2994\u003c/code\u003e {pr}\u003ccode\u003e3478\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.4.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e{class}\u003ccode\u003eParamType\u003c/code\u003e typing improvements. {pr}\u003ccode\u003e3371\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e{class}\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53\"\u003e\u003ccode\u003eb2e30a1\u003c/code\u003e\u003c/a\u003e Release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49\"\u003e\u003ccode\u003e7a16b20\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when module differs from distribution name (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc\"\u003e\u003ccode\u003ebec5928\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when top-level module differs from distribution...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd\"\u003e\u003ccode\u003e916883a\u003c/code\u003e\u003c/a\u003e Fix tests to not rely on \u003ccode\u003e-Wdefault\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3591\"\u003e#3591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520\"\u003e\u003ccode\u003e09195f6\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02\"\u003e\u003ccode\u003e1557e26\u003c/code\u003e\u003c/a\u003e Check for warning exception with idiomatic context manager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3\"\u003e\u003ccode\u003ed9ff133\u003c/code\u003e\u003c/a\u003e Static typing improvements in \u003ccode\u003eclick.shell_completion\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3460\"\u003e#3460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793\"\u003e\u003ccode\u003e762c97e\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581\"\u003e\u003ccode\u003e8929d39\u003c/code\u003e\u003c/a\u003e Convert changes to markdown. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd\"\u003e\u003ccode\u003e237be50\u003c/code\u003e\u003c/a\u003e Move changes headings down a level.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `croniter` from 6.2.2 to 6.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/croniter/blob/main/CHANGELOG.rst\"\u003ecroniter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.3 (2026-07-02)\u003c/h2\u003e\n\u003cp\u003eFeatures and Improvements\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix quadratic expansion of comma-separated range lists for a large speed-up on expressions with many ranges. [1d79fc6, [#231](https://github.com/pallets-eco/croniter/issues/231), @alhudz]\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Reject a zero step (e.g. ``5-5/0``) in equal and reversed cron ranges instead of silently accepting it. [ab27767, [#232](https://github.com/pallets-eco/croniter/issues/232), @alhudz]\n- Fix ``expand_from_start_time`` month low-bound off-by-one so stepped month ranges start on the correct month. [f329964, [#235](https://github.com/pallets-eco/croniter/issues/235), @alhudz]\n\nPackaging\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eFix zizmor-reported security findings in GitHub Actions workflows. [ed19f94, \u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/230\"\u003e#230\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eBump pinned build and CI dependencies via dependabot.\u003c/li\u003e\n\u003cli\u003eUpgrade locked development and build dependencies (\u003ccode\u003euv lock --upgrade\u003c/code\u003e).\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/22b59e05f5ca485c45596b2a9b580fddffbf753f\"\u003e\u003ccode\u003e22b59e0\u003c/code\u003e\u003c/a\u003e Prepare for release 6.2.3 (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/236\"\u003e#236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/ab277671adc8e446e8dc7f1e939eabf024b6199e\"\u003e\u003ccode\u003eab27767\u003c/code\u003e\u003c/a\u003e reject zero step in equal and reversed cron ranges (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/232\"\u003e#232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/f329964223eeb29e7788b1a9d615b525148fec96\"\u003e\u003ccode\u003ef329964\u003c/code\u003e\u003c/a\u003e fix expand_from_start_time month low bound off-by-one (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/235\"\u003e#235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/9810279c20030954e2f1ed2cf5f1d34b98c6b07f\"\u003e\u003ccode\u003e9810279\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/233\"\u003e#233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/d051aaf6342fbe9c559b9fcd99e6fb6f3bb63cb7\"\u003e\u003ccode\u003ed051aaf\u003c/code\u003e\u003c/a\u003e Bump hatchling from 1.29.0 to 1.30.1 in the pip-dependencies group (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/234\"\u003e#234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/1d79fc6555fb9208e290e0af10194eec638ae01c\"\u003e\u003ccode\u003e1d79fc6\u003c/code\u003e\u003c/a\u003e fix quadratic expansion of comma-separated range lists (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/231\"\u003e#231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/ed19f94c472ef665598693a554e6a5555be41f7b\"\u003e\u003ccode\u003eed19f94\u003c/code\u003e\u003c/a\u003e Fix zizmor-reported security findings in GitHub Actions workflows (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/82657c37b873319570fee74c1864cb4d6153f543\"\u003e\u003ccode\u003e82657c3\u003c/code\u003e\u003c/a\u003e Bump trove-classifiers in the pip-dependencies group (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/8e13827f77358beabf75245ad37d31a581cb6d1e\"\u003e\u003ccode\u003e8e13827\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/228\"\u003e#228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/croniter/commit/e55d70bf2288e25c1ddf850fde703d56888772f2\"\u003e\u003ccode\u003ee55d70b\u003c/code\u003e\u003c/a\u003e Bump trove-classifiers in the pip-dependencies group across 1 directory (\u003ca href=\"https://redirect.github.com/pallets-eco/croniter/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/croniter/compare/6.2.2...6.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.135.3 to 0.139.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.139.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Support dependencies in \u003ccode\u003eapp.frontend()\u003c/code\u003e, e.g. for automatic cookie authentication for the frontend. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15908\"\u003e#15908\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15897\"\u003e#15897\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15895\"\u003e#15895\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15896\"\u003e#15896\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15899\"\u003e#15899\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15892\"\u003e#15892\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15891\"\u003e#15891\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15893\"\u003e#15893\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15898\"\u003e#15898\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15900\"\u003e#15900\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15890\"\u003e#15890\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15894\"\u003e#15894\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15888\"\u003e#15888\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15880\"\u003e#15880\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15889\"\u003e#15889\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15883\"\u003e#15883\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15885\"\u003e#15885\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15882\"\u003e#15882\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15887\"\u003e#15887\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15886\"\u003e#15886\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15881\"\u003e#15881\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15884\"\u003e#15884\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15879\"\u003e#15879\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15909\"\u003e#15909\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15906\"\u003e#15906\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15878\"\u003e#15878\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove not needed \u003ccode\u003eallow-unsafe-pr-checkout: true\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15876\"\u003e#15876\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15872\"\u003e#15872\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 10 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15870\"\u003e#15870\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump CodSpeedHQ/action from 4.17.0 to 4.17.5 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15826\"\u003e#15826\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.138.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor Library Skills, make info easier to find for agents. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15841\"\u003e#15841\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15836\"\u003e#15836\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update issue-manager to 0.7.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15833\"\u003e#15833\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update issue-manager to 0.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15831\"\u003e#15831\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cecd96d9c6c318e0df1c40cedbc2e953381ddfd3\"\u003e\u003ccode\u003ececd96d\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.139.0 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15910\"\u003e#15910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/aea660936b55fdbd84270d24f892839388922dd6\"\u003e\u003ccode\u003eaea6609\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/319be508ce7db9ee5f52c3b9baa68c6cc1037c10\"\u003e\u003ccode\u003e319be50\u003c/code\u003e\u003c/a\u003e ✨ Support dependencies in \u003ccode\u003eapp.frontend()\u003c/code\u003e, e.g. for automatic cookie authent...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/66a90f6ee9c0cf58ec61b14f8925344d6f16eae5\"\u003e\u003ccode\u003e66a90f6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d30a3ebfc7d7fd7851ba4243677266c53cb9f154\"\u003e\u003ccode\u003ed30a3eb\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15909\"\u003e#15909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/122f1b58f4e0fabfefef3710a8c8247bb2bd820b\"\u003e\u003ccode\u003e122f1b5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/fd6ece32eeb27c9ce164bd9170f9d8e1db1dacff\"\u003e\u003ccode\u003efd6ece3\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI GitHub topic repositories (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15906\"\u003e#15906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ec2a6adaf14c440bdcd0fd3f4ca203daa8c3ba6a\"\u003e\u003ccode\u003eec2a6ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9d7d7febd3a66844f948254c1ba4745b6cc16f40\"\u003e\u003ccode\u003e9d7d7fe\u003c/code\u003e\u003c/a\u003e 🌐 Update translations for fr (update-outdated) (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15897\"\u003e#15897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8dc852df4713efa998d126c5194302e9f06e7675\"\u003e\u003ccode\u003e8dc852d\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.3...0.139.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi-cli` from 0.0.24 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi-cli/releases\"\u003efastapi-cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eFASTAPI_PUBLIC_URL\u003c/code\u003e env var to configure app's public URL that is shown on startup. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/381\"\u003e#381\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Show tip on how to configure \u003ccode\u003eentrypoint\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/389\"\u003e#389\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Show import string source. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/388\"\u003e#388\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Include the version of \u003ccode\u003efastapi-cloud-cli\u003c/code\u003e to the output of \u003ccode\u003e--version\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/341\"\u003e#341\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update docs about contributing. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/410\"\u003e#410\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/408\"\u003e#408\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add pre-commit hook to catch typos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/418\"\u003e#418\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.26.2 to 0.26.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/427\"\u003e#427\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi-cloud-cli from 0.17.1 to 0.19.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/429\"\u003e#429\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump rich-toolkit from 0.19.9 to 0.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/428\"\u003e#428\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/430\"\u003e#430\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 6 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/426\"\u003e#426\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump eps1lon/actions-label-merge-conflict from 3.0.3 to 3.1.0 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/425\"\u003e#425\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.25.1 to 0.26.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/424\"\u003e#424\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Automate release preparation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/420\"\u003e#420\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove old package stub slim, not user nor needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/419\"\u003e#419\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmorcore/zizmor-action from 0.5.3 to 0.5.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/414\"\u003e#414\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure Dependabot to group updates and update weekly. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/407\"\u003e#407\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/413\"\u003e#413\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix branch name in \u003ccode\u003eguard-dependencies.yml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/404\"\u003e#404\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/403\"\u003e#403\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump uvicorn from 0.44.0 to 0.46.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/400\"\u003e#400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump rich-toolkit from 0.19.7 to 0.19.9. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/399\"\u003e#399\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 2.0.0 to 2.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/397\"\u003e#397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/373\"\u003e#373\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.34 to 0.0.35. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/396\"\u003e#396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/392\"\u003e#392\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/393\"\u003e#393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.11 to 0.3.13. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/394\"\u003e#394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/395\"\u003e#395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.33 to 0.0.34. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/391\"\u003e#391\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.25.0 to 0.25.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/390\"\u003e#390\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.32 to 0.0.33. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/387\"\u003e#387\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi-cli/blob/main/release-notes.md\"\u003efastapi-cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-06-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add \u003ccode\u003eFASTAPI_PUBLIC_URL\u003c/code\u003e env var to configure app's public URL that is shown on startup. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/381\"\u003e#381\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-06-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Show tip on how to configure \u003ccode\u003eentrypoint\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/389\"\u003e#389\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-06-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Show import string source. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/388\"\u003e#388\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Include the version of \u003ccode\u003efastapi-cloud-cli\u003c/code\u003e to the output of \u003ccode\u003e--version\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/341\"\u003e#341\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update docs about contributing. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/410\"\u003e#410\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/408\"\u003e#408\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add pre-commit hook to catch typos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/418\"\u003e#418\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.26.2 to 0.26.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/427\"\u003e#427\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastapi-cloud-cli from 0.17.1 to 0.19.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/429\"\u003e#429\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump rich-toolkit from 0.19.9 to 0.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/428\"\u003e#428\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the github-actions group with 3 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/430\"\u003e#430\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 6 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/426\"\u003e#426\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump eps1lon/actions-label-merge-conflict from 3.0.3 to 3.1.0 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/425\"\u003e#425\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump typer from 0.25.1 to 0.26.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/424\"\u003e#424\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Automate release preparation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/420\"\u003e#420\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove old package stub slim, not user nor needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/419\"\u003e#419\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmorcore/zizmor-action from 0.5.3 to 0.5.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/414\"\u003e#414\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Configure Dependabot to group updates and update weekly. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/407\"\u003e#407\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/413\"\u003e#413\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix branch name in \u003ccode\u003eguard-dependencies.yml\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/404\"\u003e#404\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/403\"\u003e#403\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump uvicorn from 0.44.0 to 0.46.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/400\"\u003e#400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump rich-toolkit from 0.19.7 to 0.19.9. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/399\"\u003e#399\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 2.0.0 to 2.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/397\"\u003e#397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/373\"\u003e#373\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.34 to 0.0.35. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/396\"\u003e#396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/392\"\u003e#392\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/393\"\u003e#393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.11 to 0.3.13. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/394\"\u003e#394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.2 to 2.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/pull/395\"\u003e#395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/760451b3fbd3814902a36696959b5e49f6c80dad\"\u003e\u003ccode\u003e760451b\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.27 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/e3893efbeb9d50a000ef997b7f54bc08a0f27fa2\"\u003e\u003ccode\u003ee3893ef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/46aca093b0835b00476c7b45d408e7cbaf960980\"\u003e\u003ccode\u003e46aca09\u003c/code\u003e\u003c/a\u003e ✨ Add \u003ccode\u003eFASTAPI_PUBLIC_URL\u003c/code\u003e env var to configure app's public URL that is show...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/04c12c244febb6b3939df6011b5a4bd5a7bca89c\"\u003e\u003ccode\u003e04c12c2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.26 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/96bd5ab16b7ae16bb3746c2eff2fed31e3a7bd5d\"\u003e\u003ccode\u003e96bd5ab\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/cd37a8e50f9b37a9f4571a8e6938f274a56297c9\"\u003e\u003ccode\u003ecd37a8e\u003c/code\u003e\u003c/a\u003e 🚸 Show tip on how to configure \u003ccode\u003eentrypoint\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/8c4ab6663187c5fcdb68fe523c70ff265a9c50da\"\u003e\u003ccode\u003e8c4ab66\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.0.25 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/b6bf5b53d87f64cad2e56541008b6f3a62305b1c\"\u003e\u003ccode\u003eb6bf5b5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/572ea4c0f286c5f70d407b30d2f444e69e4c1f65\"\u003e\u003ccode\u003e572ea4c\u003c/code\u003e\u003c/a\u003e 👷 Add pre-commit hook to catch typos (\u003ca href=\"https://redirect.github.com/fastapi/fastapi-cli/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi-cli/commit/1428d40976c1bb2585941d9961898ce6b9d0f448\"\u003e\u003ccode\u003e1428d40\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi-cli/compare/0.0.24...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi-cloud-cli` from 0.15.1 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/releases\"\u003efastapi-cloud-cli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.22.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Validate app logs tail limit before request. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/287\"\u003e#287\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.22.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add cloud apps update command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/280\"\u003e#280\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Remove \u003ccode\u003esrc\u003c/code\u003e from \u003ccode\u003edirectory\u003c/code\u003e option description and error message. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/279\"\u003e#279\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 4 updates. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/276\"\u003e#276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sentry-sdk from 2.62.0 to 2.63.0. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/277\"\u003e#277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/275\"\u003e#275\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/278\"\u003e#278\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.21.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add --json support for logout command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/269\"\u003e#269\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add cloud ci setup command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/268\"\u003e#268\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add cloud ci print-workflow command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/267\"\u003e#267\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens delete command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/264\"\u003e#264\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens create command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/263\"\u003e#263\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens list command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/262\"\u003e#262\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Handle invalid apps create --directory input. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/265\"\u003e#265\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Use new deployment route to fetch deployment. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/266\"\u003e#266\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Update deployment data when triggering upload complete. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/250\"\u003e#250\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Improve error messages for logs. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/249\"\u003e#249\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update docs badges: remove Publish badge, it doesn't give extra information. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/260\"\u003e#260\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/blob/main/release-notes.md\"\u003efastapi-cloud-cli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.22.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Validate app logs tail limit before request. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/287\"\u003e#287\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.22.0 (2026-06-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add cloud apps update command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/280\"\u003e#280\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Remove \u003ccode\u003esrc\u003c/code\u003e from \u003ccode\u003edirectory\u003c/code\u003e option description and error message. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/279\"\u003e#279\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump the python-packages group with 4 updates. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/276\"\u003e#276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump sentry-sdk from 2.62.0 to 2.63.0. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/277\"\u003e#277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/275\"\u003e#275\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Simplify pull request workflow triggers. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/278\"\u003e#278\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.21.0 (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add --json support for logout command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/269\"\u003e#269\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add cloud ci setup command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/268\"\u003e#268\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add cloud ci print-workflow command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/267\"\u003e#267\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens delete command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/264\"\u003e#264\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens create command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/263\"\u003e#263\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add tokens list command. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/262\"\u003e#262\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Handle invalid apps create --directory input. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/265\"\u003e#265\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Use new deployment route to fetch deployment. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/266\"\u003e#266\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Update deployment data when triggering upload complete. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/250\"\u003e#250\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Improve error messages for logs. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/249\"\u003e#249\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update docs badges: remove Publish badge, it doesn't give extra information. PR \u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/pull/260\"\u003e#260\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/commit/20f9fe34e1b95fb925e168f9d030b9d52cee5f8a\"\u003e\u003ccode\u003e20f9fe3\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.22.1 (\u003ca href=\"https://redirect.github.com/fastapilabs/fastapi-cloud-cli/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/commit/e2b4722fc22b3c3e6c0babafa5ad21862372ff52\"\u003e\u003ccode\u003ee2b4722\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapilabs/fastapi-cloud-cli/commit/5...\n\n_Description has been truncated_","html_url":"https://github.com/manasijatech/ananta-market-stack/pull/59","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/manasijatech%2Fananta-market-stack/issues/59","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/59/packages"}},{"old_version":"0.14.6","new_version":"0.17.7","update_type":"minor","path":null,"pr_created_at":"2026-06-29T21:18:05.000Z","version_change":"0.14.6 → 0.17.7","issue":{"uuid":"4771658777","node_id":"PR_kwDOSNjZ2s7r9fdZ","number":856,"state":"closed","title":"chore(deps): bump the ci-python group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-07-01T01:25:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-29T21:18:05.000Z","updated_at":"2026-07-01T01:25:02.000Z","time_to_close":101215,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"ci-python","update_count":40,"packages":[{"name":"anyio","old_version":"4.14.0","new_version":"4.14.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pallets/click"},{"name":"google-auth","old_version":"2.55.0","new_version":"2.55.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-bigquery","old_version":"3.42.0","new_version":"3.42.1","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"google-cloud-resource-manager","old_version":"1.17.0","new_version":"1.18.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-genai","old_version":"2.9.0","new_version":"2.10.0","repository_url":"https://github.com/googleapis/python-genai"},{"name":"huggingface-hub","old_version":"1.20.1","new_version":"1.21.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"importlib-metadata","old_version":"8.9.0","new_version":"9.0.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"jiter","old_version":"0.15.0","new_version":"0.16.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mcp","old_version":"1.28.0","new_version":"1.28.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"openai","old_version":"2.43.0","new_version":"2.44.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openai-agents","old_version":"0.14.6","new_version":"0.17.7","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.35.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"regex","old_version":"2026.5.9","new_version":"2026.6.28","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"typer","old_version":"0.25.1","new_version":"0.26.8","repository_url":"https://github.com/fastapi/typer"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.138.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"aiosmtplib","old_version":"3.0.1","new_version":"5.1.2","repository_url":"https://github.com/cole/aiosmtplib"},{"name":"alembic","old_version":"1.18.4","new_version":"1.18.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"greenlet","old_version":"3.5.2","new_version":"3.5.3","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"google-api-python-client","old_version":"2.197.0","new_version":"2.198.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"prometheus-fastapi-instrumentator","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"opentelemetry-api","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-sdk","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-exporter-otlp","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"icalendar","old_version":"7.1.3","new_version":"7.2.0","repository_url":"https://github.com/collective/icalendar"},{"name":"ruff","old_version":"0.15.18","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"httplib2","old_version":"0.31.2","new_version":"0.32.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"langsmith","old_version":"0.8.18","new_version":"0.9.3","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.42.1","new_version":"1.43.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.63b1","new_version":"0.64b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"xxhash","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/ifduyue/python-xxhash"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ci-python group with 40 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.14.0` | `4.14.1` |\n| [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` |\n| [google-auth](https://github.com/googleapis/google-cloud-python) | `2.55.0` | `2.55.1` |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.42.0` | `3.42.1` |\n| [google-cloud-resource-manager](https://github.com/googleapis/google-cloud-python) | `1.17.0` | `1.18.0` |\n| [google-genai](https://github.com/googleapis/python-genai) | `2.9.0` | `2.10.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.20.1` | `1.21.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.9.0` | `9.0.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.15.0` | `0.16.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.28.0` | `1.28.1` |\n| [openai](https://github.com/openai/openai-python) | `2.43.0` | `2.44.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.14.6` | `0.17.7` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.47.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.5.9` | `2026.6.28` |\n| [typer](https://github.com/fastapi/typer) | `0.25.1` | `0.26.8` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.138.2` |\n| [aiosmtplib](https://github.com/cole/aiosmtplib) | `3.0.1` | `5.1.2` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.4` | `1.18.5` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.5.2` | `3.5.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.197.0` | `2.198.0` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `8.0.0` | `8.0.2` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [icalendar](https://github.com/collective/icalendar) | `7.1.3` | `7.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.18` | `0.15.20` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.31.2` | `0.32.0` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.8.18` | `0.9.3` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.42.1` | `1.43.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.63b1` | `0.64b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.63b1` | `0.64b0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.7.0` | `3.8.0` |\n\n\nUpdates `anyio` from 4.14.0 to 4.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed teardown of higher-scoped async fixtures failing on asyncio with \u003ccode\u003eRuntimeError: Attempted to exit cancel scope in a different task than it was entered in\u003c/code\u003e when an async test raise an outcome exception (e.g., \u003ccode\u003epytest.skip()\u003c/code\u003e, \u003ccode\u003epytest.xfail()\u003c/code\u003e, or \u003ccode\u003epytest.fail()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1179\"\u003e#1179\u003c/a\u003e; PR by \u003ca href=\"https://github.com/EmmanuelNiyonshuti\"\u003e\u003ccode\u003e@​EmmanuelNiyonshuti\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCapacityLimiter.total_tokens\u003c/code\u003e rejecting a value of \u003ccode\u003e0\u003c/code\u003e when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1183\"\u003e#1183\u003c/a\u003e; PR by \u003ca href=\"https://github.com/nyxst4ck\"\u003e\u003ccode\u003e@​nyxst4ck\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/149b9e907618fadf6840a4d3cebad533b0c7d033\"\u003e\u003ccode\u003e149b9e9\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/377518cd1160314f2fdf74f356ae9e848c94a065\"\u003e\u003ccode\u003e377518c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1186\"\u003e#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b42a2f5e8e9910d0c57b970f9a747427a9da26f0\"\u003e\u003ccode\u003eb42a2f5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3ceb6ffbfa89be715f444550883356fbfbc13154\"\u003e\u003ccode\u003e3ceb6ff\u003c/code\u003e\u003c/a\u003e Allow 0 tokens in a CapacityLimiter instantiated outside an event loop (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1183\"\u003e#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e10d1db74f7a59cb283a1e4b3b22227da11c6f07\"\u003e\u003ccode\u003ee10d1db\u003c/code\u003e\u003c/a\u003e Add missing await to open_file() in file I/O concurrency example (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1dbc3b62256e5877bcf610aca98ba6e450d14c20\"\u003e\u003ccode\u003e1dbc3b6\u003c/code\u003e\u003c/a\u003e OutcomeException should not discard test runner_task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.14.0...4.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.2/\"\u003ehttps://pypi.org/project/click/8.4.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/34\"\u003ehttps://github.com/pallets/click/milestone/34\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by \u003ca href=\"https://redirect.github.com/pallets/click/issues/3126\"\u003e#3126\u003c/a\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3502\"\u003e#3502\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3043\"\u003e#3043\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3504\"\u003e#3504\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3508\"\u003e#3508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3509\"\u003e#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3059\"\u003e#3059\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3507\"\u003e#3507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3242\"\u003e#3242\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2542\"\u003e#2542\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3534\"\u003e#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from \u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3533\"\u003e#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI usage symopsis for optional arguments producing double square brackets\n\u003ccode\u003e[[a|b|c]]...\u003c/code\u003e whose type already brackets their metavar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e{func}\u003ccode\u003eversion_option\u003c/code\u003e resolves a \u003ccode\u003epackage_name\u003c/code\u003e that does not match an\ninstalled distribution as an import (top-level module) name via\n{func}\u003ccode\u003eimportlib.metadata.packages_distributions\u003c/code\u003e. Packages whose\ntop-level module name differs from their distribution name (\u003ccode\u003ePIL\u003c/code\u003e vs\n\u003ccode\u003ePillow\u003c/code\u003e, \u003ccode\u003ejwt\u003c/code\u003e vs \u003ccode\u003ePyJWT\u003c/code\u003e) no longer raise \u003ccode\u003eRuntimeError\u003c/code\u003e out of the\nbox. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2331\"\u003e#2331\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1884\"\u003e#1884\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3125\"\u003e#3125\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.md\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.4.2\u003c/h2\u003e\n\u003cp\u003eUnreleased\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Fish shell completion broken in \u003ccode\u003e8.4.0\u003c/code\u003e by {pr}\u003ccode\u003e3126\u003c/code\u003e. Newlines and\ntabs in option help text are now escaped, keeping the original completion\nformat while still supporting multi-line help. {issue}\u003ccode\u003e3502\u003c/code\u003e\n{issue}\u003ccode\u003e3043\u003c/code\u003e {pr}\u003ccode\u003e3504\u003c/code\u003e {pr}\u003ccode\u003e3508\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated commands and options with empty or missing help text no longer\nrender a stray leading space before the \u003ccode\u003e(DEPRECATED)\u003c/code\u003e label. {pr}\u003ccode\u003e3509\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eA {class}\u003ccode\u003eGroup\u003c/code\u003e with \u003ccode\u003einvoke_without_command=True\u003c/code\u003e marks its subcommand as\noptional in the usage help, showing \u003ccode\u003e[COMMAND]\u003c/code\u003e instead of \u003ccode\u003eCOMMAND\u003c/code\u003e.\n{issue}\u003ccode\u003e3059\u003c/code\u003e {pr}\u003ccode\u003e3507\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e flushes after each write, so passing a generator streams\noutput to the pager incrementally instead of staying hidden until the pipe\nbuffer fills. {issue}\u003ccode\u003e3242\u003c/code\u003e {issue}\u003ccode\u003e2542\u003c/code\u003e {pr}\u003ccode\u003e3534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho_via_pager\u003c/code\u003e and \u003ccode\u003eget_pager_file\u003c/code\u003e no longer close a borrowed stdout\nstream when no external pager runs, completing the partial\n\u003ccode\u003eI/O operation on closed file\u003c/code\u003e fix from {pr}\u003ccode\u003e3482\u003c/code\u003e. {issue}\u003ccode\u003e3449\u003c/code\u003e\n{pr}\u003ccode\u003e3533\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53\"\u003e\u003ccode\u003eb2e30a1\u003c/code\u003e\u003c/a\u003e Release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49\"\u003e\u003ccode\u003e7a16b20\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when module differs from distribution name (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc\"\u003e\u003ccode\u003ebec5928\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003epackage_name\u003c/code\u003e resolution when top-level module differs from distribution...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd\"\u003e\u003ccode\u003e916883a\u003c/code\u003e\u003c/a\u003e Fix tests to not rely on \u003ccode\u003e-Wdefault\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3591\"\u003e#3591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520\"\u003e\u003ccode\u003e09195f6\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02\"\u003e\u003ccode\u003e1557e26\u003c/code\u003e\u003c/a\u003e Check for warning exception with idiomatic context manager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3\"\u003e\u003ccode\u003ed9ff133\u003c/code\u003e\u003c/a\u003e Static typing improvements in \u003ccode\u003eclick.shell_completion\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3460\"\u003e#3460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793\"\u003e\u003ccode\u003e762c97e\u003c/code\u003e\u003c/a\u003e Fix double-bracketing of choices in synopsis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581\"\u003e\u003ccode\u003e8929d39\u003c/code\u003e\u003c/a\u003e Convert changes to markdown. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3559\"\u003e#3559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd\"\u003e\u003ccode\u003e237be50\u003c/code\u003e\u003c/a\u003e Move changes headings down a level.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.55.0 to 2.55.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth: v2.55.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003e2.55.1\u003c/a\u003e (2026-06-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e1ef4183\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17515\"\u003e#17515\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/900d51fcc122464eb3611589f6f9a9c55a85598f\"\u003e\u003ccode\u003e900d51f\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17543\"\u003e#17543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1ef418362c1a69e6bbe6f78741b53dc1f3e7b301\"\u003e\u003ccode\u003e1ef4183\u003c/code\u003e\u003c/a\u003e fix(auth): lower regional access boundary logs from warning to debug. (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17571\"\u003e#17571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/bd782cf279ae700f56d40702d4ef25ef89e2ff9b\"\u003e\u003ccode\u003ebd782cf\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-bigtable (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17575\"\u003e#17575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/57ebaa3c244a9fa97d3e6db206126c504f4b954f\"\u003e\u003ccode\u003e57ebaa3\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-firestore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17577\"\u003e#17577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/140d86fe6181a4d6f831df8cdc7d86facf8ebe00\"\u003e\u003ccode\u003e140d86f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-compute (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17576\"\u003e#17576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/39b252f4effe7e8915efa8796d90fd29f356bf96\"\u003e\u003ccode\u003e39b252f\u003c/code\u003e\u003c/a\u003e feat: regenerate google-cloud-spanner (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17578\"\u003e#17578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/421eebdb31d526a6d5ba27c433cf2803d7619be3\"\u003e\u003ccode\u003e421eebd\u003c/code\u003e\u003c/a\u003e feat: support interactive execution of deferred DataFrames in TableWidget (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3619b29e10ae04623d101808cb98be5edbb483b4\"\u003e\u003ccode\u003e3619b29\u003c/code\u003e\u003c/a\u003e feat: support gemini-3.x models in loader and update default model to gemini-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/17bef417db646c0f9fcd91529cd06b2527ec5e3f\"\u003e\u003ccode\u003e17bef41\u003c/code\u003e\u003c/a\u003e test(bigquery-magics): make table_id parsing check version-agnostic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17562\"\u003e#17562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e68853162249b7a55f560f9a203d49984665c854\"\u003e\u003ccode\u003ee688531\u003c/code\u003e\u003c/a\u003e bigtable: add ValueBitmaskFilter for data client (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17567\"\u003e#17567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.55.0...google-auth-v2.55.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery` from 3.42.0 to 3.42.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-resource-manager` from 1.17.0 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-resource-manager's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-resource-manager: v1.18.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-resource-manager-v1.17.0...google-cloud-resource-manager-v1.18.0\"\u003e1.18.0\u003c/a\u003e (2026-06-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eregenerate google-cloud-[o-r] packages (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17075\"\u003e#17075\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f4bd0182d808ae73c3c6981e6ce3d565f78a6051\"\u003ef4bd018\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a5ad18cbad0577b79917dfad2242a57dc21432e1\"\u003e\u003ccode\u003ea5ad18c\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17482\"\u003e#17482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f6937b33e31a4c3e884165b582442274a366a995\"\u003e\u003ccode\u003ef6937b3\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-bigtable 2.39.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17497\"\u003e#17497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/172302b809b0ff13267f18b5e7dd24be0dce2f70\"\u003e\u003ccode\u003e172302b\u003c/code\u003e\u003c/a\u003e ci(bigquery-storage): fix \u003ccode\u003ecore_deps_from_source\u003c/code\u003e and \u003ccode\u003eprerelease_deps\u003c/code\u003e by in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e7268785c6736c10c1337160b4d8606975062637\"\u003e\u003ccode\u003ee726878\u003c/code\u003e\u003c/a\u003e fix(bigframes): world-readable temp zip in create_cloud_function (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17522\"\u003e#17522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/2f893b1b53e7394655fd204d1f8a138212ad8227\"\u003e\u003ccode\u003e2f893b1\u003c/code\u003e\u003c/a\u003e fix: bump \u003ccode\u003e@​angular/common\u003c/code\u003e, \u003ccode\u003e@​angular/forms\u003c/code\u003e, \u003ccode\u003e@​angular/platform-browser\u003c/code\u003e and \u003ca href=\"https://github.com/ang\"\u003e\u003ccode\u003e@​ang\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f23063f9182cdec868c16afb80304892850fbe88\"\u003e\u003ccode\u003ef23063f\u003c/code\u003e\u003c/a\u003e fix: bump langsmith from 0.8.0 to 0.8.18 in /packages/bigframes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17518\"\u003e#17518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6fc45e3790c5a248dcec4b74799834c7b9219ef0\"\u003e\u003ccode\u003e6fc45e3\u003c/code\u003e\u003c/a\u003e fix: bump undici and \u003ccode\u003e@​angular/build\u003c/code\u003e in /packages/bigframes/bigframes/display/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/36b5b7ebb01030a2d0f10d49fe4827ddc79dde9a\"\u003e\u003ccode\u003e36b5b7e\u003c/code\u003e\u003c/a\u003e fix: bump msgpack from 1.1.1 to 1.2.1 in /packages/bigframes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17520\"\u003e#17520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/11de93965831311445abacaec2d7baeef21f837d\"\u003e\u003ccode\u003e11de939\u003c/code\u003e\u003c/a\u003e tests: add Python 3.15 pre-release testing (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17517\"\u003e#17517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/025840544f5d4ab6a429d1cd9bdbb256c981aa0d\"\u003e\u003ccode\u003e0258405\u003c/code\u003e\u003c/a\u003e fix(bigquery): close GAPIC storage transport and auth sessions to prevent soc...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-resource-manager-v1.17.0...google-cloud-resource-manager-v1.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-genai` from 2.9.0 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-genai/releases\"\u003egoogle-genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003e2.10.0\u003c/a\u003e (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Agent Platform MCP support to async generate_content_stream (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003ea4772cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Interactions] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e732368f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Models] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003ea359406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage fields for steps (\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e7bb6c72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd video generation and response format parameters. (\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003eec8f22b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix typos across docstrings (\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e63ec5bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-genai/blob/main/CHANGELOG.md\"\u003egoogle-genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003e2.10.0\u003c/a\u003e (2026-06-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Agent Platform MCP support to async generate_content_stream (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003ea4772cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Interactions] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e732368f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Models] Add ComputerUse.disabled_safety_policies (\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003ea359406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd usage fields for steps (\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e7bb6c72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd video generation and response format parameters. (\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003eec8f22b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix typos across docstrings (\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e63ec5bb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/e41801cd1ad7406b9f63b4a5a0924096765cf772\"\u003e\u003ccode\u003ee41801c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.10.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-genai/issues/2636\"\u003e#2636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/ab37930697772e9d11546b5c48b76f1401ee8d1e\"\u003e\u003ccode\u003eab37930\u003c/code\u003e\u003c/a\u003e chore: Disable ComputerUse.disabled_safety_policies in Gemini Enterprise API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/ec8f22ba9b903719b49b3c1f56e61a8ff60bc397\"\u003e\u003ccode\u003eec8f22b\u003c/code\u003e\u003c/a\u003e feat: add video generation and response format parameters.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/7bb6c72020d99c24dede6400acd66864d2c8f056\"\u003e\u003ccode\u003e7bb6c72\u003c/code\u003e\u003c/a\u003e feat: add usage fields for steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/732368f7fd8a67c748c3cdc2b418144e1e94b4e5\"\u003e\u003ccode\u003e732368f\u003c/code\u003e\u003c/a\u003e feat: Add ComputerUse.disabled_safety_policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/a3594063430c33b9e8984fcf54ef3711125f5c37\"\u003e\u003ccode\u003ea359406\u003c/code\u003e\u003c/a\u003e feat: Add ComputerUse.disabled_safety_policies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/a4772cce433632fbf49eb029bf601480ef58a2ab\"\u003e\u003ccode\u003ea4772cc\u003c/code\u003e\u003c/a\u003e feat: Add Agent Platform MCP support to async generate_content_stream\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/67703bf194d1ab3784d6f2b6814c38d2e7c7554b\"\u003e\u003ccode\u003e67703bf\u003c/code\u003e\u003c/a\u003e chore: Fix comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/63ec5bb175869624801aef587415fe246f6618af\"\u003e\u003ccode\u003e63ec5bb\u003c/code\u003e\u003c/a\u003e docs: fix typos across docstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-genai/commit/3260c6f6f6971a1f5fd21a16416204f808df9b22\"\u003e\u003ccode\u003e3260c6f\u003c/code\u003e\u003c/a\u003e chore: Upgrade stalebot action to use v10 (due to Node20 deprecation)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-genai/compare/v2.9.0...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.20.1 to 1.21.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.21.0] Jobs filtering \u0026amp; pagination\u003c/h2\u003e\n\u003ch2\u003e📊 Jobs listing revamped: filter, paginate, and \u003ccode\u003els\u003c/code\u003e instead of \u003ccode\u003eps\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe Jobs listing API and CLI have been overhauled with server-side filtering, proper pagination, and a CLI rename that aligns with the rest of \u003ccode\u003ehf\u003c/code\u003e. \u003ccode\u003elist_jobs()\u003c/code\u003e now accepts \u003ccode\u003estatus\u003c/code\u003e and \u003ccode\u003elabels\u003c/code\u003e parameters that push filtering to the server, and returns a lazy iterator (matching \u003ccode\u003elist_models\u003c/code\u003e, \u003ccode\u003elist_datasets\u003c/code\u003e, etc.) so large result sets are fetched page by page. On the CLI side, \u003ccode\u003ehf jobs ps\u003c/code\u003e has been renamed to \u003ccode\u003ehf jobs ls\u003c/code\u003e for consistency with \u003ccode\u003ehf repos ls\u003c/code\u003e, \u003ccode\u003ehf models ls\u003c/code\u003e, and friends — \u003ccode\u003eps\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e still work as aliases.\u003c/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eBreaking changes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elist_jobs()\u003c/code\u003e now returns an \u003ccode\u003eIterable[JobInfo]\u003c/code\u003e instead of \u003ccode\u003elist[JobInfo]\u003c/code\u003e. If you indexed the result (\u003ccode\u003ejobs[0]\u003c/code\u003e), wrap it with \u003ccode\u003elist(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-f\u003c/code\u003e/\u003ccode\u003e--filter\u003c/code\u003e in \u003ccode\u003ehf jobs ls\u003c/code\u003e is deprecated. Use \u003ccode\u003e--status\u003c/code\u003e and \u003ccode\u003e--label\u003c/code\u003e instead. Glob patterns (\u003ccode\u003edata-*\u003c/code\u003e), negation (\u003ccode\u003ekey!=value\u003c/code\u003e), and filtering by \u003ccode\u003eid\u003c/code\u003e/\u003ccode\u003eimage\u003c/code\u003e/\u003ccode\u003ecommand\u003c/code\u003e are no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom huggingface_hub import list_jobs\r\n\u003ch1\u003eFilter by status and labels\u003c/h1\u003e\n\u003cp\u003elist_jobs(status=[\u0026quot;RUNNING\u0026quot;, \u0026quot;SCHEDULING\u0026quot;], labels={\u0026quot;env\u0026quot;: \u0026quot;prod\u0026quot;})\u003c/p\u003e\n\u003ch1\u003eIterate lazily\u003c/h1\u003e\n\u003cp\u003efor job in list_jobs():\nprint(job.id)\u003c/p\u003e\n\u003ch1\u003eMaterialize all results\u003c/h1\u003e\n\u003cp\u003eall_jobs = list(list_jobs())\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Filter by status and labels\r\nhf jobs ls --status running,scheduling --label env=prod --label team=ml\r\n\r\n# Paginate with --limit\r\nhf jobs ls -a --limit 500\r\nhf jobs ls -a --limit 0  # no limit\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Add stage/label filtering to list_jobs API and CLI by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4395\"\u003e#4395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Jobs] Paginate list_jobs and add --limit to \u003ccode\u003ehf jobs ps\u003c/code\u003e by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4403\"\u003e#4403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[CLI] [Jobs] Rename job listing to 'hf jobs ls' (and keep 'hf jobs ps' alias) by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4409\"\u003e#4409\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/cli\"\u003eCLI guide\u003c/a\u003e, \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/jobs\"\u003eJobs guide\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🐛 Fix circular import on \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eA regression introduced in v1.20.0 caused \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e to raise an \u003ccode\u003eImportError\u003c/code\u003e on a fresh interpreter, due to a circular dependency between \u003ccode\u003e_oauth_device\u003c/code\u003e and \u003ccode\u003eutils._http\u003c/code\u003e. The fix moves \u003ccode\u003e_oauth_device.py\u003c/code\u003e into the \u003ccode\u003eutils\u003c/code\u003e layer so all imports resolve downward, eliminating the cycle. No lazy imports or workarounds required.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix circular import on \u003ccode\u003efrom huggingface_hub import login\u003c/code\u003e by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4385\"\u003e#4385\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Other QoL Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRetry requests on httpx.RemoteProtocolError by \u003ca href=\"https://github.com/hanouticelina\"\u003e\u003ccode\u003e@​hanouticelina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4398\"\u003e#4398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📖 Documentation\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/aea9b9de1284f54862df99820f963d6030803860\"\u003e\u003ccode\u003eaea9b9d\u003c/code\u003e\u003c/a\u003e Release: v1.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2e2ed568a0d8e3841d2fe9d192f17cdb30ccf129\"\u003e\u003ccode\u003e2e2ed56\u003c/code\u003e\u003c/a\u003e Release: v1.21.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/4bd4c906cac546643ca5fe0ca08e301ce7a98b62\"\u003e\u003ccode\u003e4bd4c90\u003c/code\u003e\u003c/a\u003e [CLI] [Jobs] Rename job listing to 'hf jobs ls' (and keep 'hf jobs ps' alias)...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/fa3eb459eb3fdf15347930d7dc70f0a7e413d6e5\"\u003e\u003ccode\u003efa3eb45\u003c/code\u003e\u003c/a\u003e [Jobs] Paginate list_jobs and add --limit to \u003ccode\u003ehf jobs ps\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4403\"\u003e#4403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/ecfd4c5e88acfa885fc9146bf5df61d4de7b46a9\"\u003e\u003ccode\u003eecfd4c5\u003c/code\u003e\u003c/a\u003e [CLI] Fix ty/mypy errors with click 8.4.2 (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4408\"\u003e#4408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/341469f1f87fb9932410fde9bdb81ac269a64727\"\u003e\u003ccode\u003e341469f\u003c/code\u003e\u003c/a\u003e Update hardware flavor enums (automated commit) (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4406\"\u003e#4406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/2fbcdfeec8a1bf689623ecb87afc7d5db4cd23bb\"\u003e\u003ccode\u003e2fbcdfe\u003c/code\u003e\u003c/a\u003e [i18n-HI] Add Hindi translation for guides overview (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4405\"\u003e#4405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5bc6bfa7df18752f1adfd649816be315937cfa6f\"\u003e\u003ccode\u003e5bc6bfa\u003c/code\u003e\u003c/a\u003e [Jobs] Add stage/label filtering to list_jobs API and CLI (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4395\"\u003e#4395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/d991f099f53c7439edbf9432c5137d2069199e5a\"\u003e\u003ccode\u003ed991f09\u003c/code\u003e\u003c/a\u003e Fix IndexError in filter_repo_objects on an empty pattern (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4402\"\u003e#4402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/0df783fb8f3d1a37b00255007e9af78e4e9dca8f\"\u003e\u003ccode\u003e0df783f\u003c/code\u003e\u003c/a\u003e Retry requests on httpx.RemoteProtocolError (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4398\"\u003e#4398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.20.1...v1.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 8.9.0 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of \u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated \u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it when the metadata files are missing instead of returning \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e Raise an exception when no metadata file is found (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e Remove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/07389c4c4609a49826ea9ed510419c2e32eccee9\"\u003e\u003ccode\u003e07389c4\u003c/code\u003e\u003c/a\u003e\u003ccode\u003ejaraco/skeleton#193\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/16fb289d38af0d510e39afcbbd43bace2d6d8dd9\"\u003e\u003ccode\u003e16fb289\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epytest-checkdocs\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 2.14\u003c/code\u003e to resolve deprecation warnings (jaraco/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/d9b029be3925b99d3b0d2ef529d79d0a1b9d2c52\"\u003e\u003ccode\u003ed9b029b\u003c/code\u003e\u003c/a\u003e Don't install (nor run) mypy on PyPy (librt build failures) (jaraco/skeleton#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/d5c6862e8d8291aec83aeea8261191e491a63d68\"\u003e\u003ccode\u003ed5c6862\u003c/code\u003e\u003c/a\u003e\u003ccode\u003ejaraco/skeleton#183\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/18a676486f8679438a6b16992177dee66f61bcaa\"\u003e\u003ccode\u003e18a6764\u003c/code\u003e\u003c/a\u003e Re-use ExceptionTrap for trapping exceptions.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.9.0...v9.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jiter` from 0.15.0 to 0.16.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/785cf750016150bda7410e95525bd6ed398102c4\"\u003e\u003ccode\u003e785cf75\u003c/code\u003e\u003c/a\u003e release: 0.16.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/e192631a659bcf251402950b78c5d17a17a9d827\"\u003e\u003ccode\u003ee192631\u003c/code\u003e\u003c/a\u003e Add 'Part of the Pydantic Stack' footer to README (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/c929d0cb4c9f59f9b89d1a0585203924f7a87f3b\"\u003e\u003ccode\u003ec929d0c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eserde\u003c/code\u003e Deserializer implementation (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/253\"\u003e#253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/6d57715e01ec78859c62fc5447073c0b5902de39\"\u003e\u003ccode\u003e6d57715\u003c/code\u003e\u003c/a\u003e Modernize Emscripten CI (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/a3a02cdb056233eb89be77e6c5a11044f07b4d20\"\u003e\u003ccode\u003ea3a02cd\u003c/code\u003e\u003c/a\u003e Bump maturin to v1.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/2fe4246c71c003ddb32c943e3b432925f05f7d3c\"\u003e\u003ccode\u003e2fe4246\u003c/code\u003e\u003c/a\u003e update to PyO3 0.29 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/1429532d486088de53293b57ad315a501e981e9a\"\u003e\u003ccode\u003e1429532\u003c/code\u003e\u003c/a\u003e Drop support for 3.13t target (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/jiter/compare/v0.15.0...v0.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.28.0 to 1.28.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/777b8d06710c140e3606b0d4598e2aa48546c266\"\u003e\u003ccode\u003e777b8d0\u003c/code\u003e\u003c/a\u003e [v1.x] Support TransportSecuritySettings in the WebSocket server transport (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/47204674fb26185c2cf45f065831f27b8e5d5c65\"\u003e\u003ccode\u003e4720467\u003c/code\u003e\u003c/a\u003e [v1.x] Set Development Status classifier to Production/Stable (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/6df3d734265eb49bf758a5e5eb420937337184e9\"\u003e\u003ccode\u003e6df3d73\u003c/code\u003e\u003c/a\u003e [v1.x] Buffer per-request StreamableHTTP streams; store priming event before ...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.28.0...v1.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.43.0 to 2.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.44.0\u003c/h2\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.44.0 (2026-06-24)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ev2.43.0...v2.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prioritize first auth header (\u003ca href=\"https://github.com/openai/openai-python/commit/797e3362e222ae14e587a4543b76a54d8992d66c\"\u003e797e336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6d9262d5c666a1e4d47f63178db907ba3087ac5d\"\u003e\u003ccode\u003e6d9262d\u003c/code\u003e\u003c/a\u003e release: 2.44.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d35627525e192b7a65b556d8a79d22079ccabdf6\"\u003e\u003ccode\u003ed356275\u003c/code\u003e\u003c/a\u003e [codex] Add AWS Bedrock provider authentication (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f47f9a270861ca6a6096e8ea15ef8f3e1fb089b0\"\u003e\u003ccode\u003ef47f9a2\u003c/code\u003e\u003c/a\u003e fix(auth): prioritize first auth header\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.43.0...v2.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai-agents` from 0.14.6 to 0.17.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: expose configurable websocket max_size limit by \u003ca href=\"https://github.com/anneheartrecord\"\u003e\u003ccode\u003e@​anneheartrecord\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3645\"\u003eopenai/openai-agents-python#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add buffered Chat Completions tool-call streaming by \u003ca href=\"https://github.com/incoffeemonster\"\u003e\u003ccode\u003e@​incoffeemonster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3506\"\u003eopenai/openai-agents-python#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reduce sandbox sink buffering and spool timeouts by \u003ca href=\"https://github.com/2830500285\"\u003e\u003ccode\u003e@​2830500285\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3642\"\u003eopenai/openai-agents-python#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3346\"\u003e#3346\u003c/a\u003e clean up branch-only messages when deleting branches by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3347\"\u003eopenai/openai-agents-python#3347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3348\"\u003e#3348\u003c/a\u003e make AdvancedSQLiteSession add_items atomic by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3349\"\u003eopenai/openai-agents-python#3349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cancel sibling guardrail tasks when one raises by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3239\"\u003eopenai/openai-agents-python#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip needs_approval_checker when status resolved in _collect_runs_by_approval by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3259\"\u003eopenai/openai-agents-python#3259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: validate ls special permission bits by position by \u003ca href=\"https://github.com/a1vazovsky\"\u003e\u003ccode\u003e@​a1vazovsky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3420\"\u003eopenai/openai-agents-python#3420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: gate remote-mount edit guidance by mode by \u003ca href=\"https://github.com/a1vazovsky\"\u003e\u003ccode\u003e@​a1vazovsky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3423\"\u003eopenai/openai-agents-python#3423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove dependency on types-requests by \u003ca href=\"https://github.com/rouge8\"\u003e\u003ccode\u003e@​rouge8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3509\"\u003eopenai/openai-agents-python#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: empty list/tuple tool output dropped via all([]) == True by \u003ca href=\"https://github.com/vidigoat\"\u003e\u003ccode\u003e@​vidigoat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3554\"\u003eopenai/openai-agents-python#3554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: wake PTY output collection on process exit (E2B) by \u003ca href=\"https://github.com/rohitrastogi\"\u003e\u003ccode\u003e@​rohitrastogi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3610\"\u003eopenai/openai-agents-python#3610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid stale object-id dedupe in server conversation tracker by \u003ca href=\"https://github.com/chutch\"\u003e\u003ccode\u003e@​chutch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3621\"\u003eopenai/openai-agents-python#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: report effective Blaxel timeouts by \u003ca href=\"https://github.com/he-yufeng\"\u003e\u003ccode\u003e@​he-yufeng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3643\"\u003eopenai/openai-agents-python#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: prevent ambiguous Realtime multi-agent tool dispatch by \u003ca href=\"https://github.com/mavrickdeveloper\"\u003e\u003ccode\u003e@​mavrickdeveloper\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3441\"\u003eopenai/openai-agents-python#3441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add hint to duplicated MCP server tool name error message by \u003ca href=\"https://github.com/wustwyh\"\u003e\u003ccode\u003e@​wustwyh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3678\"\u003eopenai/openai-agents-python#3678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: recursively extract HTTP errors from nested ExceptionGroups by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3556\"\u003eopenai/openai-agents-python#3556\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e changes for tool_not_found_behavior option by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3462\"\u003eopenai/openai-agents-python#3462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: changes for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3487\"\u003e#3487\u003c/a\u003e feature addition by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3488\"\u003eopenai/openai-agents-python#3488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix OpenAI capitalization in auto-generated ref titles by \u003ca href=\"https://github.com/atimothee\"\u003e\u003ccode\u003e@​atimothee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3646\"\u003eopenai/openai-agents-python#3646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add SDK maintainer references and review guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3676\"\u003eopenai/openai-agents-python#3676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.7 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3682\"\u003eopenai/openai-agents-python#3682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rouge8\"\u003e\u003ccode\u003e@​rouge8\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3509\"\u003eopenai/openai-agents-python#3509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vidigoat\"\u003e\u003ccode\u003e@​vidigoat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3554\"\u003eopenai/openai-agents-python#3554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rohitrastogi\"\u003e\u003ccode\u003e@​rohitrastogi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3610\"\u003eopenai/openai-agents-python#3610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chutch\"\u003e\u003ccode\u003e@​chutch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3621\"\u003eopenai/openai-agents-python#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/he-yufeng\"\u003e\u003ccode\u003e@​he-yufeng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3643\"\u003eopenai/openai-agents-python#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anneheartrecord\"\u003e\u003ccode\u003e@​anneheartrecord\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3645\"\u003eopenai/openai-agents-python#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/2830500285\"\u003e\u003ccode\u003e@​2830500285\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3642\"\u003eopenai/openai-agents-python#3642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atimothee\"\u003e\u003ccode\u003e@​atimothee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3646\"\u003eopenai/openai-agents-python#3646\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/incoffeemonster\"\u003e\u003ccode\u003e@​incoffeemonster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3506\"\u003eopenai/openai-agents-python#3506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wustwyh\"\u003e\u003ccode\u003e@​wustwyh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3678\"\u003eopenai/openai-agents-python#3678\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.6...v0.17.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add pre-approval tool input guardrails by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3487\"\u003eopenai/openai-agents-python#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SDK-only custom data for tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3486\"\u003eopenai/openai-agents-python#3486\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003efix: enforce the documented strict JSON-compatible contract for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e by \u003ca href=\"https://github.com/siddiksawani\"\u003e\u003ccode\u003e@​siddiksawani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3657\"\u003eopenai/openai-agents-python#3657\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix: suppress handoff whitespace tool-name warnings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3652\"\u003eopenai/openai-agents-python#3652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/8a0e34caaa65b64f5bdf5cf407ac467404c8a106\"\u003e\u003ccode\u003e8a0e34c\u003c/code\u003e\u003c/a\u003e Release 0.17.7 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/30ff4a5239512f8c587b4cd65199e1b3fcf2f6d0\"\u003e\u003ccode\u003e30ff4a5\u003c/code\u003e\u003c/a\u003e fix: recursively extract HTTP errors from nested ExceptionGroups (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3556\"\u003e#3556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/16d16ec2be255177af199361757bc8aedc936dd2\"\u003e\u003ccode\u003e16d16ec\u003c/code\u003e\u003c/a\u003e chore: update maintainer-review skill to have two phases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f706d651240aa8e83a536f03d4317d2ff358eefe\"\u003e\u003ccode\u003ef706d65\u003c/code\u003e\u003c/a\u003e chore: adjust examples-auto-run skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/2df8adcae7de0802d859e9ac0c6d4755747f17de\"\u003e\u003ccode\u003e2df8adc\u003c/code\u003e\u003c/a\u003e fix: add hint to duplicated MCP server tool name error message (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/7192bc968a136a183ae08a5c8d02aee79add41b7\"\u003e\u003ccode\u003e7192bc9\u003c/code\u003e\u003c/a\u003e docs: add SDK maintainer references and review guidance (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3676\"\u003e#3676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a9b7b7ef4a9eb7df50e2d9b837114f899f07b36f\"\u003e\u003ccode\u003ea9b7b7e\u003c/code\u003e\u003c/a\u003e fix(realtime): prevent ambiguous multi-agent tool dispatch (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/28d2a6c8382992b80421c9179997492e5fc39ce0\"\u003e\u003ccode\u003e28d2a6c\u003c/code\u003e\u003c/a\u003e feat: add buffered Chat Completions tool-call streaming (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3506\"\u003e#3506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3f6324c2d2e7cc94d6a44d3e4846d714ed3b83f3\"\u003e\u003ccode\u003e3f6324c\u003c/code\u003e\u003c/a\u003e docs: fix OpenAI capitalization in auto-generated ref titles (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f115dd60159c37f0ca5ed08e6777ff105059e8c2\"\u003e\u003ccode\u003ef115dd6\u003c/code\u003e\u003c/a\u003e fix: reduce sandbox sink buffering and spool timeouts (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3642\"\u003e#3642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.6...v0.17.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `protobuf` from 6.33.6 to 7.35.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/protocolbuffers/protobuf/releases\"\u003eprotobuf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eProtocol Buffers v34.0-rc1\u003c/h2\u003e\n\u003ch1\u003eAnnouncements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThis version includes breaking changes to: C++, Objective-C, PHP, Python.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make generator headers private (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add [[nodiscard]] to many APIs. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make the arena-enabled constructors of \u003ccode\u003eRepeatedField\u003c/code\u003e, \u003ccode\u003eRepeatedPtrField\u003c/code\u003e, and \u003ccode\u003eMap\u003c/code\u003e private. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() \u0026amp;\u0026amp; !is_repeated()) instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] All entity names have length limit (2afb0dc)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003egenerate_minimal_imports\u003c/code\u003e generation option warning (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Fix nullability annotations on some \u003ccode\u003eGPB*Dictionary\u003c/code\u003e types. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003e-[GPBFieldDescriptor optional]\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Other] Remove deprecated flag for enabling MSVC support (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  Add PHP typehints for setters and remove redundant GPBUtil checks (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25296\"\u003eprotocolbuffers/protobuf#25296\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  support default values for editions/proto2 (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25161\"\u003eprotocolbuffers/protobuf#25161\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_format/double_format from python proto text_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_precision from python proto json_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\u003c/a\u003e)\u003c/li\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/ContextualWisdomLab/naruon/pull/856","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContextualWisdomLab%2Fnaruon/issues/856","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/856/packages"}},{"old_version":"0.14.6","new_version":"0.17.6","update_type":"minor","path":null,"pr_created_at":"2026-06-22T04:22:26.000Z","version_change":"0.14.6 → 0.17.6","issue":{"uuid":"4713391248","node_id":"PR_kwDORr6ht87pAAUk","number":71,"state":"closed","title":"chore(deps): bump openai-agents from 0.14.6 to 0.17.6","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-25T06:39:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-22T04:22:26.000Z","updated_at":"2026-06-25T06:39:52.000Z","time_to_close":267445,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.14.6","new_version":"0.17.6","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.14.6 to 0.17.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add pre-approval tool input guardrails by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3487\"\u003eopenai/openai-agents-python#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add SDK-only custom data for tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3486\"\u003eopenai/openai-agents-python#3486\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003efix: enforce the documented strict JSON-compatible contract for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e by \u003ca href=\"https://github.com/siddiksawani\"\u003e\u003ccode\u003e@​siddiksawani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3657\"\u003eopenai/openai-agents-python#3657\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix: suppress handoff whitespace tool-name warnings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3652\"\u003eopenai/openai-agents-python#3652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix typo in sandbox guide by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3628\"\u003eopenai/openai-agents-python#3628\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.6 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3659\"\u003eopenai/openai-agents-python#3659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/siddiksawani\"\u003e\u003ccode\u003e@​siddiksawani\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3657\"\u003eopenai/openai-agents-python#3657\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.5...v0.17.6\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.5...v0.17.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: expose sandbox error retryability by \u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3581\"\u003eopenai/openai-agents-python#3581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3512\"\u003e#3512\u003c/a\u003e type tool-end hook results as object by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3518\"\u003eopenai/openai-agents-python#3518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use tuple form for SpeechGroupSpanData \u003ccode\u003e__slots__\u003c/code\u003e by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3534\"\u003eopenai/openai-agents-python#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump Modal sandbox extra to 1.4.3 by \u003ca href=\"https://github.com/jdoughty04\"\u003e\u003ccode\u003e@​jdoughty04\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3538\"\u003eopenai/openai-agents-python#3538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add MongoDB session example under examples/memory by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3036\"\u003eopenai/openai-agents-python#3036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add missing space in MCP params docstrings by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3535\"\u003eopenai/openai-agents-python#3535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix docstring typo in stdio params env description by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3557\"\u003eopenai/openai-agents-python#3557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix two docstring grammar errors in tool.py by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3543\"\u003eopenai/openai-agents-python#3543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add Latitude to external tracing processors list by \u003ca href=\"https://github.com/guillemwilly\"\u003e\u003ccode\u003e@​guillemwilly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3577\"\u003eopenai/openai-agents-python#3577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: tweak in usage doc by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3597\"\u003eopenai/openai-agents-python#3597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix string concatenation typo in agent instructions by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3599\"\u003eopenai/openai-agents-python#3599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: capitalization fix in tracing docs by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3602\"\u003eopenai/openai-agents-python#3602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix subject-verb agreement in agent loop description by \u003ca href=\"https://github.com/mshsheikh\"\u003e\u003ccode\u003e@​mshsheikh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3605\"\u003eopenai/openai-agents-python#3605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: add unit tests for run_demo_loop streaming, EOF, and empty-input paths by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3542\"\u003eopenai/openai-agents-python#3542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: add unit tests for _openai_retry helpers (77% -\u0026gt; 95% coverage) by \u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3544\"\u003eopenai/openai-agents-python#3544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.5 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3619\"\u003eopenai/openai-agents-python#3619\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jluocsa\"\u003e\u003ccode\u003e@​jluocsa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3534\"\u003eopenai/openai-agents-python#3534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdoughty04\"\u003e\u003ccode\u003e@​jdoughty04\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3538\"\u003eopenai/openai-agents-python#3538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/guillemwilly\"\u003e\u003ccode\u003e@​guillemwilly\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3577\"\u003eopenai/openai-agents-python#3577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.4...v0.17.5\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.4...v0.17.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/510b7de2ceea05df5ffbbfd461db2f60522dac09\"\u003e\u003ccode\u003e510b7de\u003c/code\u003e\u003c/a\u003e Release 0.17.6 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/09f0ed45e7177c340789f7946b2b14903b1c7d31\"\u003e\u003ccode\u003e09f0ed4\u003c/code\u003e\u003c/a\u003e fix: enforce the documented strict JSON-compatible contract for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3657\"\u003e#3657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/7fc489eb0d2d09b38f81d852c22f9193a89044c0\"\u003e\u003ccode\u003e7fc489e\u003c/code\u003e\u003c/a\u003e feat: add SDK-only custom data for tool outputs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3486\"\u003e#3486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a4ba63f7045d27998a0b1bc1ee64a313574ee139\"\u003e\u003ccode\u003ea4ba63f\u003c/code\u003e\u003c/a\u003e feat: add pre-approval tool input guardrails (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3487\"\u003e#3487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/288455911c243143432e9de0084026fe7a76ba8b\"\u003e\u003ccode\u003e2884559\u003c/code\u003e\u003c/a\u003e fix: suppress handoff whitespace tool-name warnings (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3652\"\u003e#3652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/12e268c8e28c27c5156c2b6d35528cdcdb1958e1\"\u003e\u003ccode\u003e12e268c\u003c/code\u003e\u003c/a\u003e chore: improve pr-draft-summary skill trigger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c359c20647b0b629c52289f13aa7717118f14c8c\"\u003e\u003ccode\u003ec359c20\u003c/code\u003e\u003c/a\u003e docs: update translated pages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/131c3aef76998fb81550c7961866e7b5c2b7a8bc\"\u003e\u003ccode\u003e131c3ae\u003c/code\u003e\u003c/a\u003e docs: tweak examples and senteneces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1b0076dda0cda651ea858ac7c13c59b0630c683e\"\u003e\u003ccode\u003e1b0076d\u003c/code\u003e\u003c/a\u003e fix(docs): fix typo in sandbox guide (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3628\"\u003e#3628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/d8068d96a97dc3b42294a8c832072b16a5cb7f23\"\u003e\u003ccode\u003ed8068d9\u003c/code\u003e\u003c/a\u003e Release 0.17.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3619\"\u003e#3619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.6...v0.17.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.14.6\u0026new-version=0.17.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dlwpdl/vxis/pull/71","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlwpdl%2Fvxis/issues/71","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/71/packages"}},{"old_version":"0.17.2","new_version":"0.17.4","update_type":"patch","path":null,"pr_created_at":"2026-06-08T07:45:47.000Z","version_change":"0.17.2 → 0.17.4","issue":{"uuid":"4610972370","node_id":"PR_kwDONtiFDc7jzYl9","number":1976,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["ignore-for-release"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T07:45:47.000Z","updated_at":"2026-06-08T07:45:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":14,"packages":[{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.15.13","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"typer","old_version":"0.25.1","new_version":"0.26.7","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.49.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"openai","old_version":"2.37.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"mcp","old_version":"1.27.1","new_version":"1.27.2","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"filelock","old_version":"3.29.0","new_version":"3.29.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"python-multipart","old_version":"0.0.29","new_version":"0.0.32","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"boto3","old_version":"1.43.9","new_version":"1.43.24","repository_url":"https://github.com/boto/boto3"},{"name":"langgraph","old_version":"1.2.0","new_version":"1.2.4","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"langchain-core","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"openai-agents","old_version":"0.17.2","new_version":"0.17.4","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"langchain-openai","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/langchain-ai/langchain"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 14 updates in the /python directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.13` | `0.15.16` |\n| [typer](https://github.com/fastapi/typer) | `0.25.1` | `0.26.7` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.49.0` |\n| [openai](https://github.com/openai/openai-python) | `2.37.0` | `2.41.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.27.1` | `1.27.2` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.29.0` | `3.29.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.29` | `0.0.32` |\n| [boto3](https://github.com/boto/boto3) | `1.43.9` | `1.43.24` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.2.0` | `1.2.4` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.1` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.17.2` | `0.17.4` |\n| [langchain-openai](https://github.com/langchain-ai/langchain) | `1.2.1` | `1.2.2` |\n\n\nUpdates `pytest-asyncio` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio v1.4.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e - 2026-05-26\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated minimum supported pytest version to v8.4.0. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a \u003ccode\u003eResourceWarning: unclosed event loop\u003c/code\u003e warning that could occur when a synchronous test called \u003ccode\u003easyncio.run()\u003c/code\u003e or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dependency on \u003ccode\u003esphinx-tabs \u0026gt;= 3.5\u003c/code\u003e to organize documentation examples into tabs. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio v1.4.0a2\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2\"\u003e1.4.0a2\u003c/a\u003e - 2026-05-02\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425\"\u003e\u003ccode\u003e6e14cd2\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e\"\u003e\u003ccode\u003e4b900fb\u003c/code\u003e\u003c/a\u003e Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf\"\u003e\u003ccode\u003eab9f632\u003c/code\u003e\u003c/a\u003e Build(deps): Bump zipp from 3.23.1 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa\"\u003e\u003ccode\u003ea56fc77\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis from 6.152.6 to 6.152.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d\"\u003e\u003ccode\u003ee8bae9b\u003c/code\u003e\u003c/a\u003e Build(deps): Bump requests from 2.34.0 to 2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de\"\u003e\u003ccode\u003efc43340\u003c/code\u003e\u003c/a\u003e Build(deps): Bump idna from 3.14 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/762eaf5033b798b965c92afdbb2cebefa8fc3a8b\"\u003e\u003ccode\u003e762eaf5\u003c/code\u003e\u003c/a\u003e Build(deps): Bump jaraco-functools from 4.4.0 to 4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/b62e2228c80070977baf6b77ba89d5c148af920f\"\u003e\u003ccode\u003eb62e222\u003c/code\u003e\u003c/a\u003e Build(deps): Bump click from 8.3.3 to 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/919044700627889d25ca63b6e7a3bc785f3137eb\"\u003e\u003ccode\u003e9190447\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pydantic from 2.13.3 to 2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/82a393c5e31b6ebbbd8ec2a8dafc5f35b9cf1236\"\u003e\u003ccode\u003e82a393c\u003c/code\u003e\u003c/a\u003e ci: Remove unnecessary debug output.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.13 to 0.15.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6c498ab5394edc5622d7f348e12956bf86203716\"\u003e\u003ccode\u003e6c498ab\u003c/code\u003e\u003c/a\u003e Bump 0.15.16 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25635\"\u003e#25635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e51e132831c4e1c4a5ac00fca4c9256354ab99bf\"\u003e\u003ccode\u003ee51e132\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (`AS...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7c6dcd9f2611999c449143d241c582dedf287964\"\u003e\u003ccode\u003e7c6dcd9\u003c/code\u003e\u003c/a\u003e [ty] Add caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/27058fc071b542bf06395ba89cabed061d313ca6\"\u003e\u003ccode\u003e27058fc\u003c/code\u003e\u003c/a\u003e [ty] Compact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bf80d05f007c939799f530c9e775ed9449f5b2eb\"\u003e\u003ccode\u003ebf80d05\u003c/code\u003e\u003c/a\u003e Fix CODEOWNERS syntax (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25622\"\u003e#25622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10ccd511e94a81d1e836b174f1c553a73ff3f1b3\"\u003e\u003ccode\u003e10ccd51\u003c/code\u003e\u003c/a\u003e Shrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d7135f4d23e7f4d8404daed16b9ef11d14f3fb9\"\u003e\u003ccode\u003e0d7135f\u003c/code\u003e\u003c/a\u003e [ty] Upgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/49493a3cea83a08fa9aa143695017c816a540f1d\"\u003e\u003ccode\u003e49493a3\u003c/code\u003e\u003c/a\u003e [ty] Show type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/85207d3b7657a84252f266766cb0d56034dc21cc\"\u003e\u003ccode\u003e85207d3\u003c/code\u003e\u003c/a\u003e [ty] sys.implementation.version is not sys.version_info (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a8a0614348c1fcf47fc9b666eff61a103914d520\"\u003e\u003ccode\u003ea8a0614\u003c/code\u003e\u003c/a\u003e [ty] Avoid retaining duplicate function signatures (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25609\"\u003e#25609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.13...0.15.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typer` from 0.25.1 to 0.26.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.26.7\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Respect wait=False when launching URLs with xdg-open. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1820\"\u003e#1820\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.6\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that the default of a list argument is used correctly. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1821\"\u003e#1821\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Speed up the CI by shuffling the test matrix. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1815\"\u003e#1815\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.5\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that hidden commands are not shown when Rich markup is disabled. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1812\"\u003e#1812\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove old stub packages. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1810\"\u003e#1810\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.4\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update AI Library Skill to avoid verbose code for CLI Options. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1808\"\u003e#1808\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add CI to create draft release after merging a \u003ccode\u003erelease\u003c/code\u003e PR. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1807\"\u003e#1807\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update labeler to accept label \u003ccode\u003erelease\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1806\"\u003e#1806\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update GitHub Action permissions for prepare-release. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1804\"\u003e#1804\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add GitHub Actions prepare release workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1802\"\u003e#1802\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update publish action, do not use uv cache. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1803\"\u003e#1803\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1793\"\u003e#1793\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Unify the testing functionality. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1792\"\u003e#1792\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Update version of latest-changes GitHub action. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1798\"\u003e#1798\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that an envvar set for a \u003ccode\u003etyper.Option\u003c/code\u003e list is split on whitespace. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1791\"\u003e#1791\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.26.7 (2026-06-03)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Respect wait=False when launching URLs with xdg-open. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1820\"\u003e#1820\u003c/a\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.6 (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that the default of a list argument is used correctly. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1821\"\u003e#1821\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Speed up the CI by shuffling the test matrix. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1815\"\u003e#1815\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.5 (2026-06-01)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that hidden commands are not shown when Rich markup is disabled. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1812\"\u003e#1812\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove old stub packages. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1810\"\u003e#1810\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.4 (2026-05-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update AI Library Skill to avoid verbose code for CLI Options. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1808\"\u003e#1808\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add CI to create draft release after merging a \u003ccode\u003erelease\u003c/code\u003e PR. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1807\"\u003e#1807\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update labeler to accept label \u003ccode\u003erelease\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1806\"\u003e#1806\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update GitHub Action permissions for prepare-release. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1804\"\u003e#1804\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add GitHub Actions prepare release workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1802\"\u003e#1802\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update publish action, do not use uv cache. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1803\"\u003e#1803\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump the python-packages group across 1 directory with 5 updates. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1793\"\u003e#1793\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.26.3 (2026-05-28)\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Unify the testing functionality. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1792\"\u003e#1792\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Update version of latest-changes GitHub action. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1798\"\u003e#1798\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/4e10334990db4e7e1e9a71aff363bcae7f7fc76d\"\u003e\u003ccode\u003e4e10334\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.26.7 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1823\"\u003e#1823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/08a8a032d3524035505babd5cb52eae93eab3f96\"\u003e\u003ccode\u003e08a8a03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/8e75bc3565d5dc270cd4ef3b09b5b2abf9f8491a\"\u003e\u003ccode\u003e8e75bc3\u003c/code\u003e\u003c/a\u003e 🐛 Respect wait=False when launching URLs with xdg-open (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1820\"\u003e#1820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/d2e002ab0d0afc9527cfacc00dd4c359a44898e9\"\u003e\u003ccode\u003ed2e002a\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.26.6 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/2fe5d0c2b63db2243b3f3ad37d9f164791a390b1\"\u003e\u003ccode\u003e2fe5d0c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/06fce7dc851de662792c840320abe990ddd3566e\"\u003e\u003ccode\u003e06fce7d\u003c/code\u003e\u003c/a\u003e 🐛 Ensure that the default of a list argument is used correctly (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1821\"\u003e#1821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/7f888b24c867458ab9547702720b71dc920c8925\"\u003e\u003ccode\u003e7f888b2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/2e9bf9e49401e58c59947a28f062566343f94c8f\"\u003e\u003ccode\u003e2e9bf9e\u003c/code\u003e\u003c/a\u003e 👷 Speed up the CI by shuffling the test matrix (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1815\"\u003e#1815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/1888fa2eb494564634a0f9080f4701d71c26225d\"\u003e\u003ccode\u003e1888fa2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.26.5 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1813\"\u003e#1813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a493a98a342b6565c37f9a4100b6eb1ae5a1b410\"\u003e\u003ccode\u003ea493a98\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.25.1...0.26.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.47.0 to 0.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump httptools minimum version to 0.8.0 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2962\"\u003eKludex/uvicorn#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2971\"\u003eKludex/uvicorn#2971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.0 (June 3, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump \u003ccode\u003ehttptools\u003c/code\u003e minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConsume duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (reverses the 0.48.0 behavior of ignoring them) (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3ef2e3e08e3d9ad9572800f8bc54f3eaed9eab0a\"\u003e\u003ccode\u003e3ef2e3e\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2973\"\u003e#2973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/eeb64b1d1c95a14096ed3313377c74b485f558fc\"\u003e\u003ccode\u003eeeb64b1\u003c/code\u003e\u003c/a\u003e Consume duplicate forwarding headers in ProxyHeadersMiddleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/630f4aca14e79183617c71be714030842a1041c5\"\u003e\u003ccode\u003e630f4ac\u003c/code\u003e\u003c/a\u003e Make the watchfiles reload tests deterministic (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2972\"\u003e#2972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9154922e3730f7aba68ecc3ecbf536680ee8fd1c\"\u003e\u003ccode\u003e9154922\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group across 1 directory with 6 updates ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/739727a1d80e468d1e47e98bbd824ee9e3c9554b\"\u003e\u003ccode\u003e739727a\u003c/code\u003e\u003c/a\u003e Migrate docs deploy from Cloudflare Pages to Workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2967\"\u003e#2967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/be4a240488d3fb678a11b8e8f83505266f5f1de7\"\u003e\u003ccode\u003ebe4a240\u003c/code\u003e\u003c/a\u003e Gate docs preview deploy on Cloudflare token presence (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c489d7e10dfe653a2bba914feedf2a632a026e6f\"\u003e\u003ccode\u003ec489d7e\u003c/code\u003e\u003c/a\u003e Bump httptools minimum version to 0.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9f547bd82ef52bcba206e04170b359bd6daa25b3\"\u003e\u003ccode\u003e9f547bd\u003c/code\u003e\u003c/a\u003e Skip docs preview deploy for Dependabot PRs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2961\"\u003e#2961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/44446b894e37ca76830d6aa83df4349795400ed4\"\u003e\u003ccode\u003e44446b8\u003c/code\u003e\u003c/a\u003e Migrate documentation from MkDocs Material to Zensical (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2959\"\u003e#2959\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cfd659c4f18b526adce9c255c96707bab20af40c\"\u003e\u003ccode\u003ecfd659c\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions to 10.21.3 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2958\"\u003e#2958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.37.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.27.1 to 1.27.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/releases\"\u003emcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.27.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[v1.x] ci: deploy docs to py.sdk.modelcontextprotocol.io via Pages artifact by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2635\"\u003emodelcontextprotocol/python-sdk#2635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] Add subject and claims to AccessToken by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2690\"\u003emodelcontextprotocol/python-sdk#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] Bind transport sessions to the authenticated principal by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2719\"\u003emodelcontextprotocol/python-sdk#2719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[v1.x] Scope experimental tasks to the session that created them by \u003ca href=\"https://github.com/maxisbey\"\u003e\u003ccode\u003e@​maxisbey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/2720\"\u003emodelcontextprotocol/python-sdk#2720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.27.1...v1.27.2\"\u003ehttps://github.com/modelcontextprotocol/python-sdk/compare/v1.27.1...v1.27.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/62137874ff26dd74d2fea80ff528a7fd9ca7a5e7\"\u003e\u003ccode\u003e6213787\u003c/code\u003e\u003c/a\u003e [v1.x] Scope experimental tasks to the session that created them (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2720\"\u003e#2720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/ce267b6fc515dc4efc1dc70b6975b16ff0feef0a\"\u003e\u003ccode\u003ece267b6\u003c/code\u003e\u003c/a\u003e [v1.x] Bind transport sessions to the authenticated principal (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/1abcca2408a6b50e10ec601181f63f9978705c00\"\u003e\u003ccode\u003e1abcca2\u003c/code\u003e\u003c/a\u003e [v1.x] Add subject and claims to AccessToken (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2690\"\u003e#2690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/9773a3f75edab3157253c8e612db1bc338cb9a1b\"\u003e\u003ccode\u003e9773a3f\u003c/code\u003e\u003c/a\u003e [v1.x] ci: deploy docs to py.sdk.modelcontextprotocol.io via Pages artifact (...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.27.1...v1.27.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 to 0.136.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🍱 Update sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.29.0 to 3.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.29.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix API docs of \u003ccode\u003erelease()\u003c/code\u003e by \u003ca href=\"https://github.com/MrAnno\"\u003e\u003ccode\u003e@​MrAnno\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/540\"\u003etox-dev/filelock#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify per-thread scope of FileLock configuration by \u003ca href=\"https://github.com/Gares95\"\u003e\u003ccode\u003e@​Gares95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/543\"\u003etox-dev/filelock#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path by \u003ca href=\"https://github.com/lphuc2250gma\"\u003e\u003ccode\u003e@​lphuc2250gma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/542\"\u003etox-dev/filelock#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path by \u003ca href=\"https://github.com/lphuc2250gma\"\u003e\u003ccode\u003e@​lphuc2250gma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/544\"\u003etox-dev/filelock#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path by \u003ca href=\"https://github.com/lphuc2250gma\"\u003e\u003ccode\u003e@​lphuc2250gma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/545\"\u003etox-dev/filelock#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(soft): refuse to follow symlinks when reading the lock file by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/548\"\u003etox-dev/filelock#548\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrAnno\"\u003e\u003ccode\u003e@​MrAnno\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/540\"\u003etox-dev/filelock#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Gares95\"\u003e\u003ccode\u003e@​Gares95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/543\"\u003etox-dev/filelock#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lphuc2250gma\"\u003e\u003ccode\u003e@​lphuc2250gma\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/542\"\u003etox-dev/filelock#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/548\"\u003etox-dev/filelock#548\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.29.0...3.29.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.29.0...3.29.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst\"\u003efilelock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e3.29.1 (2026-06-03)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(soft): refuse to follow symlinks when reading the lock file :pr:\u003ccode\u003e548\u003c/code\u003e - by :user:\u003ccode\u003edxbjavid\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e547\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e546\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path :pr:\u003ccode\u003e545\u003c/code\u003e - by :user:\u003ccode\u003elphuc2250gma\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path :pr:\u003ccode\u003e544\u003c/code\u003e - by :user:\u003ccode\u003elphuc2250gma\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003echore: improve filelock maintenance path :pr:\u003ccode\u003e542\u003c/code\u003e - by :user:\u003ccode\u003elphuc2250gma\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify per-thread scope of FileLock configuration :pr:\u003ccode\u003e543\u003c/code\u003e - by :user:\u003ccode\u003eGares95\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e541\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix API docs of \u003ccode\u003erelease()\u003c/code\u003e :pr:\u003ccode\u003e540\u003c/code\u003e - by :user:\u003ccode\u003eMrAnno\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e539\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e538\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e537\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 :pr:\u003ccode\u003e536\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e535\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.29.0 (2026-04-19)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows :pr:\u003ccode\u003e534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency :pr:\u003ccode\u003e533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 :pr:\u003ccode\u003e530\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.28.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again :pr:\u003ccode\u003e529\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.1 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling :pr:\u003ccode\u003e518\u003c/code\u003e - by :user:\u003ccode\u003enaarob\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 :pr:\u003ccode\u003e525\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.0 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking :pr:\u003ccode\u003e524\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e523\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/438b6fe991411a104a01baa543a9466c73f1fc79\"\u003e\u003ccode\u003e438b6fe\u003c/code\u003e\u003c/a\u003e Release 3.29.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bfbfa76c1b5069a7af1cbcddafe22fbf3f1a1aae\"\u003e\u003ccode\u003ebfbfa76\u003c/code\u003e\u003c/a\u003e 🐛 fix(soft): refuse to follow symlinks when reading the lock file (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/c51a72cb4913a1e451f892d238b81e39f4f64340\"\u003e\u003ccode\u003ec51a72c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cc05fd7f91030bc7f93c1467e3d7fbd3d401d624\"\u003e\u003ccode\u003ecc05fd7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb947e58c22d8f352abe8ae02078596eeb33fd2f\"\u003e\u003ccode\u003ecb947e5\u003c/code\u003e\u003c/a\u003e chore: improve filelock maintenance path (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/e087ca9d94091336c4256f3a6794b5dfed9595e4\"\u003e\u003ccode\u003ee087ca9\u003c/code\u003e\u003c/a\u003e chore: improve filelock maintenance path (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f9dd949b1976c9d124e9cd6b15102bfb8340ba4d\"\u003e\u003ccode\u003ef9dd949\u003c/code\u003e\u003c/a\u003e chore: improve filelock maintenance path (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/9200f1f53d924d6425cc663af03f9835bf53382a\"\u003e\u003ccode\u003e9200f1f\u003c/code\u003e\u003c/a\u003e docs: clarify per-thread scope of FileLock configuration (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/9d8985fc953d1301a56a74bc58d8a6b580bce5fa\"\u003e\u003ccode\u003e9d8985f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/7d1f48ccef189397896e55e4121d0fa74edb3be2\"\u003e\u003ccode\u003e7d1f48c\u003c/code\u003e\u003c/a\u003e docs: fix API docs of \u003ccode\u003erelease()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.29.0...3.29.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.29 to 0.0.32\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.32\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace per-byte partial-boundary scan with rfind lookbehind by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/300\"\u003eKludex/python-multipart#300\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.31...0.0.32\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.31...0.0.32\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.31\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up multipart header parsing and callback dispatch by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/295\"\u003eKludex/python-multipart#295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBound header field name size before validating by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/296\"\u003eKludex/python-multipart#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate Content-Length is non-negative in parse_form by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/297\"\u003eKludex/python-multipart#297\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.30...0.0.31\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.30...0.0.31\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.30\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTreat only \u003ccode\u003e\u0026amp;\u003c/code\u003e as the urlencoded field separator by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/290\"\u003eKludex/python-multipart#290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore RFC 2231 extended parameters in \u003ccode\u003eparse_options_header\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/291\"\u003eKludex/python-multipart#291\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.29...0.0.30\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.29...0.0.30\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.32 (2026-06-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary scanning for CR/LF-dense part data \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/300\"\u003e#300\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.31 (2026-06-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up multipart header parsing and callback dispatch \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/295\"\u003e#295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBound header field name size before validating \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/296\"\u003e#296\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003eContent-Length\u003c/code\u003e is non-negative in \u003ccode\u003eparse_form\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/297\"\u003e#297\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.30 (2026-05-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eParse \u003ccode\u003eap...\n\n_Description has been truncated_","html_url":"https://github.com/kagent-dev/kagent/pull/1976","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kagent-dev%2Fkagent/issues/1976","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1976/packages"}},{"old_version":"0.17.3","new_version":"0.17.4","update_type":"patch","path":null,"pr_created_at":"2026-06-02T15:09:33.000Z","version_change":"0.17.3 → 0.17.4","issue":{"uuid":"4572653045","node_id":"PR_kwDOSUcW3s7h2X4z","number":72,"state":"closed","title":"chore(deps): bump the python-dependencies group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-13T02:19:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T15:09:33.000Z","updated_at":"2026-06-13T02:19:31.000Z","time_to_close":904189,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":5,"packages":[{"name":"idna","old_version":"3.16","new_version":"3.18","repository_url":"https://github.com/kjd/idna"},{"name":"openai","old_version":"2.38.0","new_version":"2.41.0","repository_url":"https://github.com/openai/openai-python"},{"name":"openai-agents","old_version":"0.17.3","new_version":"0.17.4","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"starlette","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"ruff","old_version":"0.15.14","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [idna](https://github.com/kjd/idna) | `3.16` | `3.18` |\n| [openai](https://github.com/openai/openai-python) | `2.38.0` | `2.41.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.17.3` | `0.17.4` |\n| [starlette](https://github.com/Kludex/starlette) | `1.1.0` | `1.2.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.14` | `0.15.16` |\n\n\nUpdates `idna` from 3.16 to 3.18\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.md\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.18 (2026-06-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen decoding a domain, add a \u003ccode\u003edisplay\u003c/code\u003e argument that will pass\nthrough invalid labels rather than raising an exception.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.17 (2026-05-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSubstantial 75% reduction in memory usage through new data\nstructures and some optimization in processing speed.\u003c/li\u003e\n\u003cli\u003eAdded a general 1024-character input length cap to the public\nvalidation, conversion, and codec entry points. This is well above\nany legitimate domain or label and guards against pathological\ninputs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/f39ea903ba49eb5a0b2c6723c9a929b41ed4a0f1\"\u003e\u003ccode\u003ef39ea90\u003c/code\u003e\u003c/a\u003e Release 3.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/40f4e407bc7452da37c24b0c112dcda9a5b299ba\"\u003e\u003ccode\u003e40f4e40\u003c/code\u003e\u003c/a\u003e Pre-release 3.18rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1a5bf80f2fa40454589e6144efe5f72015ef9d24\"\u003e\u003ccode\u003e1a5bf80\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/253\"\u003e#253\u003c/a\u003e from kjd/lenient-decode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5bbb26fc86e28c4ee1434ae8ae8db76de4c2a5ac\"\u003e\u003ccode\u003e5bbb26f\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into lenient-decode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c532bae5270489cef8faf9f6b1eb70cbcb454c6d\"\u003e\u003ccode\u003ec532bae\u003c/code\u003e\u003c/a\u003e Rename decode() lenient= option to display= (issue \u003ca href=\"https://redirect.github.com/kjd/idna/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/0b1758ba11952a2e88fd6141ffa620409bff0580\"\u003e\u003ccode\u003e0b1758b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/252\"\u003e#252\u003c/a\u003e from kjd/release-3.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/f48619c4cea6859b938d560fdd9feb898e678567\"\u003e\u003ccode\u003ef48619c\u003c/code\u003e\u003c/a\u003e Release 3.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/7421ba8003227f816142ab40178e3a7d204e6847\"\u003e\u003ccode\u003e7421ba8\u003c/code\u003e\u003c/a\u003e Pre-release 3.17rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/22ebb73b164081f209449b50162eb7ce086e96a4\"\u003e\u003ccode\u003e22ebb73\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/251\"\u003e#251\u003c/a\u003e from kjd/structure-optimizations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/2a7ac0a58c788d50112a5003af545a83807fb108\"\u003e\u003ccode\u003e2a7ac0a\u003c/code\u003e\u003c/a\u003e Drop redundant parallel-arrays comment from uts46data\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.16...v3.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.38.0 to 2.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.40.0\u003c/h2\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.39.0\u003c/h2\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.41.0 (2026-06-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.40.0...v2.41.0\"\u003ev2.40.0...v2.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e responses.moderation and chat_completions.moderation (\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e87e46c2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.40.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.39.0...v2.40.0\"\u003ev2.39.0...v2.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add Amazon Bedrock Responses support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e allow setting bedrock api keys on the client directly (\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e4d5bfde\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.39.0 (2026-06-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.39.0\"\u003ev2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (\u003ca href=\"https://github.com/openai/openai-python/commit/ab60d7a52c310bb0490ff36b8bdc33b8d4ea725f\"\u003eab60d7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2d955a1ac69df0288b8072bbcd25905639e9b2ed\"\u003e\u003ccode\u003e2d955a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3359\"\u003e#3359\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/519cd027919fa5b73bd8fe237e80c7a01b3e0b2f\"\u003e\u003ccode\u003e519cd02\u003c/code\u003e\u003c/a\u003e release: 2.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/87e46c25ac9ca8cff407b52ad9fb33e326c059d6\"\u003e\u003ccode\u003e87e46c2\u003c/code\u003e\u003c/a\u003e feat(api): responses.moderation and chat_completions.moderation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a28a3f6aa34f5ac6fcc2fafeb50112f2140c45ae\"\u003e\u003ccode\u003ea28a3f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3352\"\u003e#3352\u003c/a\u003e from openai/release-please--branches--main--changes-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/db6ccafa7b74b72caefbda6fb63bd5c904521770\"\u003e\u003ccode\u003edb6ccaf\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2264f700dad91e4f570eb7c0a6f10bbd22d34520\"\u003e\u003ccode\u003e2264f70\u003c/code\u003e\u003c/a\u003e release: 2.40.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4d5bfdec37fa8a2b2a0413724755e586e627e28d\"\u003e\u003ccode\u003e4d5bfde\u003c/code\u003e\u003c/a\u003e fix(api): allow setting bedrock api keys on the client directly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ccef1436d9f52b5014597047e450eef543a87540\"\u003e\u003ccode\u003eccef143\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3326\"\u003e#3326\u003c/a\u003e from openai/codex/bedrock-responses-review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a50ff0a19084306a09012ff85f730ea2c129eef9\"\u003e\u003ccode\u003ea50ff0a\u003c/code\u003e\u003c/a\u003e Fix Bedrock with_options overrides\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/fdf4901e301fa01b368ede0b5b407dca42f07acc\"\u003e\u003ccode\u003efdf4901\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.38.0...v2.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai-agents` from 0.17.3 to 0.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support Realtime custom voice objects by \u003ca href=\"https://github.com/lionel-oai\"\u003e\u003ccode\u003e@​lionel-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3473\"\u003eopenai/openai-agents-python#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3461\"\u003eopenai/openai-agents-python#3461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: apply hardened http client default to MCP SSE transport by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3466\"\u003eopenai/openai-agents-python#3466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use non-None value for output in FunctionSpanData by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3483\"\u003eopenai/openai-agents-python#3483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: redact invalid JSON payload in ModelBehaviorError data by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3485\"\u003eopenai/openai-agents-python#3485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export more tracing related functions \u0026amp; types from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3489\"\u003eopenai/openai-agents-python#3489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3490\"\u003eopenai/openai-agents-python#3490\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 0.17.4 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3505\"\u003eopenai/openai-agents-python#3505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/6d5b888f6f57b8356398bea883b45172fec54b95\"\u003e\u003ccode\u003e6d5b888\u003c/code\u003e\u003c/a\u003e Release 0.17.4 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3505\"\u003e#3505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a92ea4c8e4c2bff05b81041d0d1f3df41360bfb\"\u003e\u003ccode\u003e9a92ea4\u003c/code\u003e\u003c/a\u003e Support Realtime custom voice objects (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fedc809afd5abb492df21c8e6bf365653b06c21f\"\u003e\u003ccode\u003efedc809\u003c/code\u003e\u003c/a\u003e fix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem fr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/573530febb67ff561d02e57cce639e792d4d716e\"\u003e\u003ccode\u003e573530f\u003c/code\u003e\u003c/a\u003e fix: export more tracing related functions \u0026amp; types from agents (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3489\"\u003e#3489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/813a00324e8165eacefd3ec4760d27b1d65d2a46\"\u003e\u003ccode\u003e813a003\u003c/code\u003e\u003c/a\u003e fix: redact invalid JSON payload in ModelBehaviorError data (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3485\"\u003e#3485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/eda7b51aeae663204dc3b8a1431688fa5fc50620\"\u003e\u003ccode\u003eeda7b51\u003c/code\u003e\u003c/a\u003e fix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3483\"\u003e#3483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/45effb4b7d7de1226ebba7ba304bccfcf0a37fdf\"\u003e\u003ccode\u003e45effb4\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9303389d8452995b18ba151614489fb93eaefad5\"\u003e\u003ccode\u003e9303389\u003c/code\u003e\u003c/a\u003e fix: use non-None value for output in FunctionSpanData (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3475\"\u003e#3475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9514473c234c8419b812b658157a5c3d4341713f\"\u003e\u003ccode\u003e9514473\u003c/code\u003e\u003c/a\u003e fix: apply hardened http client default to MCP SSE transport (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3466\"\u003e#3466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/445ad2273c2b527fc98dd8c1e53b3108d6bd93ea\"\u003e\u003ccode\u003e445ad22\u003c/code\u003e\u003c/a\u003e docs: add SECURITY.md in the same way with openai-agents-js repo\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 1.1.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ehttpx2\u003c/code\u003e for type checking in the \u003ccode\u003etestclient\u003c/code\u003e module by \u003ca href=\"https://github.com/leifwar\"\u003e\u003ccode\u003e@​leifwar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3304\"\u003eKludex/starlette#3304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd assert error for requires() when request param is not Request type by \u003ca href=\"https://github.com/KeeganOP\"\u003e\u003ccode\u003e@​KeeganOP\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3298\"\u003eKludex/starlette#3298\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leifwar\"\u003e\u003ccode\u003e@​leifwar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3304\"\u003eKludex/starlette#3304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/diskeu\"\u003e\u003ccode\u003e@​diskeu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3243\"\u003eKludex/starlette#3243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/KeeganOP\"\u003e\u003ccode\u003e@​KeeganOP\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3298\"\u003eKludex/starlette#3298\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/1.2.0...1.2.1\"\u003ehttps://github.com/Kludex/starlette/compare/1.2.0...1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport httpx2 in the test client by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3291\"\u003eKludex/starlette#3291\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/1.1.0...1.2.0\"\u003ehttps://github.com/Kludex/starlette/compare/1.1.0...1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.1 (May 31, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ehttpx2\u003c/code\u003e for type checking in the \u003ccode\u003etestclient\u003c/code\u003e module \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3304\"\u003e#3304\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd assert error for \u003ccode\u003erequires()\u003c/code\u003e when the request parameter is not a \u003ccode\u003eRequest\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3298\"\u003e#3298\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.0 (May 28, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eSupport httpx2 in the test client \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3291\"\u003e#3291\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/ef773fe9fe86d452ea014a39c6ede1029b341e73\"\u003e\u003ccode\u003eef773fe\u003c/code\u003e\u003c/a\u003e Version 1.2.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3306\"\u003e#3306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3fc68a7e394cb938bd202774b9d6f5c33a237a66\"\u003e\u003ccode\u003e3fc68a7\u003c/code\u003e\u003c/a\u003e Add sponsors section to docs sidebar (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3305\"\u003e#3305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b053f7bbf194c3fac77d87c6033ec6181eb4cd90\"\u003e\u003ccode\u003eb053f7b\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group across 1 directory with 6 updates...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/14787751400853cc21853983a02d84bbfb4da45d\"\u003e\u003ccode\u003e1478775\u003c/code\u003e\u003c/a\u003e Add assert error for requires() when request param is not Request type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3298\"\u003e#3298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/65765470827be550cdbc1a2e7165da494da7f6e8\"\u003e\u003ccode\u003e6576547\u003c/code\u003e\u003c/a\u003e Describe disconnected-after-response behavior in test docstring (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3243\"\u003e#3243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9cb1553be6ff3d18a0d30a18e3b623ea86edeef0\"\u003e\u003ccode\u003e9cb1553\u003c/code\u003e\u003c/a\u003e Use same module (httpx|httpx2) for type checking as for runtime (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3304\"\u003e#3304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4060987466412dcdb3e5a0f05973b4208dddb6f0\"\u003e\u003ccode\u003e4060987\u003c/code\u003e\u003c/a\u003e Version 1.2.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3300\"\u003e#3300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/1e289ca3f957370122fb3bf7e046db65f6675037\"\u003e\u003ccode\u003e1e289ca\u003c/code\u003e\u003c/a\u003e Migrate docs deploy from Cloudflare Pages to Workers Static Assets (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3282\"\u003e#3282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/100f05a66bf3ff5643540164ae95fc3ad9ed3443\"\u003e\u003ccode\u003e100f05a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ehttpx2\u003c/code\u003e as a dev dependency (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3295\"\u003e#3295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/508023b488b649d97c091eb60da1d8ef3636ee06\"\u003e\u003ccode\u003e508023b\u003c/code\u003e\u003c/a\u003e Support httpx2 in the test client (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3291\"\u003e#3291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/1.1.0...1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.14 to 0.15.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6c498ab5394edc5622d7f348e12956bf86203716\"\u003e\u003ccode\u003e6c498ab\u003c/code\u003e\u003c/a\u003e Bump 0.15.16 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25635\"\u003e#25635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e51e132831c4e1c4a5ac00fca4c9256354ab99bf\"\u003e\u003ccode\u003ee51e132\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (`AS...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7c6dcd9f2611999c449143d241c582dedf287964\"\u003e\u003ccode\u003e7c6dcd9\u003c/code\u003e\u003c/a\u003e [ty] Add caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/27058fc071b542bf06395ba89cabed061d313ca6\"\u003e\u003ccode\u003e27058fc\u003c/code\u003e\u003c/a\u003e [ty] Compact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bf80d05f007c939799f530c9e775ed9449f5b2eb\"\u003e\u003ccode\u003ebf80d05\u003c/code\u003e\u003c/a\u003e Fix CODEOWNERS syntax (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25622\"\u003e#25622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10ccd511e94a81d1e836b174f1c553a73ff3f1b3\"\u003e\u003ccode\u003e10ccd51\u003c/code\u003e\u003c/a\u003e Shrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d7135f4d23e7f4d8404daed16b9ef11d14f3fb9\"\u003e\u003ccode\u003e0d7135f\u003c/code\u003e\u003c/a\u003e [ty] Upgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/49493a3cea83a08fa9aa143695017c816a540f1d\"\u003e\u003ccode\u003e49493a3\u003c/code\u003e\u003c/a\u003e [ty] Show type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/85207d3b7657a84252f266766cb0d56034dc21cc\"\u003e\u003ccode\u003e85207d3\u003c/code\u003e\u003c/a\u003e [ty] sys.implementation.version is not sys.version_info (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a8a0614348c1fcf47fc9b666eff61a103914d520\"\u003e\u003ccode\u003ea8a0614\u003c/code\u003e\u003c/a\u003e [ty] Avoid retaining duplicate function signatures (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25609\"\u003e#25609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.14...0.15.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/tryskian/scorey/pull/72","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryskian%2Fscorey/issues/72","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/72/packages"}},{"old_version":"0.17.3","new_version":"0.17.4","update_type":"patch","path":null,"pr_created_at":"2026-06-02T14:52:05.000Z","version_change":"0.17.3 → 0.17.4","issue":{"uuid":"4572514299","node_id":"PR_kwDORT9AZc7h16Ly","number":644,"state":"closed","title":"build(deps): bump openai-agents from 0.17.3 to 0.17.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-13T01:46:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T14:52:05.000Z","updated_at":"2026-06-13T01:46:55.000Z","time_to_close":903281,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"openai-agents","old_version":"0.17.3","new_version":"0.17.4","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.17.3 to 0.17.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support Realtime custom voice objects by \u003ca href=\"https://github.com/lionel-oai\"\u003e\u003ccode\u003e@​lionel-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3473\"\u003eopenai/openai-agents-python#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3461\"\u003eopenai/openai-agents-python#3461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: apply hardened http client default to MCP SSE transport by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3466\"\u003eopenai/openai-agents-python#3466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use non-None value for output in FunctionSpanData by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3483\"\u003eopenai/openai-agents-python#3483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: redact invalid JSON payload in ModelBehaviorError data by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3485\"\u003eopenai/openai-agents-python#3485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export more tracing related functions \u0026amp; types from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3489\"\u003eopenai/openai-agents-python#3489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3490\"\u003eopenai/openai-agents-python#3490\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 0.17.4 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3505\"\u003eopenai/openai-agents-python#3505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/6d5b888f6f57b8356398bea883b45172fec54b95\"\u003e\u003ccode\u003e6d5b888\u003c/code\u003e\u003c/a\u003e Release 0.17.4 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3505\"\u003e#3505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a92ea4c8e4c2bff05b81041d0d1f3df41360bfb\"\u003e\u003ccode\u003e9a92ea4\u003c/code\u003e\u003c/a\u003e Support Realtime custom voice objects (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fedc809afd5abb492df21c8e6bf365653b06c21f\"\u003e\u003ccode\u003efedc809\u003c/code\u003e\u003c/a\u003e fix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem fr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/573530febb67ff561d02e57cce639e792d4d716e\"\u003e\u003ccode\u003e573530f\u003c/code\u003e\u003c/a\u003e fix: export more tracing related functions \u0026amp; types from agents (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3489\"\u003e#3489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/813a00324e8165eacefd3ec4760d27b1d65d2a46\"\u003e\u003ccode\u003e813a003\u003c/code\u003e\u003c/a\u003e fix: redact invalid JSON payload in ModelBehaviorError data (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3485\"\u003e#3485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/eda7b51aeae663204dc3b8a1431688fa5fc50620\"\u003e\u003ccode\u003eeda7b51\u003c/code\u003e\u003c/a\u003e fix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3483\"\u003e#3483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/45effb4b7d7de1226ebba7ba304bccfcf0a37fdf\"\u003e\u003ccode\u003e45effb4\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9303389d8452995b18ba151614489fb93eaefad5\"\u003e\u003ccode\u003e9303389\u003c/code\u003e\u003c/a\u003e fix: use non-None value for output in FunctionSpanData (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3475\"\u003e#3475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9514473c234c8419b812b658157a5c3d4341713f\"\u003e\u003ccode\u003e9514473\u003c/code\u003e\u003c/a\u003e fix: apply hardened http client default to MCP SSE transport (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3466\"\u003e#3466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/445ad2273c2b527fc98dd8c1e53b3108d6bd93ea\"\u003e\u003ccode\u003e445ad22\u003c/code\u003e\u003c/a\u003e docs: add SECURITY.md in the same way with openai-agents-js repo\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/tryskian/polinko/pull/644","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryskian%2Fpolinko/issues/644","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/644/packages"}},{"old_version":"0.6.5","new_version":"0.17.3","update_type":"minor","path":null,"pr_created_at":"2026-05-26T00:23:31.000Z","version_change":"0.6.5 → 0.17.3","issue":{"uuid":"4520310526","node_id":"PR_kwDOSKFNzM7fNcsi","number":38,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["ignore-for-release"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T00:23:31.000Z","updated_at":"2026-05-26T00:23:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":28,"packages":[{"name":"ruff","old_version":"0.15.11","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"authlib","old_version":"1.7.0","new_version":"1.7.2","repository_url":"https://github.com/authlib/authlib"},{"name":"google-auth","old_version":"2.47.0","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"anyio","old_version":"4.10.0","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"typer","old_version":"0.16.0","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"openai","old_version":"2.14.0","new_version":"2.38.0","repository_url":"https://github.com/openai/openai-python"},{"name":"mcp","old_version":"1.25.0","new_version":"1.27.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"fastapi","old_version":"0.129.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"filelock","old_version":"3.20.3","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.29","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"boto3","old_version":"1.42.28","new_version":"1.43.14","repository_url":"https://github.com/boto/boto3"},{"name":"ollama","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/ollama/ollama-python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"opentelemetry-instrumentation-openai","old_version":"0.52.5","new_version":"0.60.0","repository_url":"https://github.com/traceloop/openllmetry"},{"name":"langgraph","old_version":"1.0.6","new_version":"1.2.1","repository_url":"https://github.com/langchain-ai/langgraph"},{"name":"openai-agents","old_version":"0.6.5","new_version":"0.17.3","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"langchain-openai","old_version":"1.1.7","new_version":"1.2.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langgraph-checkpoint-sqlite","old_version":"3.0.3","new_version":"3.1.0","repository_url":"https://github.com/langchain-ai/langgraph"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 23 updates in the /python directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.14` |\n| [authlib](https://github.com/authlib/authlib) | `1.7.0` | `1.7.2` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.47.0` | `2.53.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.13.0` |\n| [typer](https://github.com/fastapi/typer) | `0.16.0` | `0.25.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.48.0` |\n| [openai](https://github.com/openai/openai-python) | `2.14.0` | `2.38.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.25.0` | `1.27.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.129.0` | `0.136.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.3` | `3.29.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.29` |\n| [boto3](https://github.com/boto/boto3) | `1.42.28` | `1.43.14` |\n| [ollama](https://github.com/ollama/ollama-python) | `0.6.1` | `0.6.2` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [opentelemetry-instrumentation-openai](https://github.com/traceloop/openllmetry) | `0.52.5` | `0.60.0` |\n| [langgraph](https://github.com/langchain-ai/langgraph) | `1.0.6` | `1.2.1` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.6.5` | `0.17.3` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [langchain-openai](https://github.com/langchain-ai/langchain) | `1.1.7` | `1.2.2` |\n| [langgraph-checkpoint-sqlite](https://github.com/langchain-ai/langgraph) | `3.0.3` | `3.1.0` |\n\n\nUpdates `ruff` from 0.15.11 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.7.0 to 1.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the readme links by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/886\"\u003eauthlib/authlib#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow non-recommended algorithms in ClientSecretJWT and PrivateKey by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/887\"\u003eauthlib/authlib#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate BCP47 language tags with a regex by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/873\"\u003eauthlib/authlib#873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RFC7523 signing with non RSA keys by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/884\"\u003eauthlib/authlib#884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.7.1...v1.7.2\"\u003ehttps://github.com/authlib/authlib/compare/v1.7.1...v1.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.7.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix authlib.jose deprecation warning poping from _joserfc_helpers by \u003ca href=\"https://github.com/azmeuk\"\u003e\u003ccode\u003e@​azmeuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/881\"\u003eauthlib/authlib#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix redirecting to unvalidated \u003ccode\u003eredirect_uri\u003c/code\u003e on \u003ccode\u003eInvalidScopeError\u003c/code\u003e  in \u003ccode\u003eOpenIDImplicitGrant\u003c/code\u003e and \u003ccode\u003eOpenIDHybridGrant\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.7.0...v1.7.1\"\u003ehttps://github.com/authlib/authlib/compare/v1.7.0...v1.7.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/a0b76fac3fa114d7759af2010546bfc332364b63\"\u003e\u003ccode\u003ea0b76fa\u003c/code\u003e\u003c/a\u003e chore: bump to 1.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/c85c7f2b02faf2667f62b27aa60df042dbc9b4ab\"\u003e\u003ccode\u003ec85c7f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/884\"\u003e#884\u003c/a\u003e from azmeuk/852-rfc7523-key-import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/a3b2adda43b4452ba9f384d224f95848974b4eb4\"\u003e\u003ccode\u003ea3b2add\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/873\"\u003e#873\u003c/a\u003e from azmeuk/bcp47\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/f2578eaa198aedbaaaf3bb00eccc451e15e45e3a\"\u003e\u003ccode\u003ef2578ea\u003c/code\u003e\u003c/a\u003e fix: Import RSAKey in auth.py for additional key support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b57182cf46a53da19623208dd852270ddec8ebcc\"\u003e\u003ccode\u003eb57182c\u003c/code\u003e\u003c/a\u003e fix: fallback support RSAKey when client_secret is text\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/4e7590292ca9f948a0766640b27025618750e6c1\"\u003e\u003ccode\u003e4e75902\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 852-rfc7523-key-import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/5eb4a860600ea2f3acc1a2a9c3e621a430da9d0f\"\u003e\u003ccode\u003e5eb4a86\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/887\"\u003e#887\u003c/a\u003e from azmeuk/883-alg\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/5633f37c47bd8352b962f982cb916bc8b95bb5d5\"\u003e\u003ccode\u003e5633f37\u003c/code\u003e\u003c/a\u003e fix: allow non-recommended algorithms in ClientSecretJWT and PrivateKeyJWT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/4c8e7b381aaef68f60e2323a25ba96cdb346f82f\"\u003e\u003ccode\u003e4c8e7b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/authlib/authlib/issues/886\"\u003e#886\u003c/a\u003e from azmeuk/885-readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/23b333e48a17ebf9f032a0e0f9eb3f990a06f97b\"\u003e\u003ccode\u003e23b333e\u003c/code\u003e\u003c/a\u003e docs: fix the readme links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.7.0...v1.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.47.0 to 2.53.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.49.0.dev0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.48.0...v2.49.0-dev0\"\u003e2.49.0-dev0\u003c/a\u003e (2026-01-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove deprecated rsa dependency (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e98cf69284d3620619a70b54fb0b9533caf11878\"\u003ee98cf69284d3620619a70b54fb0b9533caf11878\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.48.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827\"\u003e383c9827\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b\"\u003e454b441b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2\"\u003e52558ae2\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1\"\u003e8dcf91a1\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064\"\u003e25c1b064\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a240\"\u003e3f88a240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e\"\u003e97bfea9e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e10\"\u003ebfc07e10\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20c\"\u003ee431f20c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.48.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0rc0\"\u003e2.48.0rc0\u003c/a\u003e (2026-01-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehonor NO_GCE_CHECK environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse user_verification=preferred for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set by empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoved content-header from AWS IMDS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-auth/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558ae2881b1e6555f6f5c0d76365c15807ead9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91a1b05c85fbbd0bcee78d66e498099102ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c9827536d9376e8248370ce4c2b83e468d027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b064545702cbef087cfcd15fbbb6ef1af74f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f20cf73ccac71926a23ec454468cea92e053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a24089c4ee6822d510de0db210b54260d873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.14.1 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4\"\u003e\u003ccode\u003e9810405\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e@disjoint_base\u003c/code\u003e (PEP 800) (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03\"\u003e\u003ccode\u003e7ee9e05\u003c/code\u003e\u003c/a\u003e Backport type_params fix from CPython (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98\"\u003e\u003ccode\u003e1e8eb9c\u003c/code\u003e\u003c/a\u003e Do not refer to PEP 705 as being experimental (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.14.1...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.10.0 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ettl\u003c/code\u003e parameter to the \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e wrapper (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1073\"\u003e#1073\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWidened the type annotations of file I/O streams to accept \u003ccode\u003eIO[bytes]\u003c/code\u003e instead of just \u003ccode\u003eBinaryIO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path\u003c/code\u003e not being compatible with Python 3.15 due to the removal of \u003ccode\u003epathlib.Path.is_reserved()\u003c/code\u003e and the addition of \u003ccode\u003epathlib.Path.__vfspath__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1061\"\u003e#1061\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eBrokenResourceError\u003c/code\u003e raised by the asyncio \u003ccode\u003eSocketStream\u003c/code\u003e not having the original exception as its cause (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1055\"\u003e#1055\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eTypeError\u003c/code\u003e raised when using \u0026quot;func\u0026quot; as a parameter name in \u003ccode\u003epytest.mark.parametrize\u003c/code\u003e when using the pytest plugin (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1068\"\u003e#1068\u003c/a\u003e; PR by \u003ca href=\"https://github.com/JohnnyDeuss\"\u003e\u003ccode\u003e@​JohnnyDeuss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the pytest plugin not running tests that had the \u003ccode\u003eanyio\u003c/code\u003e marker added programmatically via \u003ccode\u003epytest_collection_modifyitems\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/422\"\u003e#422\u003c/a\u003e; PR by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when they are contained in an exception group alongside non-cancellation exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1091\"\u003e#1091\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCondition.wait()\u003c/code\u003e not passing on a notification when the task is cancelled but already received a notification\u003c/li\u003e\n\u003cli\u003eFixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1074\"\u003e#1074\u003c/a\u003e; PR by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2\"\u003e\u003ccode\u003eafbe93c\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d\"\u003e\u003ccode\u003e33bdf2e\u003c/code\u003e\u003c/a\u003e Rearranged the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78\"\u003e\u003ccode\u003e19e09e2\u003c/code\u003e\u003c/a\u003e Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c\"\u003e\u003ccode\u003e9369d80\u003c/code\u003e\u003c/a\u003e Fixed Condition.wait() not handing over notification when cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8\"\u003e\u003ccode\u003e6f122ab\u003c/code\u003e\u003c/a\u003e Fixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0\"\u003e\u003ccode\u003ebeaa45a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f\"\u003e\u003ccode\u003e602f660\u003c/code\u003e\u003c/a\u003e Widened type annotations to accept IO[bytes] in file streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3\"\u003e\u003ccode\u003eb5dcd45\u003c/code\u003e\u003c/a\u003e Added note about erasing the template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1\"\u003e\u003ccode\u003ed68670b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1090\"\u003e#1090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c\"\u003e\u003ccode\u003efc17a22\u003c/code\u003e\u003c/a\u003e tweak to_thread docs about abandon_on_cancel (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.10.0...4.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typer` from 0.16.0 to 0.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add Typer Library Skill for Agents. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1620\"\u003e#1620\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.11 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1722\"\u003e#1722\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.10 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1723\"\u003e#1723\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.25.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Don't truncate code lines in traceback when formatted with Rich. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1695\"\u003e#1695\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.24.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003etyper.launch\u003c/code\u003e forwards correctly when launching a file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1708\"\u003e#1708\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Ensure \u003ccode\u003ety\u003c/code\u003e runs without errors. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1628\"\u003e#1628\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1612\"\u003e#1612\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1630\"\u003e#1630\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix broken link to FastAPI and Friends newsletter. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1540\"\u003e#1540\u003c/a\u003e by \u003ca href=\"https://github.com/Karlemami\"\u003e\u003ccode\u003e@​Karlemami\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1622\"\u003e#1622\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove link to Typer developer survey. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1609\"\u003e#1609\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Clean up documentation in \u003ccode\u003einstall.md\u003c/code\u003e file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1606\"\u003e#1606\u003c/a\u003e by \u003ca href=\"https://github.com/Johandielangman\"\u003e\u003ccode\u003e@​Johandielangman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.1 to 1.20.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1715\"\u003e#1715\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.9 to 0.3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1716\"\u003e#1716\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1713\"\u003e#1713\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.31 to 0.0.32. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1711\"\u003e#1711\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.2 to 2.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1712\"\u003e#1712\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1667\"\u003e#1667\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1710\"\u003e#1710\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1700\"\u003e#1700\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.1 to 2.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1703\"\u003e#1703\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1701\"\u003e#1701\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.10 to 0.15.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1704\"\u003e#1704\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1702\"\u003e#1702\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 7.6.0 to 8.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1699\"\u003e#1699\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.30 to 0.0.31. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1696\"\u003e#1696\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.0 to 2.13.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1697\"\u003e#1697\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.1 (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add Typer Library Skill for Agents. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1620\"\u003e#1620\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.11 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1722\"\u003e#1722\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.10 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1723\"\u003e#1723\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.25.0 (2026-04-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Don't truncate code lines in traceback when formatted with Rich. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1695\"\u003e#1695\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.24.2 (2026-04-22)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003etyper.launch\u003c/code\u003e forwards correctly when launching a file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1708\"\u003e#1708\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Ensure \u003ccode\u003ety\u003c/code\u003e runs without errors. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1628\"\u003e#1628\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1612\"\u003e#1612\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1630\"\u003e#1630\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix broken link to FastAPI and Friends newsletter. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1540\"\u003e#1540\u003c/a\u003e by \u003ca href=\"https://github.com/Karlemami\"\u003e\u003ccode\u003e@​Karlemami\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1622\"\u003e#1622\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove link to Typer developer survey. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1609\"\u003e#1609\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Clean up documentation in \u003ccode\u003einstall.md\u003c/code\u003e file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1606\"\u003e#1606\u003c/a\u003e by \u003ca href=\"https://github.com/Johandielangman\"\u003e\u003ccode\u003e@​Johandielangman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.1 to 1.20.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1715\"\u003e#1715\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.9 to 0.3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1716\"\u003e#1716\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1713\"\u003e#1713\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.31 to 0.0.32. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1711\"\u003e#1711\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.2 to 2.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1712\"\u003e#1712\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1667\"\u003e#1667\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1710\"\u003e#1710\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1700\"\u003e#1700\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.1 to 2.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1703\"\u003e#1703\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1701\"\u003e#1701\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.10 to 0.15.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1704\"\u003e#1704\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1702\"\u003e#1702\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/cfcc2ef9f948bcce67897a6c7e689d39da690bf9\"\u003e\u003ccode\u003ecfcc2ef\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/13846cc59bd574567a9a1f56eae3cd42b9aa2a4f\"\u003e\u003ccode\u003e13846cc\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a43746997ad6f2b4a8829c69c919f4d4c2cc0698\"\u003e\u003ccode\u003ea437469\u003c/code\u003e\u003c/a\u003e 🔧 Add Typer Library Skill for Agents (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/ba6cc2c9e7cba35f891c91118e228e1d2da35edb\"\u003e\u003ccode\u003eba6cc2c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/0f3ead07c2bb384fdd590e895ca6705582c58d89\"\u003e\u003ccode\u003e0f3ead0\u003c/code\u003e\u003c/a\u003e ⬆ Bump ruff from 0.15.11 to 0.15.12 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1722\"\u003e#1722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/db4ade64936599b3460f2fc0a7c550c3fedc33b0\"\u003e\u003ccode\u003edb4ade6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/5a5206ceed2afdf234f88a6e2ef74ad9ebdf0d92\"\u003e\u003ccode\u003e5a5206c\u003c/code\u003e\u003c/a\u003e ⬆ Bump prek from 0.3.10 to 0.3.11 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1723\"\u003e#1723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/959845e173b4bec0d606d99247815c2710613ca8\"\u003e\u003ccode\u003e959845e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/5e1fcfb5935e7ac3ff3c7526ef297eae31bd4822\"\u003e\u003ccode\u003e5e1fcfb\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/dfb21ad034804584702d553ebfba40d8f4d791b9\"\u003e\u003ccode\u003edfb21ad\u003c/code\u003e\u003c/a\u003e 🚸 Don't truncate code lines in traceback when formatted with Rich (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.16.0...0.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.35.0 to 0.48.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.47.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2919\"\u003eKludex/uvicorn#2919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2920\"\u003eKludex/uvicorn#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2927\"\u003eKludex/uvicorn#...\n\n_Description has been truncated_","html_url":"https://github.com/tmohanvamsi/kagent/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmohanvamsi%2Fkagent/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"}},{"old_version":"0.10.4","new_version":"0.17.3","update_type":"minor","path":null,"pr_created_at":"2026-05-20T18:26:43.000Z","version_change":"0.10.4 → 0.17.3","issue":{"uuid":"4488938007","node_id":"PR_kwDORT9AZc7dps4t","number":502,"state":"open","title":"build(deps): bump openai-agents from 0.10.4 to 0.17.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-20T18:26:43.000Z","updated_at":"2026-05-20T21:56:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"openai-agents","old_version":"0.10.4","new_version":"0.17.3","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.10.4 to 0.17.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.3\u003c/h2\u003e\n\u003cp\u003ea## What's Changed\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: keep mountpoint credentials out of sandbox commands by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3429\"\u003eopenai/openai-agents-python#3429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: unify memory optional dependency import errors by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3389\"\u003eopenai/openai-agents-python#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard None text in text_message_output and add output guardrail count to RunErrorDetails by \u003ca href=\"https://github.com/zhoufengen\"\u003e\u003ccode\u003e@​zhoufengen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3375\"\u003eopenai/openai-agents-python#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid mutating FunctionTool params_json_schema by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3382\"\u003eopenai/openai-agents-python#3382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid mutating codex output schema input by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3385\"\u003eopenai/openai-agents-python#3385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3357\"\u003e#3357\u003c/a\u003e output schema names for Literal types by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3358\"\u003eopenai/openai-agents-python#3358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip wait_for_status when Vercel sandbox is in a terminal state by \u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3410\"\u003eopenai/openai-agents-python#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: filter hosted_tool_call types in remove_all_tools handoff filter by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3386\"\u003eopenai/openai-agents-python#3386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard None text in ItemHelpers.extract_last_content by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3394\"\u003eopenai/openai-agents-python#3394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: log exception when output guardrail raises instead of silently ignoring by \u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3411\"\u003eopenai/openai-agents-python#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reject relative sandbox workspace roots by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3422\"\u003eopenai/openai-agents-python#3422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: normalize leading question marks in exposed port queries by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3424\"\u003eopenai/openai-agents-python#3424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3363\"\u003e#3363\u003c/a\u003e honor short custom voice splitter chunks by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3364\"\u003eopenai/openai-agents-python#3364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: runtime handling updates by \u003ca href=\"https://github.com/adrianbravo-oai\"\u003e\u003ccode\u003e@​adrianbravo-oai\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3451\"\u003eopenai/openai-agents-python#3451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add SDK review guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3376\"\u003eopenai/openai-agents-python#3376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: mark Agent.instructions as optional by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3384\"\u003eopenai/openai-agents-python#3384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: translate all pages using new settings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3392\"\u003eopenai/openai-agents-python#3392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document auto_previous_response_id by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3383\"\u003eopenai/openai-agents-python#3383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix LiteLLM API reference redirect by \u003ca href=\"https://github.com/ynachiket\"\u003e\u003ccode\u003e@​ynachiket\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3444\"\u003eopenai/openai-agents-python#3444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix duplicated word in usaspending glossary example by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3445\"\u003eopenai/openai-agents-python#3445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: clean up CI jobs and update uv pin by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3400\"\u003eopenai/openai-agents-python#3400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: harden release tag workflow by \u003ca href=\"https://github.com/hintz-openai\"\u003e\u003ccode\u003e@​hintz-openai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3399\"\u003eopenai/openai-agents-python#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.3 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3417\"\u003eopenai/openai-agents-python#3417\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zhoufengen\"\u003e\u003ccode\u003e@​zhoufengen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3375\"\u003eopenai/openai-agents-python#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hintz-openai\"\u003e\u003ccode\u003e@​hintz-openai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3399\"\u003eopenai/openai-agents-python#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3410\"\u003eopenai/openai-agents-python#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ynachiket\"\u003e\u003ccode\u003e@​ynachiket\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3444\"\u003eopenai/openai-agents-python#3444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3445\"\u003eopenai/openai-agents-python#3445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianbravo-oai\"\u003e\u003ccode\u003e@​adrianbravo-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3451\"\u003eopenai/openai-agents-python#3451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.2...v0.17.3\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.2...v0.17.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3268\"\u003e#3268\u003c/a\u003e fix OpenAI Conversations reasoning persistence by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3352\"\u003eopenai/openai-agents-python#3352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid auto response for unknown realtime tools (ref: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3287\"\u003e#3287\u003c/a\u003e) by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3366\"\u003eopenai/openai-agents-python#3366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3354\"\u003e#3354\u003c/a\u003e interrupt tracing retry backoff on shutdown by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3355\"\u003eopenai/openai-agents-python#3355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3359\"\u003e#3359\u003c/a\u003e preserve local approval rejection reasons by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3360\"\u003eopenai/openai-agents-python#3360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3361\"\u003e#3361\u003c/a\u003e honor session settings in AsyncSQLiteSession by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3362\"\u003eopenai/openai-agents-python#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3310\"\u003e#3310\u003c/a\u003e avoid empty chat tool outputs by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3312\"\u003eopenai/openai-agents-python#3312\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/17f7caeaa33d97eee7152f9834af5e706b8f90e2\"\u003e\u003ccode\u003e17f7cae\u003c/code\u003e\u003c/a\u003e Release 0.17.3 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f6ba91b120b97e38a4cdb3e61b226cef348679eb\"\u003e\u003ccode\u003ef6ba91b\u003c/code\u003e\u003c/a\u003e Runtime handling updates (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/65774ce88d98b12fa3b0f5ede2b2f705a25e053d\"\u003e\u003ccode\u003e65774ce\u003c/code\u003e\u003c/a\u003e docs: fix duplicated word in usaspending glossary example (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/13d1815218251155dbf7fe9aa395e0db64b2d118\"\u003e\u003ccode\u003e13d1815\u003c/code\u003e\u003c/a\u003e docs: re-fix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3444\"\u003e#3444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/41fe113dd0623cbbe326996e536d570ded4179ba\"\u003e\u003ccode\u003e41fe113\u003c/code\u003e\u003c/a\u003e docs: fix LiteLLM API reference redirect (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3444\"\u003e#3444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4970fd6ce4fc1019a4b70787706ce35c1e0ea030\"\u003e\u003ccode\u003e4970fd6\u003c/code\u003e\u003c/a\u003e fix: keep mountpoint credentials out of sandbox commands (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3429\"\u003e#3429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4bd459e403ac826c87b17fef8ffcbdf42a70b09a\"\u003e\u003ccode\u003e4bd459e\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3363\"\u003e#3363\u003c/a\u003e honor short custom voice splitter chunks (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e37b3d266b4061109a03906882325807fc05e85f\"\u003e\u003ccode\u003ee37b3d2\u003c/code\u003e\u003c/a\u003e fix: normalize leading question marks in exposed port queries (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3424\"\u003e#3424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/94523f946eada821a3847af4a8a851071fb2a93d\"\u003e\u003ccode\u003e94523f9\u003c/code\u003e\u003c/a\u003e fix: reject relative sandbox workspace roots (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3422\"\u003e#3422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/cb0461d177ce1a931d24db05103a2d8b02f3cd36\"\u003e\u003ccode\u003ecb0461d\u003c/code\u003e\u003c/a\u003e fix: log exception when output guardrail raises instead of silently ignoring ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.10.4...v0.17.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/tryskian/polinko/pull/502","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryskian%2Fpolinko/issues/502","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/502/packages"}},{"old_version":"0.0.7","new_version":"0.17.2","update_type":"minor","path":"/openai-agents","pr_created_at":"2026-05-16T23:12:35.000Z","version_change":"0.0.7 → 0.17.2","issue":{"uuid":"4461602939","node_id":"PR_kwDORl2wQc7cSa99","number":34,"state":"closed","title":"Bump openai-agents from 0.0.7 to 0.17.2 in /openai-agents","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-23T23:12:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T23:12:35.000Z","updated_at":"2026-05-23T23:12:48.000Z","time_to_close":604812,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"openai-agents","old_version":"0.0.7","new_version":"0.17.2","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/openai-agents","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.0.7 to 0.17.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3268\"\u003e#3268\u003c/a\u003e fix OpenAI Conversations reasoning persistence by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3352\"\u003eopenai/openai-agents-python#3352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid auto response for unknown realtime tools (ref: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3287\"\u003e#3287\u003c/a\u003e) by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3366\"\u003eopenai/openai-agents-python#3366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3354\"\u003e#3354\u003c/a\u003e interrupt tracing retry backoff on shutdown by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3355\"\u003eopenai/openai-agents-python#3355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3359\"\u003e#3359\u003c/a\u003e preserve local approval rejection reasons by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3360\"\u003eopenai/openai-agents-python#3360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3361\"\u003e#3361\u003c/a\u003e honor session settings in AsyncSQLiteSession by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3362\"\u003eopenai/openai-agents-python#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3310\"\u003e#3310\u003c/a\u003e avoid empty chat tool outputs by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3312\"\u003eopenai/openai-agents-python#3312\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify max_delay for retries works by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3350\"\u003eopenai/openai-agents-python#3350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3351\"\u003eopenai/openai-agents-python#3351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: normalize memory docstring cross-references by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3370\"\u003eopenai/openai-agents-python#3370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document sandbox archive limits after \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3278\"\u003e#3278\u003c/a\u003e release by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3311\"\u003eopenai/openai-agents-python#3311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3371\"\u003eopenai/openai-agents-python#3371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.2 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3368\"\u003eopenai/openai-agents-python#3368\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.1...v0.17.2\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.1...v0.17.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eSandboxes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: include sandbox provider error details by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3326\"\u003eopenai/openai-agents-python#3326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3274\"\u003e#3274\u003c/a\u003e limit sandbox archive extraction by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3278\"\u003eopenai/openai-agents-python#3278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3273\"\u003e#3273\u003c/a\u003e validate git repo subpaths by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3276\"\u003eopenai/openai-agents-python#3276\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow empty GitRepo subpaths as repository root by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3299\"\u003eopenai/openai-agents-python#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: preserve GitRepo root subpath aliases by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3303\"\u003eopenai/openai-agents-python#3303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTracing\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: make tracing shutdown best-effort on process exit by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3343\"\u003eopenai/openai-agents-python#3343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep BatchTraceProcessor worker alive on exporter errors by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3216\"\u003eopenai/openai-agents-python#3216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard no-op tracing span IDs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3296\"\u003eopenai/openai-agents-python#3296\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSessions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3267\"\u003e#3267\u003c/a\u003e preserve required hosted tool IDs in OpenAI conversation sessions by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3341\"\u003eopenai/openai-agents-python#3341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3304\"\u003e#3304\u003c/a\u003e skip corrupt items during pop (sessions) by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3305\"\u003eopenai/openai-agents-python#3305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3306\"\u003e#3306\u003c/a\u003e track MongoDB metadata timestamps by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3307\"\u003eopenai/openai-agents-python#3307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: preserve created_at across writes (redis-session) by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3202\"\u003eopenai/openai-agents-python#3202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip corrupt docs in MongoDBSession.pop_item by \u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3247\"\u003eopenai/openai-agents-python#3247\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRealtime Agents\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3333\"\u003e#3333\u003c/a\u003e scope Realtime tool approvals by qualified key by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3340\"\u003eopenai/openai-agents-python#3340\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/55e4a850fce820a1816af0b413d03a39f2e5f817\"\u003e\u003ccode\u003e55e4a85\u003c/code\u003e\u003c/a\u003e Release 0.17.2 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3368\"\u003e#3368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5594fb464d45b3280c3395aeb071b9d77c611889\"\u003e\u003ccode\u003e5594fb4\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3371\"\u003e#3371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/64de1cb211bf23f25f7147983b8e2286da566e0c\"\u003e\u003ccode\u003e64de1cb\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3310\"\u003e#3310\u003c/a\u003e avoid empty chat tool outputs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3312\"\u003e#3312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1d3df7fa0418700201337fa38c94a82e8fc4872f\"\u003e\u003ccode\u003e1d3df7f\u003c/code\u003e\u003c/a\u003e docs: document sandbox archive limits after \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3278\"\u003e#3278\u003c/a\u003e release (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3311\"\u003e#3311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ae3263b8400b66ecf443720ce9bb2fa24d6cb571\"\u003e\u003ccode\u003eae3263b\u003c/code\u003e\u003c/a\u003e docs: normalize memory docstring cross-references (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3370\"\u003e#3370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e3c99d99641f53ab0d4b13ead6435f451985c5b6\"\u003e\u003ccode\u003ee3c99d9\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3361\"\u003e#3361\u003c/a\u003e honor session settings in AsyncSQLiteSession (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3362\"\u003e#3362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/b2bd8218c6bf15334cc18bce1fe6a54a4ac4ca76\"\u003e\u003ccode\u003eb2bd821\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3359\"\u003e#3359\u003c/a\u003e preserve local approval rejection reasons (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3360\"\u003e#3360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/8715a0585a5d9549c79c267f479f91831ef72241\"\u003e\u003ccode\u003e8715a05\u003c/code\u003e\u003c/a\u003e fix: avoid auto response for unknown realtime tools (ref: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3287\"\u003e#3287\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3366\"\u003e#3366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4a95659892eccf52013038de625c45090f825c3c\"\u003e\u003ccode\u003e4a95659\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3354\"\u003e#3354\u003c/a\u003e interrupt tracing retry backoff on shutdown (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3355\"\u003e#3355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5635fab9d36123d5bc85d8ae17d9f09b84c56697\"\u003e\u003ccode\u003e5635fab\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3268\"\u003e#3268\u003c/a\u003e fix OpenAI Conversations reasoning persistence (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3352\"\u003e#3352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.0.7...v0.17.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.0.7\u0026new-version=0.17.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/delega-dev/delega-examples/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/delega-dev%2Fdelega-examples/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"}},{"old_version":"0.15.1","new_version":"0.17.0","update_type":"minor","path":"/server","pr_created_at":"2026-05-10T22:07:49.000Z","version_change":"0.15.1 → 0.17.0","issue":{"uuid":"4416977439","node_id":"PR_kwDOSRS2eM7aDgyh","number":5,"state":"open","title":"build(deps): bump the backend-dependencies group in /server with 2 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-10T22:07:49.000Z","updated_at":"2026-05-10T22:08:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"backend-dependencies","update_count":2,"packages":[{"name":"openai-agents","old_version":"0.15.1","new_version":"0.17.0","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"pydantic","old_version":"2.13.3","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"}],"path":"/server","ecosystem":"pip"},"body":"Bumps the backend-dependencies group in /server with 2 updates: [openai-agents](https://github.com/openai/openai-agents-python) and [pydantic](https://github.com/pydantic/pydantic).\n\nUpdates `openai-agents` from 0.15.1 to 0.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003ch2\u003eKey Changes\u003c/h2\u003e\n\u003ch3\u003eRealtimeAgent's default is now gpt-realtime-2\u003c/h3\u003e\n\u003cp\u003eSince this version, the default model for RealtimeAgents is gpt-realtime-2: \u003ca href=\"https://developers.openai.com/api/docs/models/gpt-realtime-2\"\u003ehttps://developers.openai.com/api/docs/models/gpt-realtime-2\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eSandbox local source materialization change\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.Expand commentComment on line R24Resolved\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\r\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eTreat \u003ccode\u003eextra_path_grants\u003c/code\u003e as trusted application configuration. Do not populate grants from model output or other untrusted manifest input unless your application has already approved those host paths.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: default realtime sessions to gpt-realtime-2 by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3190\"\u003eopenai/openai-agents-python#3190\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3169\"\u003e#3169\u003c/a\u003e constrain local sandbox artifact sources to base dir by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3177\"\u003eopenai/openai-agents-python#3177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Responses context-management extra_args collision by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3185\"\u003eopenai/openai-agents-python#3185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 0.17.0 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3191\"\u003eopenai/openai-agents-python#3191\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eTreat \u003ccode\u003eextra_path_grants\u003c/code\u003e as trusted application configuration. Do not populate grants from model output or other untrusted manifest input unless your application has already approved those host paths.\u003c/p\u003e\n\u003ch3\u003e0.16.0\u003c/h3\u003e\n\u003cp\u003eIn this version, the SDK default model is now \u003ccode\u003egpt-5.4-mini\u003c/code\u003e instead of \u003ccode\u003egpt-4.1\u003c/code\u003e. This affects agents and runs that do not explicitly set a model. Because the new default is a GPT-5 model, implicit default model settings now include GPT-5 defaults such as \u003ccode\u003ereasoning.effort=\u0026quot;none\u0026quot;\u003c/code\u003e and \u003ccode\u003everbosity=\u0026quot;low\u0026quot;\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIf you need to keep the previous default model behavior, set a model explicitly on the agent or run config, or set the \u003ccode\u003eOPENAI_DEFAULT_MODEL\u003c/code\u003e environment variable:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eagent = Agent(name=\u0026quot;Assistant\u0026quot;, model=\u0026quot;gpt-4.1\u0026quot;)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRunner.run\u003c/code\u003e, \u003ccode\u003eRunner.run_sync\u003c/code\u003e, and \u003ccode\u003eRunner.run_streamed\u003c/code\u003e now accept \u003ccode\u003emax_turns=None\u003c/code\u003e to disable the turn limit.\u003c/li\u003e\n\u003cli\u003eSandbox workspace hydration now rejects tar archives with symlinks that point outside the archive root, including absolute symlink targets, across local, Docker, and provider-backed sandbox implementations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.15.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0fea7e83471b8ff6b87c784e99b4d19d84b4bc46\"\u003e\u003ccode\u003e0fea7e8\u003c/code\u003e\u003c/a\u003e Release 0.17.0 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0a76dd03cecde32a7223355328c3a3f273fd8b61\"\u003e\u003ccode\u003e0a76dd0\u003c/code\u003e\u003c/a\u003e docs: improve auto run for examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f47d486985e074ac6831bdef0711cd2b4fa8ae3b\"\u003e\u003ccode\u003ef47d486\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3169\"\u003e#3169\u003c/a\u003e constrain local sandbox artifact sources to base dir (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3177\"\u003e#3177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1660d306b579580a4e374cee57834e2b7feecab8\"\u003e\u003ccode\u003e1660d30\u003c/code\u003e\u003c/a\u003e feat: default realtime sessions to gpt-realtime-2 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ee36d4358499939b5cee5d8851b656a84d2112ee\"\u003e\u003ccode\u003eee36d43\u003c/code\u003e\u003c/a\u003e Fix Responses extra_args collision with omitted kwargs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3185\"\u003e#3185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a91f630f79e96cc345a1a84ddf28a861e6670b54\"\u003e\u003ccode\u003ea91f630\u003c/code\u003e\u003c/a\u003e fix: skip prerequisite-bound examples in auto runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/bd84b65258af0473b541ef6c6ccf2882288c2430\"\u003e\u003ccode\u003ebd84b65\u003c/code\u003e\u003c/a\u003e Release 0.16.1 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/28de3652d3ba39958d75813c5958fe5e30483b67\"\u003e\u003ccode\u003e28de365\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3168\"\u003e#3168\u003c/a\u003e validate MCP require_approval policies (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3179\"\u003e#3179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a67d95f58a94cb57accc70bc9b3151e6e3bfbdf4\"\u003e\u003ccode\u003ea67d95f\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3174\"\u003e#3174\u003c/a\u003e count valid encrypted session items for limits (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3175\"\u003e#3175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3a11cf52250616fd7fcf779d808762666507a4e8\"\u003e\u003ccode\u003e3a11cf5\u003c/code\u003e\u003c/a\u003e fix: reject non-object function tool input JSON (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3166\"\u003e#3166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.15.1...v0.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.3 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/shenqistart/circle/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenqistart%2Fcircle/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"0.14.6","new_version":"0.15.1","update_type":"minor","path":null,"pr_created_at":"2026-05-05T03:46:48.000Z","version_change":"0.14.6 → 0.15.1","issue":{"uuid":"4381365585","node_id":"PR_kwDOSNt2dc7YQRzP","number":2,"state":"closed","title":"build(deps): bump openai-agents from 0.14.6 to 0.15.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-12T06:52:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-05T03:46:48.000Z","updated_at":"2026-05-12T06:52:46.000Z","time_to_close":615956,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"openai-agents","old_version":"0.14.6","new_version":"0.15.1","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.14.6 to 0.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: expose Responses WebSocket keepalive options by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3080\"\u003eopenai/openai-agents-python#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: restore UnixLocal PTY terminal signal defaults by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3082\"\u003eopenai/openai-agents-python#3082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3074\"\u003e#3074\u003c/a\u003e restore SIGINT defaults for UnixLocal PTY children by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3075\"\u003eopenai/openai-agents-python#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add 0.15 changelog by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3058\"\u003eopenai/openai-agents-python#3058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3064\"\u003eopenai/openai-agents-python#3064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve quickstart documentation for Windows OS users by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3071\"\u003eopenai/openai-agents-python#3071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3072\"\u003eopenai/openai-agents-python#3072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: cover guardrail name fallback to function \u003cstrong\u003ename\u003c/strong\u003e by \u003ca href=\"https://github.com/Quratulain-bilal\"\u003e\u003ccode\u003e@​Quratulain-bilal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3073\"\u003eopenai/openai-agents-python#3073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: harden Dapr Redis integration fixture loading by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3078\"\u003eopenai/openai-agents-python#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.15.1 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3083\"\u003eopenai/openai-agents-python#3083\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3078\"\u003eopenai/openai-agents-python#3078\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003ch2\u003eKey Changes\u003c/h2\u003e\n\u003ch3\u003eBetter model refusal handling\u003c/h3\u003e\n\u003cp\u003eIn this version, model refusals are now surfaced explicitly as \u003ccode\u003eModelRefusalError\u003c/code\u003e instead of being treated as empty text output or, for structured outputs, causing the run loop to retry until \u003ccode\u003eMaxTurnsExceeded\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis affects code that previously expected a refusal-only model response to complete with \u003ccode\u003efinal_output == \u0026quot;\u0026quot;\u003c/code\u003e. To handle refusals without raising, provide a \u003ccode\u003emodel_refusal\u003c/code\u003e run error handler:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eresult = Runner.run_sync(\r\n    agent,\r\n    input,\r\n    error_handlers={\u0026quot;model_refusal\u0026quot;: lambda data: data.error.refusal},\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor structured-output agents, the handler can return a value matching the agent's output schema, and the SDK will validate it like other run error handler final outputs.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3055\"\u003e#3055\u003c/a\u003e surface model refusals during run resolution by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3057\"\u003eopenai/openai-agents-python#3057\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add missing space after period in MCPServerStdio docstring by \u003ca href=\"https://github.com/GopalGB\"\u003e\u003ccode\u003e@​GopalGB\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3053\"\u003eopenai/openai-agents-python#3053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/github-script from 8.0.0 to 9.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3059\"\u003eopenai/openai-agents-python#3059\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.15.0\u003c/h3\u003e\n\u003cp\u003eIn this version, model refusals are now surfaced explicitly as \u003ccode\u003eModelRefusalError\u003c/code\u003e instead of being treated as empty text output or, for structured outputs, causing the run loop to retry until \u003ccode\u003eMaxTurnsExceeded\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis affects code that previously expected a refusal-only model response to complete with \u003ccode\u003efinal_output == \u0026quot;\u0026quot;\u003c/code\u003e. To handle refusals without raising, provide a \u003ccode\u003emodel_refusal\u003c/code\u003e run error handler:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eresult = Runner.run_sync(\n    agent,\n    input,\n    error_handlers={\u0026quot;model_refusal\u0026quot;: lambda data: data.error.refusal},\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor structured-output agents, the handler can return a value matching the agent's output schema, and the SDK will validate it like other run error handler final outputs.\u003c/p\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ceb238fd1bd341c38c43ab191874f142515bb813\"\u003e\u003ccode\u003eceb238f\u003c/code\u003e\u003c/a\u003e Release 0.15.1 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/41c646d89862c59f536b3cdb7947bf104353ff8d\"\u003e\u003ccode\u003e41c646d\u003c/code\u003e\u003c/a\u003e fix: restore UnixLocal PTY terminal signal defaults (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3082\"\u003e#3082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4b2881c7c4d572f1f091e4530bb3af712f1f99a0\"\u003e\u003ccode\u003e4b2881c\u003c/code\u003e\u003c/a\u003e feat: expose Responses WebSocket keepalive options (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3080\"\u003e#3080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a47b7ea7eced7f88c830979b0caea47d260fafd5\"\u003e\u003ccode\u003ea47b7ea\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3074\"\u003e#3074\u003c/a\u003e restore SIGINT defaults for UnixLocal PTY children (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/42c30155181b1a9913d1c3a32befc4638ab9d062\"\u003e\u003ccode\u003e42c3015\u003c/code\u003e\u003c/a\u003e chore: harden Dapr Redis integration fixture loading (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ae224b4449c1831d2e44b03b2677845a89aefd0e\"\u003e\u003ccode\u003eae224b4\u003c/code\u003e\u003c/a\u003e test: cover guardrail name fallback to function \u003cstrong\u003ename\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3073\"\u003e#3073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/756fa431a7ecc896e26d6556b40f761830cb7cf6\"\u003e\u003ccode\u003e756fa43\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/841f72f296d15aa28f11f9c167506181b13af5e1\"\u003e\u003ccode\u003e841f72f\u003c/code\u003e\u003c/a\u003e docs: improve quickstart documentation for Windows OS users (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/611d080ff048134fb2e5e40baf56b8a8cc69592e\"\u003e\u003ccode\u003e611d080\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/48d7e9cae7190e579c518fd571bdd317a1711e09\"\u003e\u003ccode\u003e48d7e9c\u003c/code\u003e\u003c/a\u003e docs: add 0.15 changelog (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.6...v0.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=uv\u0026previous-version=0.14.6\u0026new-version=0.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/pyama86/owncall/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyama86%2Fowncall/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"}},{"old_version":"0.7.0","new_version":"0.17.4","update_type":"minor","path":null,"pr_created_at":"2026-05-04T18:39:08.000Z","version_change":"0.7.0 → 0.17.4","issue":{"uuid":"4378796075","node_id":"PR_kwDOKBSOF87YH069","number":89,"state":"closed","title":"chore(deps): bump openai-agents from 0.7.0 to 0.17.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-26T21:33:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T18:39:08.000Z","updated_at":"2026-05-26T21:33:32.000Z","time_to_close":1911262,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.7.0","new_version":"0.17.4","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.7.0 to 0.17.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support Realtime custom voice objects by \u003ca href=\"https://github.com/lionel-oai\"\u003e\u003ccode\u003e@​lionel-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3473\"\u003eopenai/openai-agents-python#3473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3461\"\u003eopenai/openai-agents-python#3461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: apply hardened http client default to MCP SSE transport by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3466\"\u003eopenai/openai-agents-python#3466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use non-None value for output in FunctionSpanData by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3483\"\u003eopenai/openai-agents-python#3483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: redact invalid JSON payload in ModelBehaviorError data by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3485\"\u003eopenai/openai-agents-python#3485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export more tracing related functions \u0026amp; types from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3489\"\u003eopenai/openai-agents-python#3489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem from agents by \u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3490\"\u003eopenai/openai-agents-python#3490\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 0.17.4 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3505\"\u003eopenai/openai-agents-python#3505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmotgi1227\"\u003e\u003ccode\u003e@​rmotgi1227\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3475\"\u003eopenai/openai-agents-python#3475\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.17.3...v0.17.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: keep mountpoint credentials out of sandbox commands by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3429\"\u003eopenai/openai-agents-python#3429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: unify memory optional dependency import errors by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3389\"\u003eopenai/openai-agents-python#3389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard None text in text_message_output and add output guardrail count to RunErrorDetails by \u003ca href=\"https://github.com/zhoufengen\"\u003e\u003ccode\u003e@​zhoufengen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3375\"\u003eopenai/openai-agents-python#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid mutating FunctionTool params_json_schema by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3382\"\u003eopenai/openai-agents-python#3382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: avoid mutating codex output schema input by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3385\"\u003eopenai/openai-agents-python#3385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3357\"\u003e#3357\u003c/a\u003e output schema names for Literal types by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3358\"\u003eopenai/openai-agents-python#3358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip wait_for_status when Vercel sandbox is in a terminal state by \u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3410\"\u003eopenai/openai-agents-python#3410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: filter hosted_tool_call types in remove_all_tools handoff filter by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3386\"\u003eopenai/openai-agents-python#3386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: guard None text in ItemHelpers.extract_last_content by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3394\"\u003eopenai/openai-agents-python#3394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: log exception when output guardrail raises instead of silently ignoring by \u003ca href=\"https://github.com/cty-ut\"\u003e\u003ccode\u003e@​cty-ut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3411\"\u003eopenai/openai-agents-python#3411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: reject relative sandbox workspace roots by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3422\"\u003eopenai/openai-agents-python#3422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: normalize leading question marks in exposed port queries by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3424\"\u003eopenai/openai-agents-python#3424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3363\"\u003e#3363\u003c/a\u003e honor short custom voice splitter chunks by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3364\"\u003eopenai/openai-agents-python#3364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: runtime handling updates by \u003ca href=\"https://github.com/adrianbravo-oai\"\u003e\u003ccode\u003e@​adrianbravo-oai\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3451\"\u003eopenai/openai-agents-python#3451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add SDK review guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3376\"\u003eopenai/openai-agents-python#3376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: mark Agent.instructions as optional by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3384\"\u003eopenai/openai-agents-python#3384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: translate all pages using new settings by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3392\"\u003eopenai/openai-agents-python#3392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document auto_previous_response_id by \u003ca href=\"https://github.com/ioleksiuk\"\u003e\u003ccode\u003e@​ioleksiuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3383\"\u003eopenai/openai-agents-python#3383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix LiteLLM API reference redirect by \u003ca href=\"https://github.com/ynachiket\"\u003e\u003ccode\u003e@​ynachiket\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3444\"\u003eopenai/openai-agents-python#3444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix duplicated word in usaspending glossary example by \u003ca href=\"https://github.com/LeSingh1\"\u003e\u003ccode\u003e@​LeSingh1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3445\"\u003eopenai/openai-agents-python#3445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: clean up CI jobs and update uv pin by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3400\"\u003eopenai/openai-agents-python#3400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: harden release tag workflow by \u003ca href=\"https://github.com/hintz-openai\"\u003e\u003ccode\u003e@​hintz-openai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3399\"\u003eopenai/openai-agents-python#3399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.17.3 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3417\"\u003eopenai/openai-agents-python#3417\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.17.0\u003c/h3\u003e\n\u003cp\u003eIn this version, sandbox local source materialization keeps \u003ccode\u003eLocalFile.src\u003c/code\u003e and \u003ccode\u003eLocalDir.src\u003c/code\u003e within the materialization \u003ccode\u003ebase_dir\u003c/code\u003e unless the source path is covered by \u003ccode\u003eManifest.extra_path_grants\u003c/code\u003e. The \u003ccode\u003ebase_dir\u003c/code\u003e is the SDK process current working directory when the manifest is applied; relative local sources are resolved from that directory, while absolute local sources must already be inside it or under an explicit grant. This closes a local artifact boundary issue, but it can affect applications that intentionally copy trusted host files or directories from outside that base directory into a sandbox workspace.\u003c/p\u003e\n\u003cp\u003eTo migrate, grant trusted host roots at the manifest level with \u003ccode\u003eSandboxPathGrant\u003c/code\u003e, preferably as read-only when the sandbox only needs to read those files:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom pathlib import Path\n\u003cp\u003efrom agents.sandbox import Manifest, SandboxPathGrant\nfrom agents.sandbox.entries import Dir, LocalDir\u003c/p\u003e\n\u003ch1\u003eThis is an absolute host path outside the SDK process base_dir.\u003c/h1\u003e\n\u003cp\u003eTRUSTED_DOCS_ROOT = Path(\u0026quot;/opt/my-app/docs\u0026quot;)\u003c/p\u003e\n\u003cp\u003emanifest = Manifest(\nextra_path_grants=(\n# This host root is outside the SDK process base_dir, so the manifest must grant it.\nSandboxPathGrant(path=str(TRUSTED_DOCS_ROOT), read_only=True),\n),\nentries={\n# No grant is needed for local sources that stay under the SDK process base_dir.\n\u0026quot;fixtures\u0026quot;: LocalDir(src=Path(\u0026quot;fixtures\u0026quot;), description=\u0026quot;Local test fixtures.\u0026quot;),\n# This entry reads from the granted host root and copies it into the sandbox workspace.\n\u0026quot;docs\u0026quot;: LocalDir(src=TRUSTED_DOCS_ROOT, description=\u0026quot;Trusted local documents.\u0026quot;),\n# Dir creates a sandbox workspace directory; it does not read from the host filesystem.\n\u0026quot;output\u0026quot;: Dir(description=\u0026quot;Generated artifacts.\u0026quot;),\n},\n)\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/6d5b888f6f57b8356398bea883b45172fec54b95\"\u003e\u003ccode\u003e6d5b888\u003c/code\u003e\u003c/a\u003e Release 0.17.4 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3505\"\u003e#3505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a92ea4c8e4c2bff05b81041d0d1f3df41360bfb\"\u003e\u003ccode\u003e9a92ea4\u003c/code\u003e\u003c/a\u003e Support Realtime custom voice objects (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fedc809afd5abb492df21c8e6bf365653b06c21f\"\u003e\u003ccode\u003efedc809\u003c/code\u003e\u003c/a\u003e fix: export MCPListToolsItem, ToolSearchCallItem, and ToolSearchOutputItem fr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/573530febb67ff561d02e57cce639e792d4d716e\"\u003e\u003ccode\u003e573530f\u003c/code\u003e\u003c/a\u003e fix: export more tracing related functions \u0026amp; types from agents (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3489\"\u003e#3489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/813a00324e8165eacefd3ec4760d27b1d65d2a46\"\u003e\u003ccode\u003e813a003\u003c/code\u003e\u003c/a\u003e fix: redact invalid JSON payload in ModelBehaviorError data (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3485\"\u003e#3485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/eda7b51aeae663204dc3b8a1431688fa5fc50620\"\u003e\u003ccode\u003eeda7b51\u003c/code\u003e\u003c/a\u003e fix: add missing entries to span \u003cstrong\u003eslots\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3483\"\u003e#3483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/45effb4b7d7de1226ebba7ba304bccfcf0a37fdf\"\u003e\u003ccode\u003e45effb4\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3459\"\u003e#3459\u003c/a\u003e add opt-in recovery for missing function tools (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3461\"\u003e#3461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9303389d8452995b18ba151614489fb93eaefad5\"\u003e\u003ccode\u003e9303389\u003c/code\u003e\u003c/a\u003e fix: use non-None value for output in FunctionSpanData (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3475\"\u003e#3475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9514473c234c8419b812b658157a5c3d4341713f\"\u003e\u003ccode\u003e9514473\u003c/code\u003e\u003c/a\u003e fix: apply hardened http client default to MCP SSE transport (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3466\"\u003e#3466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/445ad2273c2b527fc98dd8c1e53b3108d6bd93ea\"\u003e\u003ccode\u003e445ad22\u003c/code\u003e\u003c/a\u003e docs: add SECURITY.md in the same way with openai-agents-js repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.7.0...v0.17.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/performlikemj/sautai/pull/89","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/performlikemj%2Fsautai/issues/89","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/89/packages"}},{"old_version":"0.10.4","new_version":"0.15.1","update_type":"minor","path":null,"pr_created_at":"2026-05-04T16:54:30.000Z","version_change":"0.10.4 → 0.15.1","issue":{"uuid":"4378190840","node_id":"PR_kwDORT9AZc7YF1O2","number":378,"state":"closed","title":"build(deps): bump openai-agents from 0.10.4 to 0.15.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-06T04:22:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T16:54:30.000Z","updated_at":"2026-05-06T04:22:59.000Z","time_to_close":127701,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"openai-agents","old_version":"0.10.4","new_version":"0.15.1","repository_url":"https://github.com/openai/openai-agents-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.10.4 to 0.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: expose Responses WebSocket keepalive options by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3080\"\u003eopenai/openai-agents-python#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: restore UnixLocal PTY terminal signal defaults by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3082\"\u003eopenai/openai-agents-python#3082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3074\"\u003e#3074\u003c/a\u003e restore SIGINT defaults for UnixLocal PTY children by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3075\"\u003eopenai/openai-agents-python#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add 0.15 changelog by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3058\"\u003eopenai/openai-agents-python#3058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3064\"\u003eopenai/openai-agents-python#3064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: improve quickstart documentation for Windows OS users by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3071\"\u003eopenai/openai-agents-python#3071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3072\"\u003eopenai/openai-agents-python#3072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: cover guardrail name fallback to function \u003cstrong\u003ename\u003c/strong\u003e by \u003ca href=\"https://github.com/Quratulain-bilal\"\u003e\u003ccode\u003e@​Quratulain-bilal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3073\"\u003eopenai/openai-agents-python#3073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: harden Dapr Redis integration fixture loading by \u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3078\"\u003eopenai/openai-agents-python#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.15.1 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3083\"\u003eopenai/openai-agents-python#3083\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Aphroq\"\u003e\u003ccode\u003e@​Aphroq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3078\"\u003eopenai/openai-agents-python#3078\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.15.0...v0.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003ch2\u003eKey Changes\u003c/h2\u003e\n\u003ch3\u003eBetter model refusal handling\u003c/h3\u003e\n\u003cp\u003eIn this version, model refusals are now surfaced explicitly as \u003ccode\u003eModelRefusalError\u003c/code\u003e instead of being treated as empty text output or, for structured outputs, causing the run loop to retry until \u003ccode\u003eMaxTurnsExceeded\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis affects code that previously expected a refusal-only model response to complete with \u003ccode\u003efinal_output == \u0026quot;\u0026quot;\u003c/code\u003e. To handle refusals without raising, provide a \u003ccode\u003emodel_refusal\u003c/code\u003e run error handler:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eresult = Runner.run_sync(\r\n    agent,\r\n    input,\r\n    error_handlers={\u0026quot;model_refusal\u0026quot;: lambda data: data.error.refusal},\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor structured-output agents, the handler can return a value matching the agent's output schema, and the SDK will validate it like other run error handler final outputs.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3055\"\u003e#3055\u003c/a\u003e surface model refusals during run resolution by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3057\"\u003eopenai/openai-agents-python#3057\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add missing space after period in MCPServerStdio docstring by \u003ca href=\"https://github.com/GopalGB\"\u003e\u003ccode\u003e@​GopalGB\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3053\"\u003eopenai/openai-agents-python#3053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/github-script from 8.0.0 to 9.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3059\"\u003eopenai/openai-agents-python#3059\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.15.0\u003c/h3\u003e\n\u003cp\u003eIn this version, model refusals are now surfaced explicitly as \u003ccode\u003eModelRefusalError\u003c/code\u003e instead of being treated as empty text output or, for structured outputs, causing the run loop to retry until \u003ccode\u003eMaxTurnsExceeded\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis affects code that previously expected a refusal-only model response to complete with \u003ccode\u003efinal_output == \u0026quot;\u0026quot;\u003c/code\u003e. To handle refusals without raising, provide a \u003ccode\u003emodel_refusal\u003c/code\u003e run error handler:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eresult = Runner.run_sync(\n    agent,\n    input,\n    error_handlers={\u0026quot;model_refusal\u0026quot;: lambda data: data.error.refusal},\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor structured-output agents, the handler can return a value matching the agent's output schema, and the SDK will validate it like other run error handler final outputs.\u003c/p\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ceb238fd1bd341c38c43ab191874f142515bb813\"\u003e\u003ccode\u003eceb238f\u003c/code\u003e\u003c/a\u003e Release 0.15.1 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/41c646d89862c59f536b3cdb7947bf104353ff8d\"\u003e\u003ccode\u003e41c646d\u003c/code\u003e\u003c/a\u003e fix: restore UnixLocal PTY terminal signal defaults (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3082\"\u003e#3082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/4b2881c7c4d572f1f091e4530bb3af712f1f99a0\"\u003e\u003ccode\u003e4b2881c\u003c/code\u003e\u003c/a\u003e feat: expose Responses WebSocket keepalive options (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3080\"\u003e#3080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/a47b7ea7eced7f88c830979b0caea47d260fafd5\"\u003e\u003ccode\u003ea47b7ea\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3074\"\u003e#3074\u003c/a\u003e restore SIGINT defaults for UnixLocal PTY children (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/42c30155181b1a9913d1c3a32befc4638ab9d062\"\u003e\u003ccode\u003e42c3015\u003c/code\u003e\u003c/a\u003e chore: harden Dapr Redis integration fixture loading (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/ae224b4449c1831d2e44b03b2677845a89aefd0e\"\u003e\u003ccode\u003eae224b4\u003c/code\u003e\u003c/a\u003e test: cover guardrail name fallback to function \u003cstrong\u003ename\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3073\"\u003e#3073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/756fa431a7ecc896e26d6556b40f761830cb7cf6\"\u003e\u003ccode\u003e756fa43\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/841f72f296d15aa28f11f9c167506181b13af5e1\"\u003e\u003ccode\u003e841f72f\u003c/code\u003e\u003c/a\u003e docs: improve quickstart documentation for Windows OS users (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/611d080ff048134fb2e5e40baf56b8a8cc69592e\"\u003e\u003ccode\u003e611d080\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/48d7e9cae7190e579c518fd571bdd317a1711e09\"\u003e\u003ccode\u003e48d7e9c\u003c/code\u003e\u003c/a\u003e docs: add 0.15 changelog (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.10.4...v0.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.10.4\u0026new-version=0.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/tryskian/polinko/pull/378","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryskian%2Fpolinko/issues/378","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/378/packages"}},{"old_version":"0.13.6","new_version":"0.14.6","update_type":"minor","path":"/addons/formula-chat/api","pr_created_at":"2026-04-26T06:06:10.000Z","version_change":"0.13.6 → 0.14.6","issue":{"uuid":"4330167484","node_id":"PR_kwDORzsKKM7VsC0v","number":99,"state":"open","title":"chore(deps): bump openai-agents from 0.13.6 to 0.14.6 in /addons/formula-chat/api","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-26T06:06:10.000Z","updated_at":"2026-04-26T06:09:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.13.6","new_version":"0.14.6","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/addons/formula-chat/api","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.13.6 to 0.14.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: update examples and defaults to GPT-5.5 by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3016\"\u003eopenai/openai-agents-python#3016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: relax websockets upper bound from \u0026lt;16 to \u0026lt;17 by \u003ca href=\"https://github.com/mathisobadia\"\u003e\u003ccode\u003e@​mathisobadia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3013\"\u003eopenai/openai-agents-python#3013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: harden uv dependency resolution by \u003ca href=\"https://github.com/mcgrew-oai\"\u003e\u003ccode\u003e@​mcgrew-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3014\"\u003eopenai/openai-agents-python#3014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3021\"\u003eopenai/openai-agents-python#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add MongoDB session documentation by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3015\"\u003eopenai/openai-agents-python#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3023\"\u003eopenai/openai-agents-python#3023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.6 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3022\"\u003eopenai/openai-agents-python#3022\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mcgrew-oai\"\u003e\u003ccode\u003e@​mcgrew-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3014\"\u003eopenai/openai-agents-python#3014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mathisobadia\"\u003e\u003ccode\u003e@​mathisobadia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3013\"\u003eopenai/openai-agents-python#3013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.5...v0.14.6\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.5...v0.14.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3001\"\u003e#3001\u003c/a\u003e add Modal sandbox idle timeout option by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3005\"\u003eopenai/openai-agents-python#3005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3004\"\u003e#3004\u003c/a\u003e serve HITL resume tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3006\"\u003eopenai/openai-agents-python#3006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: backfill streamed terminal output by \u003ca href=\"https://github.com/ankitphogat\"\u003e\u003ccode\u003e@​ankitphogat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3000\"\u003eopenai/openai-agents-python#3000\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify lazy skill source host paths by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2998\"\u003eopenai/openai-agents-python#2998\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2999\"\u003eopenai/openai-agents-python#2999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.5 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3007\"\u003eopenai/openai-agents-python#3007\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankitphogat\"\u003e\u003ccode\u003e@​ankitphogat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3000\"\u003eopenai/openai-agents-python#3000\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.4...v0.14.5\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.4...v0.14.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add BoxMount support by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2988\"\u003eopenai/openai-agents-python#2988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: ignore relative snapshot base overrides by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2976\"\u003eopenai/openai-agents-python#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: share sandbox ephemeral mount lifecycle by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2986\"\u003eopenai/openai-agents-python#2986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: share sandbox tar exclude arg generation by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2987\"\u003eopenai/openai-agents-python#2987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: extract sandbox session helper operations by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2985\"\u003eopenai/openai-agents-python#2985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: remove duplicate word in voice interruptions section by \u003ca href=\"https://github.com/abhicris\"\u003e\u003ccode\u003e@​abhicris\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2981\"\u003eopenai/openai-agents-python#2981\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a207b6938699d87d2d17dd67dd628ca3af0232d\"\u003e\u003ccode\u003e9a207b6\u003c/code\u003e\u003c/a\u003e Release 0.14.6 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3022\"\u003e#3022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9af6ad111cab2defd5ef76404d575c35067af8de\"\u003e\u003ccode\u003e9af6ad1\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3023\"\u003e#3023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1821bf8094a21fee53c4e48f9346943c4a49dc5d\"\u003e\u003ccode\u003e1821bf8\u003c/code\u003e\u003c/a\u003e docs: add MongoDB session documentation (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3015\"\u003e#3015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/071e2b68f6b73bc96badfdee92e862cd41427eac\"\u003e\u003ccode\u003e071e2b6\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3021\"\u003e#3021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c88f339d32f2c1fc22ab5c71b0c86328379b6881\"\u003e\u003ccode\u003ec88f339\u003c/code\u003e\u003c/a\u003e Update examples and defaults to GPT-5.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3016\"\u003e#3016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5ffc1ecee444157447eca830275ff347adaa8c16\"\u003e\u003ccode\u003e5ffc1ec\u003c/code\u003e\u003c/a\u003e relax websockets upper bound from \u0026lt;16 to \u0026lt;17 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c2cb03146163e650518f9ed7d9a293352620881b\"\u003e\u003ccode\u003ec2cb031\u003c/code\u003e\u003c/a\u003e chore: harden uv dependency resolution (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3014\"\u003e#3014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fe3a5e6c271839107be2e554f96438436787331c\"\u003e\u003ccode\u003efe3a5e6\u003c/code\u003e\u003c/a\u003e Release 0.14.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3007\"\u003e#3007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/16e040929b76058e2776068eded0df40c4887445\"\u003e\u003ccode\u003e16e0409\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3004\"\u003e#3004\u003c/a\u003e serve HITL resume tool outputs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5be06a16a9aba93adff8539cde4a7a9519998a51\"\u003e\u003ccode\u003e5be06a1\u003c/code\u003e\u003c/a\u003e feat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3001\"\u003e#3001\u003c/a\u003e add Modal sandbox idle timeout option (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.6...v0.14.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.13.6\u0026new-version=0.14.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/HARISHMARAN/Harry-s-F1-data/pull/99","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HARISHMARAN%2FHarry-s-F1-data/issues/99","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/99/packages"}},{"old_version":"0.0.7","new_version":"0.14.6","update_type":"minor","path":"/openai-agents","pr_created_at":"2026-04-25T23:12:39.000Z","version_change":"0.0.7 → 0.14.6","issue":{"uuid":"4329474464","node_id":"PR_kwDORl2wQc7Vp9zt","number":27,"state":"closed","title":"Bump openai-agents from 0.0.7 to 0.14.6 in /openai-agents","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-02T23:12:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-25T23:12:39.000Z","updated_at":"2026-05-02T23:12:50.000Z","time_to_close":604809,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"openai-agents","old_version":"0.0.7","new_version":"0.14.6","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/openai-agents","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.0.7 to 0.14.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: update examples and defaults to GPT-5.5 by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3016\"\u003eopenai/openai-agents-python#3016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: relax websockets upper bound from \u0026lt;16 to \u0026lt;17 by \u003ca href=\"https://github.com/mathisobadia\"\u003e\u003ccode\u003e@​mathisobadia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3013\"\u003eopenai/openai-agents-python#3013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: harden uv dependency resolution by \u003ca href=\"https://github.com/mcgrew-oai\"\u003e\u003ccode\u003e@​mcgrew-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3014\"\u003eopenai/openai-agents-python#3014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3021\"\u003eopenai/openai-agents-python#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add MongoDB session documentation by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3015\"\u003eopenai/openai-agents-python#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3023\"\u003eopenai/openai-agents-python#3023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.6 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3022\"\u003eopenai/openai-agents-python#3022\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mcgrew-oai\"\u003e\u003ccode\u003e@​mcgrew-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3014\"\u003eopenai/openai-agents-python#3014\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mathisobadia\"\u003e\u003ccode\u003e@​mathisobadia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3013\"\u003eopenai/openai-agents-python#3013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.5...v0.14.6\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.5...v0.14.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3001\"\u003e#3001\u003c/a\u003e add Modal sandbox idle timeout option by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3005\"\u003eopenai/openai-agents-python#3005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3004\"\u003e#3004\u003c/a\u003e serve HITL resume tool outputs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3006\"\u003eopenai/openai-agents-python#3006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: backfill streamed terminal output by \u003ca href=\"https://github.com/ankitphogat\"\u003e\u003ccode\u003e@​ankitphogat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3000\"\u003eopenai/openai-agents-python#3000\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify lazy skill source host paths by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2998\"\u003eopenai/openai-agents-python#2998\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2999\"\u003eopenai/openai-agents-python#2999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.5 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3007\"\u003eopenai/openai-agents-python#3007\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankitphogat\"\u003e\u003ccode\u003e@​ankitphogat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/3000\"\u003eopenai/openai-agents-python#3000\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.4...v0.14.5\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.4...v0.14.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add BoxMount support by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2988\"\u003eopenai/openai-agents-python#2988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: ignore relative snapshot base overrides by \u003ca href=\"https://github.com/matthewflint\"\u003e\u003ccode\u003e@​matthewflint\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2976\"\u003eopenai/openai-agents-python#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: share sandbox ephemeral mount lifecycle by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2986\"\u003eopenai/openai-agents-python#2986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: share sandbox tar exclude arg generation by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2987\"\u003eopenai/openai-agents-python#2987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: extract sandbox session helper operations by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2985\"\u003eopenai/openai-agents-python#2985\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: remove duplicate word in voice interruptions section by \u003ca href=\"https://github.com/abhicris\"\u003e\u003ccode\u003e@​abhicris\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2981\"\u003eopenai/openai-agents-python#2981\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9a207b6938699d87d2d17dd67dd628ca3af0232d\"\u003e\u003ccode\u003e9a207b6\u003c/code\u003e\u003c/a\u003e Release 0.14.6 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3022\"\u003e#3022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/9af6ad111cab2defd5ef76404d575c35067af8de\"\u003e\u003ccode\u003e9af6ad1\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3023\"\u003e#3023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1821bf8094a21fee53c4e48f9346943c4a49dc5d\"\u003e\u003ccode\u003e1821bf8\u003c/code\u003e\u003c/a\u003e docs: add MongoDB session documentation (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3015\"\u003e#3015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/071e2b68f6b73bc96badfdee92e862cd41427eac\"\u003e\u003ccode\u003e071e2b6\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3021\"\u003e#3021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c88f339d32f2c1fc22ab5c71b0c86328379b6881\"\u003e\u003ccode\u003ec88f339\u003c/code\u003e\u003c/a\u003e Update examples and defaults to GPT-5.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3016\"\u003e#3016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5ffc1ecee444157447eca830275ff347adaa8c16\"\u003e\u003ccode\u003e5ffc1ec\u003c/code\u003e\u003c/a\u003e relax websockets upper bound from \u0026lt;16 to \u0026lt;17 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c2cb03146163e650518f9ed7d9a293352620881b\"\u003e\u003ccode\u003ec2cb031\u003c/code\u003e\u003c/a\u003e chore: harden uv dependency resolution (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3014\"\u003e#3014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fe3a5e6c271839107be2e554f96438436787331c\"\u003e\u003ccode\u003efe3a5e6\u003c/code\u003e\u003c/a\u003e Release 0.14.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3007\"\u003e#3007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/16e040929b76058e2776068eded0df40c4887445\"\u003e\u003ccode\u003e16e0409\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3004\"\u003e#3004\u003c/a\u003e serve HITL resume tool outputs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3006\"\u003e#3006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5be06a16a9aba93adff8539cde4a7a9519998a51\"\u003e\u003ccode\u003e5be06a1\u003c/code\u003e\u003c/a\u003e feat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3001\"\u003e#3001\u003c/a\u003e add Modal sandbox idle timeout option (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.0.7...v0.14.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.0.7\u0026new-version=0.14.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/delega-dev/delega-examples/pull/27","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/delega-dev%2Fdelega-examples/issues/27","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/27/packages"}},{"old_version":"0.13.6","new_version":"0.14.1","update_type":"minor","path":"/apps/orchestrator","pr_created_at":"2026-04-23T03:09:26.000Z","version_change":"0.13.6 → 0.14.1","issue":{"uuid":"4313214957","node_id":"PR_kwDOR7dI1c7U1b4j","number":199,"state":"closed","title":"chore(deps): bump openai-agents from 0.13.6 to 0.14.1 in /apps/orchestrator","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T03:15:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T03:09:26.000Z","updated_at":"2026-04-27T03:15:31.000Z","time_to_close":345963,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.13.6","new_version":"0.14.1","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/apps/orchestrator","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.13.6 to 0.14.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: sanitize OpenAI tracing export payloads by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2896\"\u003eopenai/openai-agents-python#2896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2873\"\u003e#2873\u003c/a\u003e preserve computer driver compatibility for modifier keys by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2877\"\u003eopenai/openai-agents-python#2877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2151\"\u003e#2151\u003c/a\u003e shield server-managed handoffs from unsupported history rewrites by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2747\"\u003eopenai/openai-agents-python#2747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: stop streamed tool execution after known input guardrail tripwire by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2688\"\u003eopenai/openai-agents-python#2688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2891\"\u003eopenai/openai-agents-python#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: align translated sandbox nav and refresh generated refs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2892\"\u003eopenai/openai-agents-python#2892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify ToolContext availability in function-tool lifecycle hooks by \u003ca href=\"https://github.com/HuxleyHu98\"\u003e\u003ccode\u003e@​HuxleyHu98\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2687\"\u003eopenai/openai-agents-python#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2893\"\u003eopenai/openai-agents-python#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add sandbox auto-label mapping by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2894\"\u003eopenai/openai-agents-python#2894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.1 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2895\"\u003eopenai/openai-agents-python#2895\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HuxleyHu98\"\u003e\u003ccode\u003e@​HuxleyHu98\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2687\"\u003eopenai/openai-agents-python#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2896\"\u003eopenai/openai-agents-python#2896\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.0...v0.14.1\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.0...v0.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eSandbox Agents\u003c/h3\u003e\n\u003cp\u003eThis release adds \u003cstrong\u003eSandbox Agents\u003c/strong\u003e, a beta SDK surface for running agents with a persistent, isolated workspace. Sandbox agents keep the normal \u003ccode\u003eAgent\u003c/code\u003e and \u003ccode\u003eRunner\u003c/code\u003e flow, but add workspace manifests, sandbox-native capabilities, sandbox clients, snapshots, and resume support so agents can work over real files, run commands, edit repositories, generate artifacts, and continue work across runs.\u003c/p\u003e\n\u003cp\u003eKey pieces:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSandboxAgent\u003c/code\u003e: an \u003ccode\u003eAgent\u003c/code\u003e with sandbox defaults such as \u003ccode\u003edefault_manifest\u003c/code\u003e, sandbox instructions, capabilities, and \u003ccode\u003erun_as\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eManifest\u003c/code\u003e: a fresh-workspace contract for files, directories, local files, local directories, Git repos, environment, users, groups, and mounts.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSandboxRunConfig\u003c/code\u003e: per-run sandbox wiring for client creation, live session injection, serialized session resume, manifest overrides, snapshots, and materialization concurrency limits.\u003c/li\u003e\n\u003cli\u003eBuilt-in capabilities for shell access, filesystem editing and image inspection, skills, memory, and compaction.\u003c/li\u003e\n\u003cli\u003eWorkspace snapshots and serialized sandbox session state for reconnecting to existing work or seeding a fresh sandbox from saved contents.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSandbox clients and hosted providers\u003c/h3\u003e\n\u003cp\u003eSandbox agents now support local, containerized, and hosted execution backends:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e for fast local development.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDockerSandboxClient\u003c/code\u003e for container isolation and image parity.\u003c/li\u003e\n\u003cli\u003eHosted sandbox clients for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe release also adds provider-specific examples and mount strategies for common storage backends, including S3, Cloudflare R2, Google Cloud Storage, Azure Blob Storage, and S3 Files where supported by the selected backend.\u003c/p\u003e\n\u003ch3\u003eSandbox memory\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3dffa4ba9351ee38b964af43b50a2fe70f1a89f6\"\u003e\u003ccode\u003e3dffa4b\u003c/code\u003e\u003c/a\u003e Release 0.14.1 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/2cef83b4777524bf7d44a0afee0d472adfb50e9a\"\u003e\u003ccode\u003e2cef83b\u003c/code\u003e\u003c/a\u003e fix: sanitize OpenAI tracing export payloads (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2896\"\u003e#2896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0a100fb1e409ba034854aafd464a825a86df8a38\"\u003e\u003ccode\u003e0a100fb\u003c/code\u003e\u003c/a\u003e ci: add sandbox auto-label mapping (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fa049a26fb1c6542653ab886965779d5fb31773b\"\u003e\u003ccode\u003efa049a2\u003c/code\u003e\u003c/a\u003e fix: stop streamed tool execution after known input guardrail tripwire (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2688\"\u003e#2688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/901348023d9e26ac4e5565e0d86367d3ac40fed5\"\u003e\u003ccode\u003e9013480\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2873\"\u003e#2873\u003c/a\u003e preserve computer driver compatibility for modifier keys (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2877\"\u003e#2877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/83b38333826b9cd34abd767703e0a1b9eea46105\"\u003e\u003ccode\u003e83b3833\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2151\"\u003e#2151\u003c/a\u003e shield server-managed handoffs from unsupported history rewrites (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/5d05d5d5d27067692fc1114b56c9dd849ce08015\"\u003e\u003ccode\u003e5d05d5d\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2893\"\u003e#2893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/bd871cddb2cb76e5707677c0e385d094c9a1a7a6\"\u003e\u003ccode\u003ebd871cd\u003c/code\u003e\u003c/a\u003e docs: clarify ToolContext availability in function-tool lifecycle hooks (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2687\"\u003e#2687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/489221155b2360b8f16b5fca394f59bc63ac355c\"\u003e\u003ccode\u003e4892211\u003c/code\u003e\u003c/a\u003e docs: align translated sandbox nav and refresh generated refs (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2892\"\u003e#2892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e3366670ad0cb88cd778a51ad91a45e87e6d8227\"\u003e\u003ccode\u003ee336667\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.6...v0.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.13.6\u0026new-version=0.14.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/xiaojiou176-open/OpenVibeCoding/pull/199","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaojiou176-open%2FOpenVibeCoding/issues/199","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/199/packages"}},{"old_version":"0.13.6","new_version":"0.14.2","update_type":"minor","path":"/python","pr_created_at":"2026-04-20T12:53:12.000Z","version_change":"0.13.6 → 0.14.2","issue":{"uuid":"4295793419","node_id":"PR_kwDOJpb2687T89KH","number":2740,"state":"closed","title":"chore(deps): bump the py-minor-and-patch group in /python with 18 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T23:19:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T12:53:12.000Z","updated_at":"2026-04-20T23:19:51.000Z","time_to_close":37598,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"py-minor-and-patch","update_count":18,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"opentelemetry-sdk","old_version":"1.38.0","new_version":"1.41.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.38.0","new_version":"1.41.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.38.0","new_version":"1.41.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"openai-agents","old_version":"0.13.6","new_version":"0.14.2","repository_url":"https://github.com/openai/openai-agents-python"},{"name":"claude-agent-sdk","old_version":"0.1.58","new_version":"0.1.63","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"google-adk","old_version":"1.29.0","new_version":"1.14.1","repository_url":"https://github.com/google/adk-python"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.15.10","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"langchain-core","old_version":"1.2.28","new_version":"1.3.0","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-openai","old_version":"1.1.12","new_version":"1.1.14","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-anthropic","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"google-genai","old_version":"1.72.0","new_version":"1.73.1","repository_url":"https://github.com/googleapis/python-genai"},{"name":"ty","old_version":"0.0.29","new_version":"0.0.31","repository_url":"https://github.com/astral-sh/ty"},{"name":"openai","old_version":"2.31.0","new_version":"2.32.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.87.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"}],"path":"/python","ecosystem":"pip"},"body":"Bumps the py-minor-and-patch group in /python with 18 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.2` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.41.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.41.0` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.38.0` | `1.41.0` |\n| [openai-agents](https://github.com/openai/openai-agents-python) | `0.13.6` | `0.14.2` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.58` | `0.1.63` |\n| [google-adk](https://github.com/google/adk-python) | `1.29.0` | `1.14.1` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.10` | `0.15.11` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.0` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.2.28` | `1.3.0` |\n| [langchain-openai](https://github.com/langchain-ai/langchain) | `1.1.12` | `1.1.14` |\n| [langchain-anthropic](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.1` |\n| [google-genai](https://github.com/googleapis/python-genai) | `1.72.0` | `1.73.1` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.29` | `0.0.31` |\n| [openai](https://github.com/openai/openai-python) | `2.31.0` | `2.32.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.87.0` | `0.96.0` |\n\nUpdates `pydantic` from 2.12.5 to 2.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.2/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c/a\u003e tests: do not reload the tags module (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2c6c7dfa2d406e44b91f3f8d26eeed72437c9435\"\u003e\u003ccode\u003e2c6c7df\u003c/code\u003e\u003c/a\u003e feat: add handling for Emscripten wheels tags per PEP 783 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/6762eea4de40da02c119d02cc77c907c6b446b86\"\u003e\u003ccode\u003e6762eea\u003c/code\u003e\u003c/a\u003e docs(markers): document \u0026amp; and | operators for combining Marker objects (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.38.0 to 1.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4910\"\u003e#4910\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e3017323f147fd14a64fa8bb070271026182208a\"\u003e\u003ccode\u003ee301732\u003c/code\u003e\u003c/a\u003e Add MikeGoldsmith to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8783a5831d54d9224edd930e5106225fc0f97c1b\"\u003e\u003ccode\u003e8783a58\u003c/code\u003e\u003c/a\u003e introduce \u003ccode\u003ealls-green\u003c/code\u003e action for required checks (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4988\"\u003e#4988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.38.0 to 1.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4910\"\u003e#4910\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e3017323f147fd14a64fa8bb070271026182208a\"\u003e\u003ccode\u003ee301732\u003c/code\u003e\u003c/a\u003e Add MikeGoldsmith to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8783a5831d54d9224edd930e5106225fc0f97c1b\"\u003e\u003ccode\u003e8783a58\u003c/code\u003e\u003c/a\u003e introduce \u003ccode\u003ealls-green\u003c/code\u003e action for required checks (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4988\"\u003e#4988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-http` from 1.38.0 to 1.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-http's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4910\"\u003e#4910\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/e3017323f147fd14a64fa8bb070271026182208a\"\u003e\u003ccode\u003ee301732\u003c/code\u003e\u003c/a\u003e Add MikeGoldsmith to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8783a5831d54d9224edd930e5106225fc0f97c1b\"\u003e\u003ccode\u003e8783a58\u003c/code\u003e\u003c/a\u003e introduce \u003ccode\u003ealls-green\u003c/code\u003e action for required checks (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4988\"\u003e#4988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai-agents` from 0.13.6 to 0.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support sandbox extra path grants by \u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2920\"\u003eopenai/openai-agents-python#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2228\"\u003e#2228\u003c/a\u003e persist tool origin metadata in run items by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2654\"\u003eopenai/openai-agents-python#2654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(extensions): add MongoDB session backend by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2902\"\u003eopenai/openai-agents-python#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: loosen sandbox compaction model parsing by \u003ca href=\"https://github.com/sdcoffey\"\u003e\u003ccode\u003e@​sdcoffey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2930\"\u003eopenai/openai-agents-python#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove_all_tools missing hosted tool types by \u003ca href=\"https://github.com/javierdejesusda\"\u003e\u003ccode\u003e@​javierdejesusda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2885\"\u003eopenai/openai-agents-python#2885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: tolerate None text in ResponseOutputText content items by \u003ca href=\"https://github.com/beveradb\"\u003e\u003ccode\u003e@​beveradb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2883\"\u003eopenai/openai-agents-python#2883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/1876\"\u003e#1876\u003c/a\u003e LiteLLM extra_body forwarding by \u003ca href=\"https://github.com/yu2001-s\"\u003e\u003ccode\u003e@​yu2001-s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2900\"\u003eopenai/openai-agents-python#2900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: trust filesystem permissions for Vercel roots by \u003ca href=\"https://github.com/scotttrinh\"\u003e\u003ccode\u003e@​scotttrinh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2910\"\u003eopenai/openai-agents-python#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/604\"\u003e#604\u003c/a\u003e handle None choices in ChatCompletion response by \u003ca href=\"https://github.com/Spectual\"\u003e\u003ccode\u003e@​Spectual\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2850\"\u003eopenai/openai-agents-python#2850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: normalize compacted Responses user inputs before session reuse by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2925\"\u003eopenai/openai-agents-python#2925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2929\"\u003e#2929\u003c/a\u003e surface run-loop exceptions after stream_events() completes by \u003ca href=\"https://github.com/nileshpatil6\"\u003e\u003ccode\u003e@​nileshpatil6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2931\"\u003eopenai/openai-agents-python#2931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify OpenAI provider configuration guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2901\"\u003eopenai/openai-agents-python#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2903\"\u003eopenai/openai-agents-python#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: sync sandbox translations and set doc translation default model to gpt-5.4 by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2904\"\u003eopenai/openai-agents-python#2904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2935\"\u003eopenai/openai-agents-python#2935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump \u003ccode\u003etemporalio\u003c/code\u003e Dep in Temporal example by \u003ca href=\"https://github.com/JasonSteving99\"\u003e\u003ccode\u003e@​JasonSteving99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2918\"\u003eopenai/openai-agents-python#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.2 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2899\"\u003eopenai/openai-agents-python#2899\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/javierdejesusda\"\u003e\u003ccode\u003e@​javierdejesusda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2885\"\u003eopenai/openai-agents-python#2885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beveradb\"\u003e\u003ccode\u003e@​beveradb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2883\"\u003eopenai/openai-agents-python#2883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yu2001-s\"\u003e\u003ccode\u003e@​yu2001-s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2900\"\u003eopenai/openai-agents-python#2900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JasonSteving99\"\u003e\u003ccode\u003e@​JasonSteving99\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2918\"\u003eopenai/openai-agents-python#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scotttrinh\"\u003e\u003ccode\u003e@​scotttrinh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2910\"\u003eopenai/openai-agents-python#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Spectual\"\u003e\u003ccode\u003e@​Spectual\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2850\"\u003eopenai/openai-agents-python#2850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2902\"\u003eopenai/openai-agents-python#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2920\"\u003eopenai/openai-agents-python#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nileshpatil6\"\u003e\u003ccode\u003e@​nileshpatil6\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2931\"\u003eopenai/openai-agents-python#2931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.1...v0.14.2\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.1...v0.14.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: sanitize OpenAI tracing export payloads by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2896\"\u003eopenai/openai-agents-python#2896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2873\"\u003e#2873\u003c/a\u003e preserve computer driver compatibility for modifier keys by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2877\"\u003eopenai/openai-agents-python#2877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2151\"\u003e#2151\u003c/a\u003e shield server-managed handoffs from unsupported history rewrites by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2747\"\u003eopenai/openai-agents-python#2747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: stop streamed tool execution after known input guardrail tripwire by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2688\"\u003eopenai/openai-agents-python#2688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2891\"\u003eopenai/openai-agents-python#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: align translated sandbox nav and refresh generated refs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2892\"\u003eopenai/openai-agents-python#2892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify ToolContext availability in function-tool lifecycle hooks by \u003ca href=\"https://github.com/HuxleyHu98\"\u003e\u003ccode\u003e@​HuxleyHu98\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2687\"\u003eopenai/openai-agents-python#2687\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/langchain-ai/langsmith-sdk/pull/2740","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/langchain-ai%2Flangsmith-sdk/issues/2740","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2740/packages"}},{"old_version":"0.13.6","new_version":"0.14.2","update_type":"minor","path":"/addons/formula-chat/api","pr_created_at":"2026-04-19T06:05:54.000Z","version_change":"0.13.6 → 0.14.2","issue":{"uuid":"4290082115","node_id":"PR_kwDORzsKKM7TrWq1","number":86,"state":"open","title":"chore(deps): bump openai-agents from 0.13.6 to 0.14.2 in /addons/formula-chat/api","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-19T06:05:54.000Z","updated_at":"2026-04-26T08:00:30.070Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.13.6","new_version":"0.14.2","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/addons/formula-chat/api","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.13.6 to 0.14.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: support sandbox extra path grants by \u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2920\"\u003eopenai/openai-agents-python#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2228\"\u003e#2228\u003c/a\u003e persist tool origin metadata in run items by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2654\"\u003eopenai/openai-agents-python#2654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(extensions): add MongoDB session backend by \u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2902\"\u003eopenai/openai-agents-python#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: loosen sandbox compaction model parsing by \u003ca href=\"https://github.com/sdcoffey\"\u003e\u003ccode\u003e@​sdcoffey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2930\"\u003eopenai/openai-agents-python#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove_all_tools missing hosted tool types by \u003ca href=\"https://github.com/javierdejesusda\"\u003e\u003ccode\u003e@​javierdejesusda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2885\"\u003eopenai/openai-agents-python#2885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: tolerate None text in ResponseOutputText content items by \u003ca href=\"https://github.com/beveradb\"\u003e\u003ccode\u003e@​beveradb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2883\"\u003eopenai/openai-agents-python#2883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/1876\"\u003e#1876\u003c/a\u003e LiteLLM extra_body forwarding by \u003ca href=\"https://github.com/yu2001-s\"\u003e\u003ccode\u003e@​yu2001-s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2900\"\u003eopenai/openai-agents-python#2900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: trust filesystem permissions for Vercel roots by \u003ca href=\"https://github.com/scotttrinh\"\u003e\u003ccode\u003e@​scotttrinh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2910\"\u003eopenai/openai-agents-python#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/604\"\u003e#604\u003c/a\u003e handle None choices in ChatCompletion response by \u003ca href=\"https://github.com/Spectual\"\u003e\u003ccode\u003e@​Spectual\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2850\"\u003eopenai/openai-agents-python#2850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: normalize compacted Responses user inputs before session reuse by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2925\"\u003eopenai/openai-agents-python#2925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2929\"\u003e#2929\u003c/a\u003e surface run-loop exceptions after stream_events() completes by \u003ca href=\"https://github.com/nileshpatil6\"\u003e\u003ccode\u003e@​nileshpatil6\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2931\"\u003eopenai/openai-agents-python#2931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: clarify OpenAI provider configuration guidance by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2901\"\u003eopenai/openai-agents-python#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2903\"\u003eopenai/openai-agents-python#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: sync sandbox translations and set doc translation default model to gpt-5.4 by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2904\"\u003eopenai/openai-agents-python#2904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2935\"\u003eopenai/openai-agents-python#2935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: bump \u003ccode\u003etemporalio\u003c/code\u003e Dep in Temporal example by \u003ca href=\"https://github.com/JasonSteving99\"\u003e\u003ccode\u003e@​JasonSteving99\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2918\"\u003eopenai/openai-agents-python#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.14.2 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2899\"\u003eopenai/openai-agents-python#2899\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/javierdejesusda\"\u003e\u003ccode\u003e@​javierdejesusda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2885\"\u003eopenai/openai-agents-python#2885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beveradb\"\u003e\u003ccode\u003e@​beveradb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2883\"\u003eopenai/openai-agents-python#2883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yu2001-s\"\u003e\u003ccode\u003e@​yu2001-s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2900\"\u003eopenai/openai-agents-python#2900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JasonSteving99\"\u003e\u003ccode\u003e@​JasonSteving99\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2918\"\u003eopenai/openai-agents-python#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scotttrinh\"\u003e\u003ccode\u003e@​scotttrinh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2910\"\u003eopenai/openai-agents-python#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Spectual\"\u003e\u003ccode\u003e@​Spectual\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2850\"\u003eopenai/openai-agents-python#2850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexbevi\"\u003e\u003ccode\u003e@​alexbevi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2902\"\u003eopenai/openai-agents-python#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qiyaoq-oai\"\u003e\u003ccode\u003e@​qiyaoq-oai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2920\"\u003eopenai/openai-agents-python#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nileshpatil6\"\u003e\u003ccode\u003e@​nileshpatil6\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2931\"\u003eopenai/openai-agents-python#2931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.14.1...v0.14.2\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.14.1...v0.14.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: sanitize OpenAI tracing export payloads by \u003ca href=\"https://github.com/alfozan\"\u003e\u003ccode\u003e@​alfozan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2896\"\u003eopenai/openai-agents-python#2896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2873\"\u003e#2873\u003c/a\u003e preserve computer driver compatibility for modifier keys by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2877\"\u003eopenai/openai-agents-python#2877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2151\"\u003e#2151\u003c/a\u003e shield server-managed handoffs from unsupported history rewrites by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2747\"\u003eopenai/openai-agents-python#2747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: stop streamed tool execution after known input guardrail tripwire by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2688\"\u003eopenai/openai-agents-python#2688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2891\"\u003eopenai/openai-agents-python#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: align translated sandbox nav and refresh generated refs by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2892\"\u003eopenai/openai-agents-python#2892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify ToolContext availability in function-tool lifecycle hooks by \u003ca href=\"https://github.com/HuxleyHu98\"\u003e\u003ccode\u003e@​HuxleyHu98\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2687\"\u003eopenai/openai-agents-python#2687\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.14.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it adds a major new beta feature area: Sandbox Agents, plus the runtime, backend, and documentation support needed to use them across local, containerized, and hosted environments.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a new beta sandbox runtime surface centered on \u003ccode\u003eSandboxAgent\u003c/code\u003e, \u003ccode\u003eManifest\u003c/code\u003e, and \u003ccode\u003eSandboxRunConfig\u003c/code\u003e, letting agents work inside persistent isolated workspaces with files, directories, Git repos, mounts, snapshots, and resume support.\u003c/li\u003e\n\u003cli\u003eAdded sandbox execution backends for local and containerized development via \u003ccode\u003eUnixLocalSandboxClient\u003c/code\u003e and \u003ccode\u003eDockerSandboxClient\u003c/code\u003e, plus hosted provider integrations for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.\u003c/li\u003e\n\u003cli\u003eAdded sandbox memory support so future runs can reuse lessons from prior runs, with progressive disclosure, multi-turn grouping, configurable isolation boundaries, and persisted-memory examples including S3-backed workflows.\u003c/li\u003e\n\u003cli\u003eAdded a broader workspace and resume model, including local and synthetic workspace entries, remote storage mounts for S3/R2/GCS/Azure Blob Storage/S3 Files, portable snapshots, and resume flows via \u003ccode\u003eRunState\u003c/code\u003e, \u003ccode\u003eSandboxSessionState\u003c/code\u003e, or saved snapshots.\u003c/li\u003e\n\u003cli\u003eAdded substantial sandbox examples and tutorials under \u003ccode\u003eexamples/sandbox/\u003c/code\u003e, covering coding tasks with skills, handoffs, memory, provider-specific setups, and end-to-end workflows such as code review, dataroom QA, and website cloning.\u003c/li\u003e\n\u003cli\u003eExtended the core runtime and tracing stack with sandbox-aware session preparation, capability binding, state serialization, unified tracing, prompt cache key defaults, and safer sensitive MCP output redaction.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e80d2d2319eb300ac17ec496988b70246a5042d6\"\u003e\u003ccode\u003ee80d2d2\u003c/code\u003e\u003c/a\u003e Release 0.14.2 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/61443ca8af4b7f952859abf461d1104b55789caf\"\u003e\u003ccode\u003e61443ca\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2929\"\u003e#2929\u003c/a\u003e surface run-loop exceptions after stream_events() completes (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2931\"\u003e#2931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/55c89007362aef510909365ec149b1a83ed23a90\"\u003e\u003ccode\u003e55c8900\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/377204714d169efb261f0115779b8c930c11c87a\"\u003e\u003ccode\u003e3772047\u003c/code\u003e\u003c/a\u003e feat: support sandbox extra path grants (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2920\"\u003e#2920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/dd3f59e399a94229ce6804838b964b3e23c1e73b\"\u003e\u003ccode\u003edd3f59e\u003c/code\u003e\u003c/a\u003e Loosen sandbox compaction model parsing (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/67fb85a17f47bce80c949f4a3b17f0efc5da5b73\"\u003e\u003ccode\u003e67fb85a\u003c/code\u003e\u003c/a\u003e feat(extensions): add MongoDB session backend (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2902\"\u003e#2902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f84ef7f649d1bb3ba7ca86e41509081e7e779bc6\"\u003e\u003ccode\u003ef84ef7f\u003c/code\u003e\u003c/a\u003e fix: normalize compacted Responses user inputs before session reuse (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2925\"\u003e#2925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/b7ba44688db786719c550aee2fa7228189f25ff3\"\u003e\u003ccode\u003eb7ba446\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/604\"\u003e#604\u003c/a\u003e handle None choices in ChatCompletion response (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2850\"\u003e#2850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/b58d059f4dc7a3827f30389e31fd6e521cdcdf57\"\u003e\u003ccode\u003eb58d059\u003c/code\u003e\u003c/a\u003e fix: Trust filesystem permissions for Vercel roots (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2910\"\u003e#2910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/3ad12bc27308278fc875144a04c60a068d399b1a\"\u003e\u003ccode\u003e3ad12bc\u003c/code\u003e\u003c/a\u003e chore: Bump \u003ccode\u003etemporalio\u003c/code\u003e Dep in Temporal Example (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.6...v0.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.13.6\u0026new-version=0.14.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/HARISHMARAN/Harry-s-F1-data/pull/86","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HARISHMARAN%2FHarry-s-F1-data/issues/86","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/86/packages"}},{"old_version":"\u003e=0.1.0","new_version":"\u003e=0.8.4","update_type":"minor","path":"/sdk","pr_created_at":"2026-04-13T13:06:56.000Z","version_change":"\u003e=0.1.0 → \u003e=0.8.4","issue":{"uuid":"4254865121","node_id":"PR_kwDORcNYdc7R_GUr","number":311,"state":"open","title":"Update openai-agents requirement from \u003e=0.1.0 to \u003e=0.8.4 in /sdk","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T13:06:56.000Z","updated_at":"2026-05-01T04:49:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"openai-agents","old_version":"\u003e=0.1.0","new_version":"\u003e=0.8.4","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/sdk","ecosystem":"pip"},"body":"Updates the requirements on [openai-agents](https://github.com/openai/openai-agents-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.8.4\u003c/h2\u003e\n\u003ch2\u003eKey Changes\u003c/h2\u003e\n\u003ch3\u003eHosted container tool + Skills\u003c/h3\u003e\n\u003cp\u003eThis release includes the hosted shell runtime tool along with its native skills support. Developers now can pass a container-based shell runtime with skills this way:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom agents import Agent, ShellTool\r\n\u003cp\u003eagent = Agent(\nname=\u0026quot;Shell Agent\u0026quot;,\nmodel=\u0026quot;gpt-5.2\u0026quot;,\ninstructions=\u0026quot;Use the available shell tool to answer user requests.\u0026quot;,\ntools=[\nShellTool(\nenvironment={\n\u0026quot;type\u0026quot;: \u0026quot;container_auto\u0026quot;,\n\u0026quot;network_policy\u0026quot;: {\u0026quot;type\u0026quot;: \u0026quot;disabled\u0026quot;},\n\u0026quot;skills\u0026quot;: [\n{\n\u0026quot;type\u0026quot;: \u0026quot;skill_reference\u0026quot;,\n\u0026quot;skill_id\u0026quot;: \u0026quot;skill_698bbe879adc81918725cbc69dcae7960bc5613dadaed377\u0026quot;,\n\u0026quot;version\u0026quot;: \u0026quot;1\u0026quot;,\n}\n],\n}\n)\n],\n)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eRefer to \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/examples/tools/container_shell_inline_skill.py\"\u003eexamples/tools/container_shell_inline_skill.py\u003c/a\u003e and \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/examples/tools/container_shell_skill_reference.py\"\u003eexamples/tools/container_shell_skill_reference.py\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add container shell + skills support by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2469\"\u003eopenai/openai-agents-python#2469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(realtime): omit null audio formats in SIP call attach updates by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2454\"\u003eopenai/openai-agents-python#2454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(result): support Pydantic model_rebuild for RunResultStreaming by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2455\"\u003eopenai/openai-agents-python#2455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(tool): resolve default failure handler at invoke time by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2460\"\u003eopenai/openai-agents-python#2460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(agent-tools): inherit parent RunConfig when agent-as-tool is invoked by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2463\"\u003eopenai/openai-agents-python#2463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(stream): emit queued events before max-turns exception by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2458\"\u003eopenai/openai-agents-python#2458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(prompt): omit tool_choice when prompt manages built-in tools by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2464\"\u003eopenai/openai-agents-python#2464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocuments \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2452\"\u003eopenai/openai-agents-python#2452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(mcp): validate required params before call_tool by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2453\"\u003eopenai/openai-agents-python#2453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify Azure Realtime GA endpoint configuration by \u003ca href=\"https://github.com/OiPunk\"\u003e\u003ccode\u003e@​OiPunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2440\"\u003eopenai/openai-agents-python#2440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2466\"\u003eopenai/openai-agents-python#2466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.8.4 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2465\"\u003eopenai/openai-agents-python#2465\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/blob/main/docs/release.md\"\u003eopenai-agents's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease process/changelog\u003c/h1\u003e\n\u003cp\u003eThe project follows a slightly modified version of semantic versioning using the form \u003ccode\u003e0.Y.Z\u003c/code\u003e. The leading \u003ccode\u003e0\u003c/code\u003e indicates the SDK is still evolving rapidly. Increment the components as follows:\u003c/p\u003e\n\u003ch2\u003eMinor (\u003ccode\u003eY\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increase minor versions \u003ccode\u003eY\u003c/code\u003e for \u003cstrong\u003ebreaking changes\u003c/strong\u003e to any public interfaces that are not marked as beta. For example, going from \u003ccode\u003e0.0.x\u003c/code\u003e to \u003ccode\u003e0.1.x\u003c/code\u003e might include breaking changes.\u003c/p\u003e\n\u003cp\u003eIf you don't want breaking changes, we recommend pinning to \u003ccode\u003e0.0.x\u003c/code\u003e versions in your project.\u003c/p\u003e\n\u003ch2\u003ePatch (\u003ccode\u003eZ\u003c/code\u003e) versions\u003c/h2\u003e\n\u003cp\u003eWe will increment \u003ccode\u003eZ\u003c/code\u003e for non-breaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBug fixes\u003c/li\u003e\n\u003cli\u003eNew features\u003c/li\u003e\n\u003cli\u003eChanges to private interfaces\u003c/li\u003e\n\u003cli\u003eUpdates to beta features\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking change changelog\u003c/h2\u003e\n\u003ch3\u003e0.13.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a notable Realtime default update plus new MCP capabilities and runtime stability fixes.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default websocket Realtime model is now \u003ccode\u003egpt-realtime-1.5\u003c/code\u003e, so new Realtime agent setups use the newer model without extra configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMCPServer\u003c/code\u003e now exposes \u003ccode\u003elist_resources()\u003c/code\u003e, \u003ccode\u003elist_resource_templates()\u003c/code\u003e, and \u003ccode\u003eread_resource()\u003c/code\u003e, and \u003ccode\u003eMCPServerStreamableHttp\u003c/code\u003e now exposes \u003ccode\u003esession_id\u003c/code\u003e so streamable HTTP sessions can be resumed across reconnects or stateless workers.\u003c/li\u003e\n\u003cli\u003eChat Completions integrations can now opt into reasoning-content replay via \u003ccode\u003eshould_replay_reasoning_content\u003c/code\u003e, improving provider-specific reasoning/tool-call continuity for adapters such as LiteLLM/DeepSeek.\u003c/li\u003e\n\u003cli\u003eFixed several runtime and session edge cases, including concurrent first writes in \u003ccode\u003eSQLAlchemySession\u003c/code\u003e, compaction requests with orphaned assistant message IDs after reasoning stripping, \u003ccode\u003eremove_all_tools()\u003c/code\u003e leaving MCP/reasoning items behind, and a race in the function-tool batch executor.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e0.12.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.12.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.11.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change. Check \u003ca href=\"https://github.com/openai/openai-agents-python/releases/tag/v0.11.0\"\u003ethe release notes\u003c/a\u003e for major feature additions.\u003c/p\u003e\n\u003ch3\u003e0.10.0\u003c/h3\u003e\n\u003cp\u003eThis minor release does \u003cstrong\u003enot\u003c/strong\u003e introduce a breaking change, but it includes a significant new feature area for OpenAI Responses users: websocket transport support for the Responses API.\u003c/p\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded websocket transport support for OpenAI Responses models (opt-in; HTTP remains the default transport).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eresponses_websocket_session()\u003c/code\u003e helper / \u003ccode\u003eResponsesWebSocketSession\u003c/code\u003e for reusing a shared websocket-capable provider and \u003ccode\u003eRunConfig\u003c/code\u003e across multi-turn runs.\u003c/li\u003e\n\u003cli\u003eAdded a new websocket streaming example (\u003ccode\u003eexamples/basic/stream_ws.py\u003c/code\u003e) covering streaming, tools, approvals, and follow-up turns.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/67687cbab31c6c071204dc7f48ea6e47624aa2e7\"\u003e\u003ccode\u003e67687cb\u003c/code\u003e\u003c/a\u003e Release 0.8.4 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2465\"\u003e#2465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/947fff8bd03d7dd322abf4a92df7a0c24f55807e\"\u003e\u003ccode\u003e947fff8\u003c/code\u003e\u003c/a\u003e fix(prompt): omit tool_choice when prompt manages built-in tools (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2464\"\u003e#2464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0793a8ce916377ad80f47f9819ee99bc86676aaa\"\u003e\u003ccode\u003e0793a8c\u003c/code\u003e\u003c/a\u003e feat: add container shell + skills support (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2469\"\u003e#2469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f76ec8ac1c8e5ca5af2661b704481ba353ff31a2\"\u003e\u003ccode\u003ef76ec8a\u003c/code\u003e\u003c/a\u003e fix(stream): emit queued events before max-turns exception (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2458\"\u003e#2458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/1168ee1ad15a200ce2effe6a5aa42727fa3c52e3\"\u003e\u003ccode\u003e1168ee1\u003c/code\u003e\u003c/a\u003e fix(agent-tools): inherit parent RunConfig when agent-as-tool is invoked (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2463\"\u003e#2463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/85e56167f740d2a560285f7f4ba39cb3cfe3ec83\"\u003e\u003ccode\u003e85e5616\u003c/code\u003e\u003c/a\u003e fix(tool): resolve default failure handler at invoke time (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2460\"\u003e#2460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f1f88f8fa42c2016339871d04fb49afd4db86c17\"\u003e\u003ccode\u003ef1f88f8\u003c/code\u003e\u003c/a\u003e fix(result): support Pydantic model_rebuild for RunResultStreaming (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2455\"\u003e#2455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/72204371c394f57099e6f313fcbc947432bc0dff\"\u003e\u003ccode\u003e7220437\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2466\"\u003e#2466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/f1d8923e480177e4664a364e1f0f87ea125e9f73\"\u003e\u003ccode\u003ef1d8923\u003c/code\u003e\u003c/a\u003e fix(realtime): omit null audio formats in SIP call attach updates (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2454\"\u003e#2454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/86f5c71e1906ecc324efe97e8f1ed7b0b9e174ed\"\u003e\u003ccode\u003e86f5c71\u003c/code\u003e\u003c/a\u003e docs: clarify Azure Realtime GA endpoint configuration (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2440\"\u003e#2440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.1.0...v0.8.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/nicholasraimbault/skytale/pull/311","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicholasraimbault%2Fskytale/issues/311","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/311/packages"}},{"old_version":"0.13.4","new_version":"0.13.6","update_type":"patch","path":"/addons/formula-chat/api","pr_created_at":"2026-04-12T06:05:39.000Z","version_change":"0.13.4 → 0.13.6","issue":{"uuid":"4246757033","node_id":"PR_kwDORzsKKM7RvLHS","number":61,"state":"open","title":"chore(deps): bump openai-agents from 0.13.4 to 0.13.6 in /addons/formula-chat/api","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-12T06:05:39.000Z","updated_at":"2026-04-12T06:06:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"openai-agents","old_version":"0.13.4","new_version":"0.13.6","repository_url":"https://github.com/openai/openai-agents-python"}],"path":"/addons/formula-chat/api","ecosystem":"pip"},"body":"Bumps [openai-agents](https://github.com/openai/openai-agents-python) from 0.13.4 to 0.13.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-agents-python/releases\"\u003eopenai-agents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.13.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2863\"\u003e#2863\u003c/a\u003e lazy-load SQLiteSession exports by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2864\"\u003eopenai/openai-agents-python#2864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2856\"\u003e#2856\u003c/a\u003e stop recursive trace preview truncation by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2860\"\u003eopenai/openai-agents-python#2860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: harden SQLAlchemySession against transient SQLite locks by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2854\"\u003eopenai/openai-agents-python#2854\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: updates for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2844\"\u003e#2844\u003c/a\u003e changes by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2845\"\u003eopenai/openai-agents-python#2845\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2847\"\u003eopenai/openai-agents-python#2847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(tracing): add HoneyHive to tracing integrations list by \u003ca href=\"https://github.com/m1lestones\"\u003e\u003ccode\u003e@​m1lestones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2851\"\u003eopenai/openai-agents-python#2851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2853\"\u003eopenai/openai-agents-python#2853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.13.6 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2861\"\u003eopenai/openai-agents-python#2861\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/m1lestones\"\u003e\u003ccode\u003e@​m1lestones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2851\"\u003eopenai/openai-agents-python#2851\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.5...v0.13.6\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.13.5...v0.13.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.13.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2807\"\u003e#2807\u003c/a\u003e support callable approval policies for local MCP servers by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2818\"\u003eopenai/openai-agents-python#2818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2135\"\u003e#2135\u003c/a\u003e add public flush_traces API by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2844\"\u003eopenai/openai-agents-python#2844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2823\"\u003e#2823\u003c/a\u003e AnyLLM reasoning extraction for iterable vLLM/any-llm Reasoning objects by \u003ca href=\"https://github.com/ziqi-cn\"\u003e\u003ccode\u003e@​ziqi-cn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2822\"\u003eopenai/openai-agents-python#2822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: serialize SQLite session writes with shared file locks by \u003ca href=\"https://github.com/seratch\"\u003e\u003ccode\u003e@​seratch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2843\"\u003eopenai/openai-agents-python#2843\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation \u0026amp; Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump openai/codex-action from 1.4 to 1.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2819\"\u003eopenai/openai-agents-python#2819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump astral-sh/setup-uv from 7.3.1 to 8.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2820\"\u003eopenai/openai-agents-python#2820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: sync examples.md with current examples directory by \u003ca href=\"https://github.com/AbdullahBapra\"\u003e\u003ccode\u003e@​AbdullahBapra\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2827\"\u003eopenai/openai-agents-python#2827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update translated document pages by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2828\"\u003eopenai/openai-agents-python#2828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.13.5 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2821\"\u003eopenai/openai-agents-python#2821\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AbdullahBapra\"\u003e\u003ccode\u003e@​AbdullahBapra\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2827\"\u003eopenai/openai-agents-python#2827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ziqi-cn\"\u003e\u003ccode\u003e@​ziqi-cn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/pull/2822\"\u003eopenai/openai-agents-python#2822\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.4...v0.13.5\"\u003ehttps://github.com/openai/openai-agents-python/compare/v0.13.4...v0.13.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/bfc8c6355ff0cc2b7f43980ed1b459f411dc42e5\"\u003e\u003ccode\u003ebfc8c63\u003c/code\u003e\u003c/a\u003e Release 0.13.6 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2861\"\u003e#2861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/690079e2b98a54e0a3ba165cb36ebdef33caa6b2\"\u003e\u003ccode\u003e690079e\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2863\"\u003e#2863\u003c/a\u003e lazy-load SQLiteSession exports (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2864\"\u003e#2864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fb67680fae60fef27cd0e71e73a68c73f9212526\"\u003e\u003ccode\u003efb67680\u003c/code\u003e\u003c/a\u003e fix: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2856\"\u003e#2856\u003c/a\u003e stop recursive trace preview truncation (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2860\"\u003e#2860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/c06cd45004f63bd33ef9dd66bdc2b4d0cdc82e1b\"\u003e\u003ccode\u003ec06cd45\u003c/code\u003e\u003c/a\u003e fix: harden SQLAlchemySession against transient SQLite locks (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2854\"\u003e#2854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/aeb653e56286895e7d8918b220e9d99b9e739f35\"\u003e\u003ccode\u003eaeb653e\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2853\"\u003e#2853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/0386210b3bc754ce13165672720ee2cecae53767\"\u003e\u003ccode\u003e0386210\u003c/code\u003e\u003c/a\u003e docs(tracing): add HoneyHive to tracing integrations list (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2851\"\u003e#2851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/fa508992edc6640f2ccf6addfbdb30c98f109b5d\"\u003e\u003ccode\u003efa50899\u003c/code\u003e\u003c/a\u003e docs: update translated document pages (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2847\"\u003e#2847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/e1d861ca5076a262e395344bbcfc95857cedaf78\"\u003e\u003ccode\u003ee1d861c\u003c/code\u003e\u003c/a\u003e docs: updates for \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2844\"\u003e#2844\u003c/a\u003e changes (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/b0ab25c2d6796c7699492dd2289efa509aae3705\"\u003e\u003ccode\u003eb0ab25c\u003c/code\u003e\u003c/a\u003e Release 0.13.5 (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-agents-python/commit/7a3f6b70d1bd4e700f3a06547b673295fb52e74d\"\u003e\u003ccode\u003e7a3f6b7\u003c/code\u003e\u003c/a\u003e feat: \u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2135\"\u003e#2135\u003c/a\u003e add public flush_traces API (\u003ca href=\"https://redirect.github.com/openai/openai-agents-python/issues/2844\"\u003e#2844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-agents-python/compare/v0.13.4...v0.13.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openai-agents\u0026package-manager=pip\u0026previous-version=0.13.4\u0026new-version=0.13.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/HARISHMARAN/Harry-s-F1-data/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HARISHMARAN%2FHarry-s-F1-data/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"}}]}