{"id":11540,"name":"lxml-html-clean","ecosystem":"pip","repository_url":"https://github.com/fedora-python/lxml_html_clean","issues_count":50,"created_at":"2025-06-06T23:04:27.075Z","updated_at":"2025-06-06T23:04:27.075Z","purl":"pkg:pypi/lxml-html-clean","metadata":{"id":8990994,"name":"lxml-html-clean","ecosystem":"pypi","description":"HTML cleaner from lxml project","homepage":"https://github.com/fedora-python/lxml_html_clean/","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/fedora-python/lxml_html_clean","keywords_array":[],"namespace":null,"versions_count":10,"first_release_published_at":"2024-02-26T13:18:41.000Z","latest_release_published_at":"2025-04-09T11:33:57.000Z","latest_release_number":"0.4.2","last_synced_at":"2025-05-20T11:43:52.654Z","created_at":"2024-02-26T13:31:46.392Z","updated_at":"2025-05-20T11:44:28.031Z","registry_url":"https://pypi.org/project/lxml-html-clean/","install_command":"pip install lxml-html-clean --index-url https://pypi.org/simple","documentation_url":"https://lxml-html-clean.readthedocs.io/","metadata":{"funding":null,"documentation":"https://lxml-html-clean.readthedocs.io/","classifiers":["Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.6","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9"],"normalized_name":"lxml-html-clean"},"repo_metadata":{"id":203086565,"uuid":"708778179","full_name":"fedora-python/lxml_html_clean","owner":"fedora-python","description":"Separate project for HTML cleaning functionalities copied from lxml.html.clean.","archived":false,"fork":false,"pushed_at":"2025-05-20T10:20:15.000Z","size":200,"stargazers_count":6,"open_issues_count":1,"forks_count":4,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-20T11:29:05.057Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fedora-python.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2023-10-23T11:26:16.000Z","updated_at":"2025-04-09T11:33:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"9620411a-e9a7-4a10-bbb4-0439ff00a812","html_url":"https://github.com/fedora-python/lxml_html_clean","commit_stats":null,"previous_names":["fedora-python/lxml_html_clean"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedora-python","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":255284541,"owners_count":22204115,"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":"fedora-python","name":"Fedora Python SIG","uuid":"8058010","kind":"organization","description":"Special Interest Group for Python in Fedora","email":"python-devel@lists.fedoraproject.org","website":"https://fedoralovespython.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/8058010?v=4","repositories_count":60,"last_synced_at":"2024-05-04T00:01:15.495Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/fedora-python","funding_links":[],"total_stars":357,"followers":10,"following":0,"created_at":"2022-11-08T19:05:20.249Z","updated_at":"2024-05-04T00:01:34.664Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedora-python","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedora-python/repositories"},"tags":[{"name":"0.4.2","sha":"cb69916a4deac15f05d1b2848d953c7c935ee36c","kind":"commit","published_at":"2025-04-09T11:14:25.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.4.2","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.4.2/manifests"},{"name":"0.4.1","sha":"b8a21a2f33540e058e1438622f542591bb9bac8d","kind":"commit","published_at":"2024-11-15T06:18:51.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.4.1","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.4.1/manifests"},{"name":"0.4.0","sha":"a0744252196ea31dfa0edeb92e3bd45d048a7beb","kind":"commit","published_at":"2024-11-14T10:55:54.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.4.0","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.4.0/manifests"},{"name":"0.3.1","sha":"dcbc16363409481933962e8690b83cfd12cbf3ac","kind":"commit","published_at":"2024-10-09T20:32:00.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.3.1","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.3.1/manifests"},{"name":"0.3.0","sha":"88973ec71eed3f74a99f39423355c2012b482e78","kind":"commit","published_at":"2024-10-09T10:29:05.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.3.0","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.3.0/manifests"},{"name":"0.2.2","sha":"0d1a6e185d9a0542fabc1b8feb3af02a7cd41f89","kind":"commit","published_at":"2024-08-30T12:23:56.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.2.2","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.2.2/manifests"},{"name":"0.2.1","sha":"cbb88d9ba15e38c230ec7d26e8c6c129762ae624","kind":"commit","published_at":"2024-08-29T09:10:03.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.2.1","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.2.1/manifests"},{"name":"0.2.0","sha":"2002b54fb677b229a675522c8c6cd7c851d54d22","kind":"commit","published_at":"2024-07-29T11:04:41.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.2.0","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.2.0/manifests"},{"name":"0.1.1","sha":"ecc8a696eafc51097e43158e5a38ba7dcda1eacf","kind":"commit","published_at":"2024-04-05T06:48:39.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.1.1","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.1.1/manifests"},{"name":"0.1.0","sha":"13447fd5dd58930a1f1f6d0ab594999ae65bd8d8","kind":"commit","published_at":"2024-02-26T20:06:29.000Z","download_url":"https://codeload.github.com/fedora-python/lxml_html_clean/tar.gz/0.1.0","html_url":"https://github.com/fedora-python/lxml_html_clean/releases/tag/0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedora-python%2Flxml_html_clean/tags/0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-05-20T11:44:28.031Z","dependent_packages_count":26,"downloads":4064376,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":64.63666690508023,"dependent_packages_count":9.795862974557606,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":37.21626493981892},"purl":"pkg:pypi/lxml-html-clean","advisories":[{"uuid":"GSA_kwCzR0hTQS01amZ3LWdxNjQtcTQ1Zs4ABBj9","url":"https://github.com/advisories/GHSA-5jfw-gq64-q45f","title":"HTML Cleaner allows crafted scripts in special contexts like svg or math to pass through","description":"### Impact\n\nThe HTML Parser in lxml does not properly handle context-switching for special HTML tags such as `\u003csvg\u003e`, `\u003cmath\u003e` and `\u003cnoscript\u003e`. This behavior deviates from how web browsers parse and interpret such tags. Specifically, content in CSS comments is ignored by lxml_html_clean but may be interpreted differently by web browsers, enabling malicious scripts to bypass the cleaning process. This vulnerability could lead to Cross-Site Scripting (XSS) attacks, compromising the security of users relying on lxml_html_clean in default configuration for sanitizing untrusted HTML content.\n\n### Patches\n\nUsers employing the HTML cleaner in a security-sensitive context should upgrade to lxml 0.4.0, which addresses this issue.\n\n### Workarounds\n\nAs a temporary mitigation, users can configure lxml_html_clean with the following settings to prevent the exploitation of this vulnerability:\n* `remove_tags`: Specify tags to remove - their content is moved to their parents' tags.\n* `kill_tags`: Specify tags to be removed completely.\n* `allow_tags`: Restrict the set of permissible tags, excluding context-switching tags like `\u003csvg\u003e`, `\u003cmath\u003e` and `\u003cnoscript\u003e`.\n\n### References\n\n* https://github.com/fedora-python/lxml_html_clean/pull/19\n* https://github.com/fedora-python/lxml_html_clean/pull/19/commits/c5d816f86eb3707d72a8ecf5f3823e0daa1b3808\n","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2024-11-19T21:07:59.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.7,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:H","references":["https://github.com/fedora-python/lxml_html_clean/security/advisories/GHSA-5jfw-gq64-q45f","https://github.com/fedora-python/lxml_html_clean/pull/19","https://github.com/fedora-python/lxml_html_clean/commit/c5d816f86eb3707d72a8ecf5f3823e0daa1b3808","https://nvd.nist.gov/vuln/detail/CVE-2024-52595","https://github.com/pypa/advisory-database/tree/main/vulns/lxml-html-clean/PYSEC-2024-160.yaml","https://github.com/advisories/GHSA-5jfw-gq64-q45f"],"source_kind":"github","identifiers":["GHSA-5jfw-gq64-q45f","CVE-2024-52595"],"repository_url":"https://github.com/fedora-python/lxml_html_clean","blast_radius":1.0,"packages":[{"versions":[{"first_patched_version":"0.4.0","vulnerable_version_range":"\u003c 0.4.0"}],"ecosystem":"pypi","package_name":"lxml-html-clean"}],"created_at":"2024-11-19T22:06:44.397Z","updated_at":"2025-01-14T16:37:33.000Z","epss_percentage":0.00063,"epss_percentile":0.28792}],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/lxml-html-clean","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/lxml-html-clean","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/lxml-html-clean/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/lxml-html-clean/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/lxml-html-clean/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/lxml-html-clean/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/lxml-html-clean/related_packages","maintainers":[{"uuid":"hroncok","login":"hroncok","name":null,"email":null,"url":null,"packages_count":33,"html_url":"https://pypi.org/user/hroncok/","role":null,"created_at":"2024-07-30T11:29:31.223Z","updated_at":"2024-07-30T11:29:31.223Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/hroncok/packages"},{"uuid":"frenzymadness","login":"frenzymadness","name":null,"email":null,"url":null,"packages_count":10,"html_url":"https://pypi.org/user/frenzymadness/","role":null,"created_at":"2024-02-26T13:31:49.610Z","updated_at":"2024-02-26T13:31:49.610Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/frenzymadness/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":688901,"maintainers_count":292110,"namespaces_count":0,"keywords_count":228261,"github":"pypi","metadata":{"funded_packages_count":48932},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-02T05:39:57.603Z","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":33,"unique_repositories_count_past_30_days":4,"recent_issues":[{"uuid":"4614502266","node_id":"PR_kwDOPT3jJs7j_Ev5","number":1,"state":"closed","title":"Bump the pip group across 19 directories with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-10T00:16:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-08T16:07:17.000Z","updated_at":"2026-06-10T00:16:42.000Z","time_to_close":115763,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":13,"packages":[{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"agno","old_version":"1.2.8","new_version":"2.3.24","repository_url":"https://github.com/agno-agi/agno"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pillow","old_version":"10.4.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /voice_ai_agents/ai_audio_tour_agent directory: [python-dotenv](https://github.com/theskumar/python-dotenv).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 2 updates in the /starter_ai_agents/ai_music_generator_agent directory: [agno](https://github.com/agno-agi/agno) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 2 updates in the /starter_ai_agents/ai_breakup_recovery_agent directory: [agno](https://github.com/agno-agi/agno) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_blog_to_podcast_agent directory: [agno](https://github.com/agno-agi/agno).\nBumps the pip group with 4 updates in the /rag_tutorials/rag_database_routing directory: [langchain-openai](https://github.com/langchain-ai/langchain), [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 1 update in the /rag_tutorials/deepseek_local_rag_agent directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 4 updates in the /rag_tutorials/corrective_rag directory: [langchain-openai](https://github.com/langchain-ai/langchain), [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 4 updates in the /rag_tutorials/agentic_rag_math_agent directory: [python-dotenv](https://github.com/theskumar/python-dotenv), [requests](https://github.com/psf/requests), [llama-index](https://github.com/run-llama/llama_index) and [dspy](https://github.com/stanfordnlp/dspy).\nBumps the pip group with 2 updates in the /mcp_ai_agents/ai_travel_planner_mcp_agent_team directory: [python-dotenv](https://github.com/theskumar/python-dotenv) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/multi_llm_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/local_chatgpt_with_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/llm_app_personalized_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/ai_travel_agent_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group 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/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\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/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `agno` from 1.2.8 to 2.3.24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agno-agi/agno/releases\"\u003eagno's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.24\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eImprovements:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMongoDB connection handshake now includes Agno version metadata.\u003c/strong\u003e This enables better connection identification and log analysis for users hosting MongoDB clusters with multiple applications.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCrawl4aiTools\u003c/strong\u003e: Add the \u003ccode\u003eproxy_config\u003c/code\u003e parameter, allowing further configuration of the Toolkit.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eForbid tools to operate out of base directory\u003c/strong\u003e: Update \u003ccode\u003ePythonTools\u003c/code\u003e and \u003ccode\u003eMLXTranscribeTools\u003c/code\u003e to automatically disallow operating outside of the contextual base directory. Add the \u003ccode\u003erestrict_to_base_dir\u003c/code\u003e to opt out of this feature and allow operations outside of the base directory.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMarkdownChunker:\u003c/strong\u003e Now support \u003ccode\u003esplit_on_headings\u003c/code\u003e parameter to finely control how chunks are separated.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKnowledge ContentsDB requirement:\u003c/strong\u003e Improved warning and log messages when contentsDB is not used with \u003ccode\u003eKnowledge\u003c/code\u003e . Improved filter handling for agentic search.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTeam session names\u003c/strong\u003e: Fix an issue when using \u003ccode\u003eget_session_name\u003c/code\u003e directly from Team instances.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHITL consecutive user input\u003c/strong\u003e: Fix an issue on certain HITL flows when getting user input in multiple consecutive rounds.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAgentOS Knowledge router:\u003c/strong\u003e Fix an issue where AsyncDB was not correctly routed to for content update operations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: generating session name for Team by \u003ca href=\"https://github.com/kepler\"\u003e\u003ccode\u003e@​kepler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5933\"\u003eagno-agi/agno#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: active_requirements not populated for subsequent HITL round by \u003ca href=\"https://github.com/mishramonalisha76\"\u003e\u003ccode\u003e@​mishramonalisha76\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5926\"\u003eagno-agi/agno#5926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[chore] Include Agno version details in MongoDB handshake by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5922\"\u003eagno-agi/agno#5922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: introduce proxy_config to the Crawl4aiTools toolkit by \u003ca href=\"https://github.com/aayush598\"\u003e\u003ccode\u003e@​aayush598\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5859\"\u003eagno-agi/agno#5859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: replace eval() with type mapping [SDK-417] by \u003ca href=\"https://github.com/harshsinha03\"\u003e\u003ccode\u003e@​harshsinha03\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5912\"\u003eagno-agi/agno#5912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add restrict_to_base_dir param to PythonTools and MLXTranscribeTools by \u003ca href=\"https://github.com/manuhortet\"\u003e\u003ccode\u003e@​manuhortet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5940\"\u003eagno-agi/agno#5940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Knowledge apatch content support by \u003ca href=\"https://github.com/willemcdejongh\"\u003e\u003ccode\u003e@​willemcdejongh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5942\"\u003eagno-agi/agno#5942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: AttributeError in get_session_name when run_input is a string by \u003ca href=\"https://github.com/pbassut\"\u003e\u003ccode\u003e@​pbassut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5869\"\u003eagno-agi/agno#5869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Knowledge logging and filtering logic updates by \u003ca href=\"https://github.com/willemcdejongh\"\u003e\u003ccode\u003e@​willemcdejongh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5927\"\u003eagno-agi/agno#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: v2.3.24 by \u003ca href=\"https://github.com/manuhortet\"\u003e\u003ccode\u003e@​manuhortet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5949\"\u003eagno-agi/agno#5949\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/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5922\"\u003eagno-agi/agno#5922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pbassut\"\u003e\u003ccode\u003e@​pbassut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5869\"\u003eagno-agi/agno#5869\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/agno-agi/agno/compare/v2.3.23...v2.3.24\"\u003ehttps://github.com/agno-agi/agno/compare/v2.3.23...v2.3.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.3.23\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eImprovements:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAsync Tool Support\u003c/strong\u003e: Toolkit now supports async tool functions, which are automatically selected when the agent runs in an async context.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eheader_provider\u003c/code\u003e\u003c/strong\u003e : Fix for check on \u003ccode\u003eMCPTools\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTeam Run Cancellation\u003c/strong\u003e: Fixed issue on async team runs where cancellation was not handled correctly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: handle foreign key ref for custom traces table name by \u003ca href=\"https://github.com/kausmeows\"\u003e\u003ccode\u003e@​kausmeows\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5888\"\u003eagno-agi/agno#5888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Add response_usage propagation to model response by \u003ca href=\"https://github.com/tyook\"\u003e\u003ccode\u003e@​tyook\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5872\"\u003eagno-agi/agno#5872\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/agno-agi/agno/commit/b50239acb79a11d6b3dd359b5b0dc75600fc303e\"\u003e\u003ccode\u003eb50239a\u003c/code\u003e\u003c/a\u003e chore: v2.3.24 (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5949\"\u003e#5949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/632737c3a4c01178bc5fa055405a10ab18866189\"\u003e\u003ccode\u003e632737c\u003c/code\u003e\u003c/a\u003e chore: Knowledge logging and filtering logic updates (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5927\"\u003e#5927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/67a33eb5149671eb701498d83e6c4e4aa486aec2\"\u003e\u003ccode\u003e67a33eb\u003c/code\u003e\u003c/a\u003e fix: AttributeError in get_session_name when run_input is a string (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5869\"\u003e#5869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/bb274f4186748370beb96f46956494ec5b7420f7\"\u003e\u003ccode\u003ebb274f4\u003c/code\u003e\u003c/a\u003e fix: Knowledge apatch content support (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5942\"\u003e#5942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/710d7e7f846f93b7a3eadfd3e77075428c39e803\"\u003e\u003ccode\u003e710d7e7\u003c/code\u003e\u003c/a\u003e feat: add restrict_to_base_dir param to PythonTools and MLXTranscribeTools (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/cbf675521d4d2281925a051784a3b94172e56416\"\u003e\u003ccode\u003ecbf6755\u003c/code\u003e\u003c/a\u003e fix: replace eval() with type mapping [SDK-417] (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5912\"\u003e#5912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/ea35f13518be03ef38a41a64665fdc270b9d12d3\"\u003e\u003ccode\u003eea35f13\u003c/code\u003e\u003c/a\u003e fix: introduce proxy_config to the Crawl4aiTools toolkit (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5859\"\u003e#5859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/5bb72cdc60f0b5c6a51af373ae0aad8a0726b06e\"\u003e\u003ccode\u003e5bb72cd\u003c/code\u003e\u003c/a\u003e [chore] Include Agno version details in MongoDB handshake (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5922\"\u003e#5922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/6a67be81e7371d9537b50ea316d0697d856a6461\"\u003e\u003ccode\u003e6a67be8\u003c/code\u003e\u003c/a\u003e fix: HITL consecutive rounds of user input (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5926\"\u003e#5926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/f313ad89926de59ce9564a4f0cc6186602c150fc\"\u003e\u003ccode\u003ef313ad8\u003c/code\u003e\u003c/a\u003e fix: generating session name for Team (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5933\"\u003e#5933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agno-agi/agno/compare/v1.2.8...v2.3.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.0.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.4.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https...\n\n_Description has been truncated_","html_url":"https://github.com/lisaross/awesome-llm-apps/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lisaross%2Fawesome-llm-apps/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"},{"uuid":"4554031397","node_id":"PR_kwDOQTk4Hc7g7PKL","number":1,"state":"closed","title":"chore(deps): bump the pip group across 18 directories with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":"2026-06-03T22:51:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-30T09:49:26.000Z","updated_at":"2026-06-03T22:51:24.000Z","time_to_close":392516,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":13,"packages":[{"name":"langchain-openai","old_version":"1.0.2","new_version":"1.1.14","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-text-splitters","old_version":"1.0.0","new_version":"1.1.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"mem0ai","old_version":"0.1.29","new_version":"2.0.0b2","repository_url":"https://github.com/mem0ai/mem0"},{"name":"Pillow","old_version":"10.x","new_version":"12.2.0"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /voice_ai_agents/voice_rag_openaisdk directory: [langchain-openai](https://github.com/langchain-ai/langchain) and [langchain-text-splitters](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /voice_ai_agents/ai_audio_tour_agent directory: [python-dotenv](https://github.com/theskumar/python-dotenv).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_music_generator_agent directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_breakup_recovery_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 4 updates in the /rag_tutorials/rag_database_routing directory: [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-openai](https://github.com/langchain-ai/langchain), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 1 update in the /rag_tutorials/deepseek_local_rag_agent directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 4 updates in the /rag_tutorials/corrective_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-openai](https://github.com/langchain-ai/langchain), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 4 updates in the /rag_tutorials/agentic_rag_math_agent directory: [python-dotenv](https://github.com/theskumar/python-dotenv), [requests](https://github.com/psf/requests), [llama-index](https://github.com/run-llama/llama_index) and [dspy](https://github.com/stanfordnlp/dspy).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/multi_llm_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/local_chatgpt_with_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/llm_app_personalized_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/ai_travel_agent_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\n\nUpdates `langchain-openai` from 1.0.2 to 1.1.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-openai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-openai==1.1.14\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.1.13\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.1.14 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36820\"\u003e#36820\u003c/a\u003e)\nfix(openai): use SSRF-safe transport for image token counting (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36819\"\u003e#36819\u003c/a\u003e)\nchore(deps): bump pytest to \u003ccode\u003e9.0.3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36801\"\u003e#36801\u003c/a\u003e)\nchore: bump langsmith from 0.6.3 to 0.7.31 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36795\"\u003e#36795\u003c/a\u003e)\nchore: bump pillow from 12.1.1 to 12.2.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36777\"\u003e#36777\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.1.13\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.1.12\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.1.13 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36729\"\u003e#36729\u003c/a\u003e)\nfix(openai): handle content blocks without type key in responses api conversion (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36725\"\u003e#36725\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36539\"\u003e#36539\u003c/a\u003e)\nchore(openai): fix broken vcr cassette playback and add ci guard (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36502\"\u003e#36502\u003c/a\u003e)\nfix(openai,groq,openrouter): use is-not-None checks in usage metadata token extraction (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36500\"\u003e#36500\u003c/a\u003e)\nfix(core): fixed typos in the documentation (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36459\"\u003e#36459\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36455\"\u003e#36455\u003c/a\u003e)\nfeat(core): impute placeholder filenames for OpenAI file inputs (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36433\"\u003e#36433\u003c/a\u003e)\nchore: pygments\u0026gt;=2.20.0 across all packages (CVE-2026-4539) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36385\"\u003e#36385\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36368\"\u003e#36368\u003c/a\u003e)\nfix(openai): update computer call test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36352\"\u003e#36352\u003c/a\u003e)\nfix(openai): let user-provided User-Agent override the Azure default (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35523\"\u003e#35523\u003c/a\u003e)\nchore: bump requests from 2.32.5 to 2.33.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36248\"\u003e#36248\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.1.12\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.1.11\u003c/p\u003e\n\u003cp\u003efix(openai): bump min core version (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36180\"\u003e#36180\u003c/a\u003e)\nrelease(openai): 1.1.12 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36178\"\u003e#36178\u003c/a\u003e)\nfix(core,model-profiles): add missing \u003ccode\u003eModelProfile\u003c/code\u003e fields, warn on schema drift (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36129\"\u003e#36129\u003c/a\u003e)\nfix(openai): support phase parameter (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36161\"\u003e#36161\u003c/a\u003e)\nfix(openai): preserve namespace field in streaming function_call chunks (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36108\"\u003e#36108\u003c/a\u003e)\nci: suppress pytest streaming output in CI (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36092\"\u003e#36092\u003c/a\u003e)\nci: avoid unnecessary dep installs in lint targets (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36046\"\u003e#36046\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36039\"\u003e#36039\u003c/a\u003e)\nchore: bump orjson from 3.11.5 to 3.11.6 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35860\"\u003e#35860\u003c/a\u003e)\nfix(openai): add type: message to Responses API input items (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35693\"\u003e#35693\u003c/a\u003e)\nperf(.github): set a timeout on get min versions HTTP calls (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35851\"\u003e#35851\u003c/a\u003e)\nfeat(model-profiles): new fields + \u003ccode\u003eMakefile\u003c/code\u003e target (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35788\"\u003e#35788\u003c/a\u003e)\nfix(openai): close PIL Image handles in token counting to prevent fd leak (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35742\"\u003e#35742\u003c/a\u003e)\nfix(openai): typo (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35763\"\u003e#35763\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35754\"\u003e#35754\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.1.11\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.1.10\u003c/p\u003e\n\u003cp\u003efix(openai): bump min core version (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35705\"\u003e#35705\u003c/a\u003e)\nrelease(openai): 1.1.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35703\"\u003e#35703\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/langchain-ai/langchain/commit/b7447c6969fc928ec3f29c200e2e56c0a46c4c77\"\u003e\u003ccode\u003eb7447c6\u003c/code\u003e\u003c/a\u003e fix(infra): skip serdes tests in min-version release step (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36818\"\u003e#36818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/41c0cc58b0dac82000d24715f7a4b44dc8b01fd3\"\u003e\u003ccode\u003e41c0cc5\u003c/code\u003e\u003c/a\u003e release(openai): 1.1.14 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36820\"\u003e#36820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0516156ef98f5001129f6d47bc8682d6536d58fb\"\u003e\u003ccode\u003e0516156\u003c/code\u003e\u003c/a\u003e fix(openai): use SSRF-safe transport for image token counting (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36819\"\u003e#36819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/338aa8131a8124e7aa1e042616ccd2366ff9f699\"\u003e\u003ccode\u003e338aa81\u003c/code\u003e\u003c/a\u003e fix(core): restore cloud metadata IPs and link-local range in SSRF policy (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/51e954877efd2d2c3c5bf09364dcfec8794eadb0\"\u003e\u003ccode\u003e51e9548\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36797\"\u003e#36797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e85c418cfa559d4a794ddc6db92c6febab44651c\"\u003e\u003ccode\u003ee85c418\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/model-profiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36798\"\u003e#36798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/789126e6c78ad74664bea26228dda6e72e135dce\"\u003e\u003ccode\u003e789126e\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/standard-tests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36799\"\u003e#36799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/937b3eb3827551d17ee4736f9acc4aa57e88c716\"\u003e\u003ccode\u003e937b3eb\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/langchain_v1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36800\"\u003e#36800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a06c205738cf5953e28c37287ddb1559d67c01f6\"\u003e\u003ccode\u003ea06c205\u003c/code\u003e\u003c/a\u003e ci(infra): validate issue checkboxes by section (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36811\"\u003e#36811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/aa33b06deb0d65489ce254b48a8aaf8a86304c18\"\u003e\u003ccode\u003eaa33b06\u003c/code\u003e\u003c/a\u003e fix(langchain-classic): suppress mypy errors in compat code (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36806\"\u003e#36806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-openai==1.0.2...langchain-openai==1.1.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-text-splitters` from 1.0.0 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-text-splitters's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-text-splitters==1.1.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-text-splitters==1.1.1\u003c/p\u003e\n\u003cp\u003erelease(text-splitters): 1.1.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36822\"\u003e#36822\u003c/a\u003e)\nfix(text-splitters): deprecate and use SSRF-safe transport in split_text_from_url (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36821\"\u003e#36821\u003c/a\u003e)\nchore: bump langsmith from 0.6.3 to 0.7.31 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36797\"\u003e#36797\u003c/a\u003e)\nchore(deps): bump pytest to \u003ccode\u003e9.0.3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36801\"\u003e#36801\u003c/a\u003e)\nchore: bump pytest from 9.0.2 to 9.0.3 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36714\"\u003e#36714\u003c/a\u003e)\nchore: add comment explaining \u003ccode\u003epygments\u0026gt;=2.20.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36570\"\u003e#36570\u003c/a\u003e)\nrelease(core): 1.2.26 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36511\"\u003e#36511\u003c/a\u003e)\nchore: pygments\u0026gt;=2.20.0 across all packages (CVE-2026-4539) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36385\"\u003e#36385\u003c/a\u003e)\nfix(text-splitters): prevent silent data loss for empty dict values in RecursiveJsonSplitter (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35079\"\u003e#35079\u003c/a\u003e)\nfeat(text-splitters): support spacy tests with Python 3.14 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36198\"\u003e#36198\u003c/a\u003e)\nfix(infra): correct lint_diff relative paths in package makefiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36333\"\u003e#36333\u003c/a\u003e)\nchore: bump requests from 2.32.5 to 2.33.0 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36238\"\u003e#36238\u003c/a\u003e)\nchore: bump nltk from 3.9.3 to 3.9.4 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36237\"\u003e#36237\u003c/a\u003e)\nchore(partners): bump \u003ccode\u003elangchain-core\u003c/code\u003e min to \u003ccode\u003e1.2.21\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36183\"\u003e#36183\u003c/a\u003e)\nchore(text-splitters): bump nltk in lock file (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36112\"\u003e#36112\u003c/a\u003e)\nci: suppress pytest streaming output in CI (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36092\"\u003e#36092\u003c/a\u003e)\nchore(text-splitters): speed up ci (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36050\"\u003e#36050\u003c/a\u003e)\nci: avoid unnecessary dep installs in lint targets (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36046\"\u003e#36046\u003c/a\u003e)\nchore: bump orjson from 3.11.5 to 3.11.6 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35856\"\u003e#35856\u003c/a\u003e)\nchore: bump locks, lint (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35985\"\u003e#35985\u003c/a\u003e)\nperf(.github): set a timeout on get min versions HTTP calls (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35851\"\u003e#35851\u003c/a\u003e)\nchore: bump tornado from 6.5.2 to 6.5.5 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35774\"\u003e#35774\u003c/a\u003e)\nchore: bump the minor-and-patch group across 3 directories with 3 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35589\"\u003e#35589\u003c/a\u003e)\nchore: bump the other-deps group across 3 directories with 2 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35512\"\u003e#35512\u003c/a\u003e)\nchore: bump nltk from 3.9.2 to 3.9.3 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35449\"\u003e#35449\u003c/a\u003e)\nchore: bump the other-deps group across 3 directories with 2 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35407\"\u003e#35407\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-text-splitters==1.1.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-text-splitters==1.1.0\u003c/p\u003e\n\u003cp\u003erelease(text-splitters): 1.1.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35318\"\u003e#35318\u003c/a\u003e)\nfix(text-splitters): prevent JSFrameworkTextSplitter from mutating self._separators on each split_text() call (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35316\"\u003e#35316\u003c/a\u003e)\nchore: bump transformers from 5.1.0 to 5.2.0 in /libs/text-splitters in the other-deps group across 1 directory (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35279\"\u003e#35279\u003c/a\u003e)\nchore: bump the other-deps group across 3 directories with 2 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35255\"\u003e#35255\u003c/a\u003e)\nstyle: bump ruff version to 0.15 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35042\"\u003e#35042\u003c/a\u003e)\nfix: Server-Side Request Forgery (SSRF) in HTMLHeaderTextSplitter.split_text_from_url (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35196\"\u003e#35196\u003c/a\u003e)\nfeat(text-splitters): add model_kwargs to SentenceTransformersTokenTextSplitter (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35113\"\u003e#35113\u003c/a\u003e)\nchore(deps): bump langsmith from 0.4.31 to 0.6.3 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35162\"\u003e#35162\u003c/a\u003e)\nchore(deps): bump the other-deps group across 3 directories with 12 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35127\"\u003e#35127\u003c/a\u003e)\nchore(deps): bump the other-deps group across 3 directories with 8 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35120\"\u003e#35120\u003c/a\u003e)\nchore: add \u003ccode\u003emake type\u003c/code\u003e target (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35015\"\u003e#35015\u003c/a\u003e)\nrevert: \u0026quot;chore: add typing target in \u003ccode\u003eMakefile\u003c/code\u003e\u0026quot; (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35013\"\u003e#35013\u003c/a\u003e)\nchore: add typing target in \u003ccode\u003eMakefile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35012\"\u003e#35012\u003c/a\u003e)\nfix(text-splitters): reverse preserved elements iterator in \u003ccode\u003eHTMLSemanticPreservingSplitter\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34080\"\u003e#34080\u003c/a\u003e)\nchore: enrich \u003ccode\u003epyproject.toml\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34980\"\u003e#34980\u003c/a\u003e)\nchore(deps): bump the uv group across 20 directories with 3 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34941\"\u003e#34941\u003c/a\u003e)\nchore: upgrade urllib3 to 2.6.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34940\"\u003e#34940\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/langchain-ai/langchain/commit/58c4e5bbdd9d18d7fe7ec83b5a05477d06fe2a8e\"\u003e\u003ccode\u003e58c4e5b\u003c/code\u003e\u003c/a\u003e release(text-splitters): 1.1.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36822\"\u003e#36822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/c289bf10e940e960a132d7403482283114063063\"\u003e\u003ccode\u003ec289bf1\u003c/code\u003e\u003c/a\u003e fix(text-splitters): deprecate and use SSRF-safe transport in split_text_from...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/b7447c6969fc928ec3f29c200e2e56c0a46c4c77\"\u003e\u003ccode\u003eb7447c6\u003c/code\u003e\u003c/a\u003e fix(infra): skip serdes tests in min-version release step (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36818\"\u003e#36818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/41c0cc58b0dac82000d24715f7a4b44dc8b01fd3\"\u003e\u003ccode\u003e41c0cc5\u003c/code\u003e\u003c/a\u003e release(openai): 1.1.14 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36820\"\u003e#36820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0516156ef98f5001129f6d47bc8682d6536d58fb\"\u003e\u003ccode\u003e0516156\u003c/code\u003e\u003c/a\u003e fix(openai): use SSRF-safe transport for image token counting (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36819\"\u003e#36819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/338aa8131a8124e7aa1e042616ccd2366ff9f699\"\u003e\u003ccode\u003e338aa81\u003c/code\u003e\u003c/a\u003e fix(core): restore cloud metadata IPs and link-local range in SSRF policy (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/51e954877efd2d2c3c5bf09364dcfec8794eadb0\"\u003e\u003ccode\u003e51e9548\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36797\"\u003e#36797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e85c418cfa559d4a794ddc6db92c6febab44651c\"\u003e\u003ccode\u003ee85c418\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/model-profiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36798\"\u003e#36798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/789126e6c78ad74664bea26228dda6e72e135dce\"\u003e\u003ccode\u003e789126e\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/standard-tests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36799\"\u003e#36799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/937b3eb3827551d17ee4736f9acc4aa57e88c716\"\u003e\u003ccode\u003e937b3eb\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/langchain_v1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36800\"\u003e#36800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-text-splitters==1.0.0...langchain-text-splitters==1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group 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/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\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/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd124...\n\n_Description has been truncated_\n\n\u003c!-- This is an auto-generated description by cubic. --\u003e\n---\n## Summary by cubic\nUpgrade dependencies across 18 directories to align with the latest LangChain stack and apply security fixes. This improves stability and security, but includes a few breaking changes that need small code updates.\n\n- **Dependencies**\n  - LangChain stack: `langchain` 1.3.x, `langchain-core` 1.3.3, `langchain-community` 0.3.27–0.4.2, `langchain-openai` 1.1.14, `langchain-text-splitters` 1.1.2, `langgraph` 1.0.10rc1.\n  - Security updates: `requests` (varies by app, up to 2.33.0), `lxml_html_clean` 0.4.4, `pillow` 12.2.0.\n  - Env/tools: `python-dotenv` 1.2.2, `browser-use` 0.1.45.\n  - RAG/agents: `llama-index` 0.13.0, `dspy` 3.1.0b1.\n  - Memory tutorials: `mem0ai` 2.0.0b2.\n\n- **Migration**\n  - Python versions: `requests` and `python-dotenv` drop Python 3.9. Ensure runtimes use 3.10+.\n  - `browser-use`: replace `BrowserWindowContextSize(...)` with flat `BrowserContextConfig(window_width=..., window_height=...)`.\n  - `python-dotenv`: symlink behavior changed. If you relied on it, pass `follow_symlinks=True` to `set_key`/`unset_key`.\n  - LangChain/LangGraph: 1.x/1.0 RC may require small import or graph API tweaks. Run affected RAG tutorials and fix any import/runtime errors.\n  - Memory tutorials: `mem0ai` 2.x beta has API changes. Validate memory flows and adjust calls as needed.\n\n\u003csup\u003eWritten for commit 01b62dfdea89904e6a4105d19d53c6ff082f91cc. Summary will update on new commits.\u003c/sup\u003e\n\n\u003ca href=\"https://cubic.dev/pr/EmilynnJ/awesome-llm-apps/pull/1?utm_source=github\" target=\"_blank\" rel=\"noopener noreferrer\" data-no-image-dialog=\"true\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://cubic.dev/buttons/review-in-cubic-dark.svg\"\u003e\u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://cubic.dev/buttons/review-in-cubic-light.svg\"\u003e\u003cimg alt=\"Review in cubic\" src=\"https://cubic.dev/buttons/review-in-cubic-dark.svg\"\u003e\u003c/picture\u003e\u003c/a\u003e\n\n\u003c!-- End of auto-generated description by cubic. --\u003e\n\n\n\n\u003c!-- Macroscope's pull request summary starts here --\u003e\n\u003c!-- Macroscope will only edit the content between these invisible markers, and the markers themselves will not be visible in the GitHub rendered markdown. --\u003e\n\u003c!-- If you delete either of the start / end markers from your PR's description, Macroscope will append its summary at the bottom of the description. --\u003e\n\u003e [!NOTE]\n\u003e ### Bump pip dependencies across 18 directories with 13 package updates\n\u003e - Updates `mem0ai` from 0.1.29 to 2.0.0b2 across four memory tutorial projects.\n\u003e - Updates `langchain`, `langgraph`, `langchain-openai`, `langchain-community`, and `langchain-core` to v1.x in several RAG tutorials (e.g. `corrective_rag`, `rag_agent_cohere`, `rag_database_routing`, `voice_rag_openaisdk`).\n\u003e - Updates `Pillow` from 10.x to 12.2.0 in three starter agents, `dspy` from 2.6.18 to 3.1.0b1 and `llama-index` from 0.12.33 to 0.13.0 in `agentic_rag_math_agent`, and `browser-use` from 0.1.26 to 0.1.45 in the meme generator agent.\n\u003e - Risk: `mem0ai` 2.0.0b2 and `dspy` 3.1.0b1 are pre-release versions; `langchain`/`langgraph` major version bumps may introduce breaking API changes.\n\u003e\n\u003e \u003c!-- Macroscope's review summary starts here --\u003e\n\u003e\n\u003e \u003csup\u003e\u003ca href=\"https://app.macroscope.com\"\u003eMacroscope\u003c/a\u003e summarized 01b62df.\u003c/sup\u003e\n\u003e \u003c!-- Macroscope's review summary ends here --\u003e\n\u003e\n\u003c!-- macroscope-ui-refresh --\u003e\n\u003c!-- Macroscope's pull request summary ends here --\u003e","html_url":"https://github.com/EmilynnJ/awesome-llm-apps/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmilynnJ%2Fawesome-llm-apps/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"},{"uuid":"4520823235","node_id":"PR_kwDOPsndK87fPIBg","number":4,"state":"open","title":"chore(deps): bump the uv group across 1 directory with 9 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-26T02:24:03.000Z","updated_at":"2026-05-26T02:24:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv","update_count":9,"packages":[{"name":"pillow","old_version":"12.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"protobuf","old_version":"6.33.0","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pypdf","old_version":"6.1.3","new_version":"6.10.2","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"cryptography","old_version":"46.0.3","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"idna","old_version":"3.11","new_version":"3.15","repository_url":"https://github.com/kjd/idna"},{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv group with 9 updates in the /docreader directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.0.0` | `12.2.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.0` | `6.33.5` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.1.3` | `6.10.2` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.3` | `46.0.7` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.15` |\n| [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) | `0.4.3` | `0.4.4` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.7.0` |\n\n\nUpdates `pillow` from 12.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.2.0\"\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.0 to 6.33.5\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\u003cli\u003e[Python] 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[Python] Remove deprecated FieldDescriptor.label (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] 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\u003ca href=\"https://protobuf.dev/news/\"\u003eProtobuf News\u003c/a\u003e may include additional announcements or pre-announcements for upcoming changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/support/migration/\"\u003eMigration Guide\u003c/a\u003e may include additional guidance for breaking changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBazel\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/25168\"\u003e#25168\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBreaking change: 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\u003eFeat(bazel): wire up prebuilt protoc toolchain (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/24115\"\u003e#24115\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eproto_descriptor_set\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/23369\"\u003e#23369\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCompiler\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRuby codegen: support generation of rbs files (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/15633\"\u003e#15633\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid collision name problems between a message named \u003ccode\u003eXyz\u003c/code\u003e and a direct sibling enum named \u003ccode\u003eXyzView\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGeneralizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug with custom features outside of the \u003ccode\u003epb\u003c/code\u003e package. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix import option handling when include_imports isn't set. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent accidental stripping of \u003ccode\u003edebug_redact\u003c/code\u003e options via import option. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd EnumerateEnumValues function. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\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\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.1.3 to 6.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.10.2, 2026-04-15\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.1, 2026-04-14\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse new parameter names for compress_identical_objects by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.0, 2026-04-10\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisallow custom XML entity declarations for XMP metadata (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3724\"\u003e#3724\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip MD5 key derivation for AES-256 encrypted PDFs (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3694\"\u003e#3694\u003c/a\u003e) by \u003ca href=\"https://github.com/Ygnas\"\u003e\u003ccode\u003e@​Ygnas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse remove_orphans in compress_identical_objects (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3310\"\u003e#3310\u003c/a\u003e) by \u003ca href=\"https://github.com/j-t-1\"\u003e\u003ccode\u003e@​j-t-1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PdfReadError when xref table contains comments before trailer (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3710\"\u003e#3710\u003c/a\u003e) by \u003ca href=\"https://github.com/rassie\"\u003e\u003ccode\u003e@​rassie\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly verify AES padding during decryption (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3699\"\u003e#3699\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stale object cache from non-authoritative object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3698\"\u003e#3698\u003c/a\u003e) by \u003ca href=\"https://github.com/astahlman\"\u003e\u003ccode\u003e@​astahlman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extract_links pairing when annotations include non-links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3687\"\u003e#3687\u003c/a\u003e) by \u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI policy (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3717\"\u003e#3717\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.9.2, 2026-03-23\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid infinite loop in read_from_stream for broken files (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3693\"\u003e#3693\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.10.2, 2026-04-15\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.1, 2026-04-14\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse new parameter names for compress_identical_objects\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.0, 2026-04-10\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisallow custom XML entity declarations for XMP metadata (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3724\"\u003e#3724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip MD5 key derivation for AES-256 encrypted PDFs (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3694\"\u003e#3694\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse remove_orphans in compress_identical_objects (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3310\"\u003e#3310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PdfReadError when xref table contains comments before trailer (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3710\"\u003e#3710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly verify AES padding during decryption (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stale object cache from non-authoritative object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix extract_links pairing when annotations include non-links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3687\"\u003e#3687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI policy (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3717\"\u003e#3717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.9.2, 2026-03-23\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid infinite loop in read_from_stream for broken files (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve UnboundLocalError for xobjs in _get_image (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3684\"\u003e#3684\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.1...6.9.2\"\u003eFull Changelog\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/py-pdf/pypdf/commit/c476b4f293c8ef4cac07dfb755e5582d838fcdc0\"\u003e\u003ccode\u003ec476b4f\u003c/code\u003e\u003c/a\u003e REL: 6.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/c50a0104cf083356f7c7f5d61410466a57f5c88a\"\u003e\u003ccode\u003ec50a010\u003c/code\u003e\u003c/a\u003e SEC: Do not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/ac734dab4eef92bcce50d503949b4d9887d89f11\"\u003e\u003ccode\u003eac734da\u003c/code\u003e\u003c/a\u003e SEC: Introduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/b49e7eb45422c19b68ac59c51b7699409e74d44e\"\u003e\u003ccode\u003eb49e7eb\u003c/code\u003e\u003c/a\u003e REL: 6.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/62338e9d36419cf193ccec7331784f45df1d70b3\"\u003e\u003ccode\u003e62338e9\u003c/code\u003e\u003c/a\u003e SEC: Limit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/5dcc0aebaa2c732028ea8def2eb9982e324b7c11\"\u003e\u003ccode\u003e5dcc0ae\u003c/code\u003e\u003c/a\u003e DEV: Update pytest-benchmark to 5.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/b42e4aa98ae5c7fdd02558d165d39fe639fdf97d\"\u003e\u003ccode\u003eb42e4aa\u003c/code\u003e\u003c/a\u003e DEV: Update pinned pillow and pytest where possible (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3732\"\u003e#3732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/717446b1218a3eb236cb47d1bae2b68451ccb6c0\"\u003e\u003ccode\u003e717446b\u003c/code\u003e\u003c/a\u003e ROB: Consider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/9e461d361b9004da68fc8e6acc4308cce68aa304\"\u003e\u003ccode\u003e9e461d3\u003c/code\u003e\u003c/a\u003e DEV: Bump softprops/action-gh-release from 2 to 3 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3730\"\u003e#3730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/500d09d92fa80a6f1fcdfa46656893efd05e91ff\"\u003e\u003ccode\u003e500d09d\u003c/code\u003e\u003c/a\u003e TST: Update \u003ccode\u003etest_embedded_file__basic\u003c/code\u003e to use \u003ccode\u003etmp_path\u003c/code\u003e fixture (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.1.3...6.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.3 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\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/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.3...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.11 to 3.15\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.15 (2026-05-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnforce DNS-length cap on individual labels early in \u003ccode\u003echeck_label\u003c/code\u003e,\nshort-circuiting contextual-rule processing for oversized input\nwhile staying compatible with UTS 46 usage.\u003c/li\u003e\n\u003cli\u003eTidy core helpers: hoist bidi category sets to module-level\nfrozensets (avoiding per-codepoint list construction), simplify\nlength checks, and reuse the shared \u003ccode\u003e_unicode_dots_re\u003c/code\u003e from\n\u003ccode\u003eidna.core\u003c/code\u003e in the codec module.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eraise ... from err\u003c/code\u003e for proper exception chaining and\nswitch internal string formatting to f-strings.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eflit_core\u003c/code\u003e 4.x in the build backend.\u003c/li\u003e\n\u003cli\u003eExpand the ruff lint set (flake8-bugbear, flake8-simplify,\npyupgrade, perflint) and apply the surfaced fixes; pin lint CI\nto Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration for GitHub Actions.\u003c/li\u003e\n\u003cli\u003eConvert README and HISTORY from reStructuredText to Markdown.\u003c/li\u003e\n\u003cli\u003eReference CVE-2026-45409 for the 3.14 advisory in place of the\ninitial GHSA identifier.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Felix Yan, Stan Ulbrych, and metsw24-max for\ncontributions to this release.\u003c/p\u003e\n\u003ch2\u003e3.14 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved opportunity to process long inputs into quadratic\ntime by rejecting oversize inputs up-front. Closes a bypass\nof the CVE-2024-3651 mitigation. [CVE-2026-45409]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Stan Ulbrych for reporting the issue.\u003c/p\u003e\n\u003ch2\u003e3.13 (2026-04-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.12 (2026-04-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\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/kjd/idna/commit/af30a092e158181d0b35ac66dfa813788126bdd8\"\u003e\u003ccode\u003eaf30a09\u003c/code\u003e\u003c/a\u003e Release 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/30314d4628744ca14cf2b5820564e5127a9f86f2\"\u003e\u003ccode\u003e30314d4\u003c/code\u003e\u003c/a\u003e Pre-release 3.15rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05d4b219aa9eddc47371fcbd2000f0301016f3e9\"\u003e\u003ccode\u003e05d4b21\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/237\"\u003e#237\u003c/a\u003e from kjd/convert-docs-to-markdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/2987fdba1962bbb2358399e0084ba062b98a0bee\"\u003e\u003ccode\u003e2987fdb\u003c/code\u003e\u003c/a\u003e Convert README and HISTORY from reStructuredText to Markdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/59fa8002d514bf4a5ce7b58f67b9ec587d53fa9c\"\u003e\u003ccode\u003e59fa800\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/236\"\u003e#236\u003c/a\u003e from kjd/dependabot/github_actions/actions-f3e34333ea\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/def69834ced5d4b3c50439d8b99c4c856ec19ca2\"\u003e\u003ccode\u003edef6983\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dependabot/github_actions/actions-f3e34333ea\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/bbd8004a797185d8c56bb555cd5c88fde05e0631\"\u003e\u003ccode\u003ebbd8004\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/234\"\u003e#234\u003c/a\u003e from StanFromIreland/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/edd07c05024344a6ccb517414ccb36683aee99fc\"\u003e\u003ccode\u003eedd07c0\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.35.2 to 4.35.2 in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5557db030c11bdec50d62aa5f631d705d33ba123\"\u003e\u003ccode\u003e5557db0\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/f11746cf4981d25123ef7830d3ee60f07de8ae3d\"\u003e\u003ccode\u003ef11746c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/235\"\u003e#235\u003c/a\u003e from StanFromIreland/patch-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.15\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.3 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group 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/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\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/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eAddressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be marginal.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDecompression-bomb safeguards of the streaming API were bypassed:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eWhen \u003ccode\u003eHTTPResponse.drain_conn()\u003c/code\u003e was called after the response had been read and decompressed partially. (Reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDuring the second \u003ccode\u003eHTTPResponse.read(amt=N)\u003c/code\u003e or \u003ccode\u003eHTTPResponse.stream(amt=N)\u003c/code\u003e call when the response was decompressed using the official \u003ca href=\"https://pypi.org/project/brotli/\"\u003eBrotli\u003c/a\u003e library. (Reported by \u003ca href=\"https://github.com/kimkou2024\"\u003e\u003ccode\u003e@​kimkou2024\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eSee GHSA-mf9v-mfxr-j63j for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHTTP pools created using \u003ccode\u003eProxyManager.connection_from_url\u003c/code\u003e did not strip sensitive headers specified in \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e when redirecting to a different host. (GHSA-qccp-gfcp-xxvc reported by \u003ca href=\"https://github.com/christos-spearbit\"\u003e\u003ccode\u003e@​christos-spearbit\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUsed \u003ccode\u003eFutureWarning\u003c/code\u003e instead of \u003ccode\u003eDeprecationWarning\u003c/code\u003e for better visibility of existing deprecation notices. Rescheduled the removal of deprecated features to version 3.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3763\"\u003eurllib3/urllib3#3763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved support for end-of-life Python 3.9. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3720\"\u003eurllib3/urllib3#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved support for end-of-life PyPy3.10. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/4979\"\u003eurllib3/urllib3#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum supported pyOpenSSL version to 19.0.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3777\"\u003eurllib3/urllib3#3777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eHTTPResponse.read(amt=None)\u003c/code\u003e was ignoring decompressed data buffered from previous partial reads. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3636\"\u003eurllib3/urllib3#3636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eHTTPResponse.read()\u003c/code\u003e could cache only part of the response after a partial read when \u003ccode\u003ecache_content=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/4967\"\u003eurllib3/urllib3#4967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.stream()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to handle \u003ccode\u003eamt=0\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3793\"\u003eurllib3/urllib3#3793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003e_TYPE_BODY\u003c/code\u003e type alias to include missing \u003ccode\u003eIterable[str]\u003c/code\u003e, matching the documented and runtime behavior of chunked request bodies. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3798\"\u003eurllib3/urllib3#3798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eLocationParseError\u003c/code\u003e when paths resembling schemeless URIs were passed to \u003ccode\u003eHTTPConnectionPool.urlopen()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3352\"\u003eurllib3/urllib3#3352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eBaseHTTPResponse.readinto()\u003c/code\u003e type annotation to accept \u003ccode\u003ememoryview\u003c/code\u003e in addition to \u003ccode\u003ebytearray\u003c/code\u003e, matching the \u003ccode\u003eio.RawIOBase.readinto\u003c/code\u003e contract and enabling use with \u003ccode\u003eio.BufferedReader\u003c/code\u003e without type errors. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3764\"\u003eurllib3/urllib3#3764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHS...\n\n_Description has been truncated_\n\n---\n\n📦 This PR updates 9 Python dependencies in the docreader module, including both direct dependencies (pillow, protobuf, pypdf, requests) and indirect dependencies (cryptography, idna, lxml-html-clean, python-dotenv, urllib3) to their latest versions.\n\n\u003cdetails\u003e\n\u003csummary\u003e🔍 \u003cstrong\u003eDetailed Analysis\u003c/strong\u003e\u003c/summary\u003e\n\n### Key Changes\n- **Direct Dependencies**: Updated pillow (12.0.0→12.2.0), protobuf (6.33.0→6.33.5), pypdf (6.1.3→6.10.2), and requests (2.32.5→2.33.0)\n- **Indirect Dependencies**: Updated cryptography (46.0.3→46.0.7), idna (3.11→3.15), lxml-html-clean (0.4.3→0.4.4), python-dotenv (1.2.1→1.2.2), and urllib3 (2.5.0→2.7.0)\n- **Security Improvements**: Multiple packages include critical security fixes, particularly pypdf, cryptography, urllib3, and lxml-html-clean\n\n### Technical Implementation\n```mermaid\nflowchart TD\n    A[Dependency Update Process] --\u003e B[Direct Dependencies]\n    A --\u003e C[Indirect Dependencies]\n    \n    B --\u003e D[pillow 12.2.0\u003cbr/\u003eImage processing improvements]\n    B --\u003e E[protobuf 6.33.5\u003cbr/\u003eProtocol buffer updates]\n    B --\u003e F[pypdf 6.10.2\u003cbr/\u003ePDF security fixes]\n    B --\u003e G[requests 2.33.0\u003cbr/\u003eHTTP library updates]\n    \n    C --\u003e H[cryptography 46.0.7\u003cbr/\u003eCVE fixes]\n    C --\u003e I[idna 3.15\u003cbr/\u003eUnicode handling]\n    C --\u003e J[lxml-html-clean 0.4.4\u003cbr/\u003eHTML sanitization]\n    C --\u003e K[python-dotenv 1.2.2\u003cbr/\u003eEnvironment variables]\n    C --\u003e L[urllib3 2.7.0\u003cbr/\u003eHTTP connection pooling]\n    \n    D --\u003e M[Enhanced Security \u0026 Stability]\n    E --\u003e M\n    F --\u003e M\n    G --\u003e M\n    H --\u003e M\n    I --\u003e M\n    J --\u003e M\n    K --\u003e M\n    L --\u003e M\n```\n\n### Impact\n- **Security Enhancement**: Addresses multiple CVEs including buffer overflow fixes in cryptography, decompression bomb protections in urllib3, and XSS prevention in lxml-html-clean\n- **Stability Improvements**: pypdf received significant updates (6.1.3→6.10.2) with numerous bug fixes and robustness improvements for PDF processing\n- **Compatibility Maintenance**: Updates maintain backward compatibility while providing latest features and performance optimizations across the document processing pipeline\n\n\u003c/details\u003e\n\n_Created with [Palmier](https://www.palmier.io)_","html_url":"https://github.com/GlacierEQ/WeKnora/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlacierEQ%2FWeKnora/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"4459256565","node_id":"PR_kwDORSvhlc7cLiiL","number":1,"state":"open","title":"Bump the pip group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T08:28:01.000Z","updated_at":"2026-05-16T08:28:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":11,"packages":[{"name":"fastmcp","old_version":"2.13.1","new_version":"3.2.0","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"simpleeval","old_version":"1.0.3","new_version":"1.0.5","repository_url":"https://github.com/danthedeckie/simpleeval"},{"name":"langchain-core","old_version":"0.3.49","new_version":"1.3.3","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-community","old_version":"0.3.19","new_version":"0.3.27","repository_url":"https://github.com/langchain-ai/langchain-community"},{"name":"lxml-html-clean","old_version":"0.3.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"mcp","old_version":"1.22.0","new_version":"1.23.0","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"paramiko","old_version":"3.5.0","new_version":"5.0.0","repository_url":"https://github.com/paramiko/paramiko"},{"name":"pypdf","old_version":"6.0.0","new_version":"6.10.2","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"unstructured","old_version":"0.16.23","new_version":"0.18.18","repository_url":"https://github.com/Unstructured-IO/unstructured"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `2.13.1` | `3.2.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.3` |\n| [simpleeval](https://github.com/danthedeckie/simpleeval) | `1.0.3` | `1.0.5` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `0.3.49` | `1.3.3` |\n| [langchain-community](https://github.com/langchain-ai/langchain-community) | `0.3.19` | `0.3.27` |\n| [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) | `0.3.1` | `0.4.4` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.22.0` | `1.23.0` |\n| [paramiko](https://github.com/paramiko/paramiko) | `3.5.0` | `5.0.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.0.0` | `6.10.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.2.2` |\n| [unstructured](https://github.com/Unstructured-IO/unstructured) | `0.16.23` | `0.18.18` |\n\n\nUpdates `fastmcp` from 2.13.1 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.0: Show Don't Tool\u003c/h2\u003e\n\u003cp\u003eFastMCP 3.2 is the Apps release. The 3.0 architecture gave you providers and transforms; 3.1 shipped Code Mode for tool discovery. 3.2 puts a face on it: your tools can now return interactive UIs — charts, dashboards, forms, maps — rendered right inside the conversation.\u003c/p\u003e\n\u003ch2\u003eFastMCPApp\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFastMCPApp\u003c/code\u003e is a new provider class for building interactive applications inside MCP. It separates the tools the LLM sees (\u003ccode\u003e@app.ui()\u003c/code\u003e) from the backend tools the UI calls (\u003ccode\u003e@app.tool()\u003c/code\u003e), manages visibility automatically, and gives tool references stable identifiers that survive namespace transforms and server composition — without requiring host cooperation.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom fastmcp import FastMCP, FastMCPApp\nfrom prefab_ui.actions.mcp import CallTool\nfrom prefab_ui.components import Column, Form, Input, Button, ForEach, Text\n\u003cp\u003eapp = FastMCPApp(\u0026quot;Contacts\u0026quot;)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/app\"\u003e\u003ccode\u003e@​app\u003c/code\u003e\u003c/a\u003e.tool()\ndef save_contact(name: str, email: str) -\u0026gt; list[dict]:\ndb.append({\u0026quot;name\u0026quot;: name, \u0026quot;email\u0026quot;: email})\nreturn list(db)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/app\"\u003e\u003ccode\u003e@​app\u003c/code\u003e\u003c/a\u003e.ui()\ndef contact_manager() -\u0026gt; PrefabApp:\nwith PrefabApp(state={\u0026quot;contacts\u0026quot;: list(db)}) as view:\nwith Column(gap=4):\nForEach(\u0026quot;contacts\u0026quot;, lambda c: Text(c.name))\nwith Form(on_submit=CallTool(\u0026quot;save_contact\u0026quot;)):\nInput(name=\u0026quot;name\u0026quot;, required=True)\nInput(name=\u0026quot;email\u0026quot;, required=True)\nButton(\u0026quot;Save\u0026quot;)\nreturn view\u003c/p\u003e\n\u003cp\u003emcp = FastMCP(\u0026quot;Server\u0026quot;, providers=[app])\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThe UI is built with \u003ca href=\"https://prefab.prefect.io\"\u003ePrefab\u003c/a\u003e, a Python component library that compiles to interactive UIs. You write Python; the user sees charts, tables, forms, and dashboards. FastMCP handles the MCP Apps protocol machinery — renderer resources, CSP configuration, structured content serialization — so you don't have to.\u003c/p\u003e\n\u003cp\u003eFor simpler cases where you just want to visualize data without server interaction, set \u003ccode\u003eapp=True\u003c/code\u003e on any tool and return Prefab components directly:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e@mcp.tool(app=True)\ndef revenue_chart(year: int) -\u0026gt; PrefabApp:\n    with PrefabApp() as app:\n        BarChart(data=revenue_data, series=[ChartSeries(data_key=\u0026quot;revenue\u0026quot;)])\n    return app\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eBuilt-in Providers\u003c/h2\u003e\n\u003cp\u003eFive ready-made providers you add with a single \u003ccode\u003eadd_provider()\u003c/code\u003e call:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFileUpload\u003c/strong\u003e — drag-and-drop file upload with session-scoped storage\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/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx\"\u003efastmcp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003chr /\u003e\n\u003ch2\u003etitle: \u0026quot;Changelog\u0026quot;\nicon: \u0026quot;list-check\u0026quot;\nrss: true\ntag: NEW\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases/tag/v3.1.1\"\u003ev3.1.1: 'Tis But a Patch\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003ePins \u003ccode\u003epydantic-monty\u003c/code\u003e below 0.0.8 to fix a breaking change in Monty that affects code mode. Monty 0.0.8 removed the \u003ccode\u003eexternal_functions\u003c/code\u003e constructor parameter, causing \u003ccode\u003eMontySandboxProvider\u003c/code\u003e to fail. This patch caps the version so existing installs work correctly.\u003c/p\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePin pydantic-monty below 0.0.8 to fix code mode by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3497\"\u003e#3497\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.1.0...v3.1.1\"\u003ev3.1.0...v3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases/tag/v3.1.0\"\u003ev3.1.0: Code to Joy\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eFastMCP 3.1 is the Code Mode release. The 3.0 architecture introduced providers and transforms as the extensibility layer — 3.1 puts that architecture to work, shipping the most requested capability since launch: servers that can find and execute code on behalf of agents, without requiring clients to know what tools exist.\u003c/p\u003e\n\u003ch3\u003eNew Features 🎉\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Search transforms for tool discovery by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3154\"\u003e#3154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd experimental CodeMode transform by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3297\"\u003e#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Prefab Apps integration for MCP tool UIs by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3316\"\u003e#3316\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLazy-load heavy imports to reduce import time by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3295\"\u003e#3295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd http_client parameter to all token verifiers for connection pooling by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3300\"\u003e#3300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd in-memory caching for token introspection results by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3298\"\u003e#3298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SessionStart hook to install gh CLI in cloud sessions by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3308\"\u003e#3308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ty 0.0.19 type errors by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3310\"\u003e#3310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCode Mode: Add resource limits to MontySandboxProvider by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3326\"\u003e#3326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept transforms as FastMCP init kwarg by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3324\"\u003e#3324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit large test files to comply with loq line limit by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3328\"\u003e#3328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd -m/--module flag to \u003ccode\u003efastmcp run\u003c/code\u003e and \u003ccode\u003edev inspector\u003c/code\u003e by \u003ca href=\"https://github.com/dgenio\"\u003e\u003ccode\u003e@​dgenio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3331\"\u003e#3331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search_result_serializer hook and serialize_tools_for_output_markdown by \u003ca href=\"https://github.com/MagnusS0\"\u003e\u003ccode\u003e@​MagnusS0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3337\"\u003e#3337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MultiAuth for composing multiple token verification sources by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3335\"\u003e#3335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds PropelAuth as an AuthProvider by \u003ca href=\"https://github.com/andrew-propelauth\"\u003e\u003ccode\u003e@​andrew-propelauth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3358\"\u003e#3358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace vendored DI with uncalled-for by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3301\"\u003e#3301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecompose CodeMode into composable discovery tools by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3354\"\u003e#3354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(contrib): auto-sync MCPMixin decorators with from_function signatures by \u003ca href=\"https://github.com/AnkeshThakur\"\u003e\u003ccode\u003e@​AnkeshThakur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3323\"\u003e#3323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google GenAI Sampling Handler by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/2977\"\u003e#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ListTools, search limit, and catalog size annotation to CodeMode by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3359\"\u003e#3359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configuring FastMCP transport setting in the same way as other configuration by \u003ca href=\"https://github.com/jvdmr\"\u003e\u003ccode\u003e@​jvdmr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/1796\"\u003e#1796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd include_unversioned option to VersionFilter by \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3349\"\u003e#3349\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/PrefectHQ/fastmcp/commit/665514e19a78543709be85b4261153bbe98e882f\"\u003e\u003ccode\u003e665514e\u003c/code\u003e\u003c/a\u003e Add forward_resource flag to OAuthProxy (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f189d1f7fbfd55c9f68c750a3a293e31c7586e8b\"\u003e\u003ccode\u003ef189d1f\u003c/code\u003e\u003c/a\u003e Bump pydantic-monty to 0.0.9 (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3707\"\u003e#3707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/6faa2d61f82eab670694965606fd7b14bedddc7f\"\u003e\u003ccode\u003e6faa2d6\u003c/code\u003e\u003c/a\u003e Remove hardcoded prefab-ui version from pinning warnings (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/dd8816c6ccc733048fe6208bfc8f80ded505f993\"\u003e\u003ccode\u003edd8816c\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/d27495960af23969f11d6e1e44e2018529c1c37e\"\u003e\u003ccode\u003ed274959\u003c/code\u003e\u003c/a\u003e docs: note that custom routes are unauthenticated (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3706\"\u003e#3706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/4a54be2d5f1ac8925a461e67cf993e0278729d4d\"\u003e\u003ccode\u003e4a54be2\u003c/code\u003e\u003c/a\u003e Add examples gallery page (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/961dd5045611e9c1bd6b7c4f5ac3aa14f0a30ce7\"\u003e\u003ccode\u003e961dd50\u003c/code\u003e\u003c/a\u003e Add interactive map example with geocoding (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f01d0c581c7a821a9701d6dde4d9beb95e32d479\"\u003e\u003ccode\u003ef01d0c5\u003c/code\u003e\u003c/a\u003e Add quiz example app, fix dev server empty string args (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3700\"\u003e#3700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/85b7efd74601a72c74ac68e23599de6c032bb9c4\"\u003e\u003ccode\u003e85b7efd\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3694\"\u003e#3694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/27abe3c3f0cc2ce1925cc3cbc7968d5637ebc82b\"\u003e\u003ccode\u003e27abe3c\u003c/code\u003e\u003c/a\u003e Add sales dashboard and live system monitor examples, bump prefab-ui to 0.17 ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v2.13.1...v3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.0.3 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue 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/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 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/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.1/\"\u003ehttps://pypi.org/project/Flask/3.1.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/flask/milestone/36?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/36?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. GHSA-4grg-w6v8-c28g\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5645\"\u003e#5645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands are shown. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5673\"\u003e#5673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return \u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier for Quart. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5659\"\u003e#5659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.0/\"\u003ehttps://pypi.org/project/Flask/3.1.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/33?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/33?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5623\"\u003e#5623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases. Werkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5624\"\u003e#5624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5633\"\u003e#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option responses. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5496\"\u003e#5496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and \u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when opening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5504\"\u003e#5504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only through the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added \u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation about resource limits to the security page. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5625\"\u003e#5625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the \u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5472\"\u003e#5472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files. \u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless \u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5628\"\u003e#5628\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old secret keys that can still be used for unsigning. Extensions will need to add support. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5621\"\u003e#5621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how setting \u003ccode\u003ehost_matching=True\u003c/code\u003e or \u003ccode\u003esubdomain_matching=False\u003c/code\u003e interacts with \u003ccode\u003eSERVER_NAME\u003c/code\u003e. Setting \u003ccode\u003eSERVER_NAME\u003c/code\u003e no longer restricts requests to only that domain. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5553\"\u003e#5553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.trusted_hosts\u003c/code\u003e is checked during routing, and can be set through the \u003ccode\u003eTRUSTED_HOSTS\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5636\"\u003e#5636\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/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via\n\u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. :ghsa:\u003ccode\u003e4grg-w6v8-c28g\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e5645\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands\nare shown. :issue:\u003ccode\u003e5673\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return\n\u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier\nfor Quart. :pr:\u003ccode\u003e5659\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e5623\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases.\nWerkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. :pr:\u003ccode\u003e5624,5633\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option\nresponses. :pr:\u003ccode\u003e5496\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and\n\u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when\nopening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. :issue:\u003ccode\u003e5504\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only\nthrough the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added\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/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.0.3...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simpleeval` from 1.0.3 to 1.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/danthedeckie/simpleeval/releases\"\u003esimpleeval's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.5\u003c/h2\u003e\n\u003cp\u003eFixes Security issues with \u0026quot;dangerous\u0026quot; modules \u0026amp; functions leaking through as attributes of other names, see:\u003c/p\u003e\n\u003cp\u003eFixes CVE-2026-32640\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/security/advisories/GHSA-44vg-5wv2-h2hg\"\u003ehttps://github.com/danthedeckie/simpleeval/security/advisories/GHSA-44vg-5wv2-h2hg\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking Change:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eModules \u0026amp; Submodules now are not directly usable as names or as attributes of other items, if you still need this functionality, then use the new \u003ccode\u003eModuleWrapper\u003c/code\u003e, or subclass SimpleEval to bypass it.\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/danthedeckie/simpleeval/commit/a4659fad8f3fb855acaf7667b2a48ff9f5576b5d\"\u003e\u003ccode\u003ea4659fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/danthedeckie/simpleeval/issues/171\"\u003e#171\u003c/a\u003e from danthedeckie/remove-module-access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/7c9180c52d1fcfea468ae42cf9495d8f055a2940\"\u003e\u003ccode\u003e7c9180c\u003c/code\u003e\u003c/a\u003e version number bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/cffa9f68cee54404a2ef43d949a8ae8a3311c503\"\u003e\u003ccode\u003ecffa9f6\u003c/code\u003e\u003c/a\u003e Much stricter lockdown via _check_disallowed_items plus adding ModuleWrapper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/4e7f4b81e6d32fd2c24dd5cfa2977d725e11162d\"\u003e\u003ccode\u003e4e7f4b8\u003c/code\u003e\u003c/a\u003e Add ByamB4 to contributors list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/1654cbf0219345f707c79664b8657be6b8d23e33\"\u003e\u003ccode\u003e1654cbf\u003c/code\u003e\u003c/a\u003e Disallow module access \u0026amp; disallowed function access via attributes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/9cb4a7b99498c173263bd90f77bc185e160fb6b8\"\u003e\u003ccode\u003e9cb4a7b\u003c/code\u003e\u003c/a\u003e Add a few additional DISALLOW_FUNCTIONS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/0425898b23abb3f1a9ed56dbb0bb4244d6350f2f\"\u003e\u003ccode\u003e0425898\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/danthedeckie/simpleeval/issues/169\"\u003e#169\u003c/a\u003e from danthedeckie/update-readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/618bcf4b2cb322aefc76735bf091739c8148a19e\"\u003e\u003ccode\u003e618bcf4\u003c/code\u003e\u003c/a\u003e update build tools / config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/88289434c3f88df4646ce37fc67a3ef9158917d6\"\u003e\u003ccode\u003e8828943\u003c/code\u003e\u003c/a\u003e bump version, and update copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/97570fe4659bbafdf49d9407dc4423f3c7f0f235\"\u003e\u003ccode\u003e97570fe\u003c/code\u003e\u003c/a\u003e lint string joining fixes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/danthedeckie/simpleeval/compare/1.0.3...1.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 0.3.49 to 1.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.3.3\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.3.2\u003c/p\u003e\n\u003cp\u003erelease(core): 1.3.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37198\"\u003e#37198\u003c/a\u003e)\nfix(core): set deprecation \u003ccode\u003esince\u003c/code\u003e to 1.3.3 to match release (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37200\"\u003e#37200\u003c/a\u003e)\nfix(core, langchain): harden \u003ccode\u003eload()\u003c/code\u003e against untrusted manifests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37197\"\u003e#37197\u003c/a\u003e)\nchore: bump notebook from 7.5.0 to 7.5.6 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37109\"\u003e#37109\u003c/a\u003e)\nchore: bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260408 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37129\"\u003e#37129\u003c/a\u003e)\nfix(core): preserve structured \u003ccode\u003einputs\u003c/code\u003e on tool runs in tracers (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37108\"\u003e#37108\u003c/a\u003e)\nrelease(perplexity): 1.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37091\"\u003e#37091\u003c/a\u003e)\nchore(docs): update x handle references (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37081\"\u003e#37081\u003c/a\u003e)\nfix(core): make \u003ccode\u003eremoval\u003c/code\u003e optional in \u003ccode\u003ewarn_deprecated\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37056\"\u003e#37056\u003c/a\u003e)\nfix(core): validate batch_size in _batch and _abatch to prevent infinite loop (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36663\"\u003e#36663\u003c/a\u003e)\nchore(core): mark stream_v2/astream_v2 as beta (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36992\"\u003e#36992\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.3.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.3.1\u003c/p\u003e\n\u003cp\u003erelease(core): 1.3.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36990\"\u003e#36990\u003c/a\u003e)\nfeat(core): add content-block-centric streaming (v2) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36834\"\u003e#36834\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.3.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.3.0\u003c/p\u003e\n\u003cp\u003erelease(core): 1.3.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36972\"\u003e#36972\u003c/a\u003e)\nfeat(core): allow _format_output to pass through list of ToolOutputMixin instances (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36963\"\u003e#36963\u003c/a\u003e)\nchore: bump nbconvert from 7.17.0 to 7.17.1 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36923\"\u003e#36923\u003c/a\u003e)\nfeat(core): Update inheritance behavior for tracer metadata for special keys (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36900\"\u003e#36900\u003c/a\u003e)\nchore: bump langsmith from 0.7.13 to 0.7.31 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36813\"\u003e#36813\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.3.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.31\u003c/p\u003e\n\u003cp\u003erelease(core): release 1.3.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36851\"\u003e#36851\u003c/a\u003e)\nrelease(core): 1.3.0a3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36829\"\u003e#36829\u003c/a\u003e)\nchore(core): keep checkpoint_ns behavior in streaming metadata for backwards compat (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36828\"\u003e#36828\u003c/a\u003e)\nfeat(core): Add chat model and LLM invocation params to traceable metadata (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36771\"\u003e#36771\u003c/a\u003e)\nfix(core): restore cloud metadata IPs and link-local range in SSRF policy (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36816\"\u003e#36816\u003c/a\u003e)\nchore(deps): bump pytest to \u003ccode\u003e9.0.3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36801\"\u003e#36801\u003c/a\u003e)\nchore(core): harden private SSRF utilities (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36768\"\u003e#36768\u003c/a\u003e)\nfix(openai): handle content blocks without type key in responses api conversion (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36725\"\u003e#36725\u003c/a\u003e)\nchore: bump pytest from 9.0.2 to 9.0.3 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36719\"\u003e#36719\u003c/a\u003e)\nrelease(core): 1.3.0.a2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36698\"\u003e#36698\u003c/a\u003e)\nfix(core): Use reference counting for storing inherited run trees to support garbage collection (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36660\"\u003e#36660\u003c/a\u003e)\ndocs(core): nit (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36685\"\u003e#36685\u003c/a\u003e)\nrelease(core): 1.3.0a1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36656\"\u003e#36656\u003c/a\u003e)\nchore(core): reduce streaming metadata / perf (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36588\"\u003e#36588\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.3.0a3\u003c/h2\u003e\n\u003cp\u003eInitial release\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/langchain-ai/langchain/commit/5039dfec1f8e78459540a7f1b52fb0d6d82e3f07\"\u003e\u003ccode\u003e5039dfe\u003c/code\u003e\u003c/a\u003e release(core): 1.3.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37198\"\u003e#37198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/55a7707837742c2f7a9b7e4a5dd428bf615f3b82\"\u003e\u003ccode\u003e55a7707\u003c/code\u003e\u003c/a\u003e fix(core): set deprecation \u003ccode\u003esince\u003c/code\u003e to 1.3.3 to match release (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37200\"\u003e#37200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/c979c6187b6d82f4bef35b10b84b39fa44806b22\"\u003e\u003ccode\u003ec979c61\u003c/code\u003e\u003c/a\u003e fix(core, langchain): harden \u003ccode\u003eload()\u003c/code\u003e against untrusted manifests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37197\"\u003e#37197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d7031101da78e3f6b6c5956b48a5170c1a33292b\"\u003e\u003ccode\u003ed703110\u003c/code\u003e\u003c/a\u003e docs: update README.md (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37190\"\u003e#37190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/4d50a2a68b38e9acc53027ea7e7cc89e2d80b4c7\"\u003e\u003ccode\u003e4d50a2a\u003c/code\u003e\u003c/a\u003e ci(infra): run pre-release checks before TestPyPI publish (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37194\"\u003e#37194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/9bd730e1991baac4ea80aa07d93110dc1b52ee25\"\u003e\u003ccode\u003e9bd730e\u003c/code\u003e\u003c/a\u003e fix(fireworks): require \u003ccode\u003eapi_key\u003c/code\u003e in \u003ccode\u003eFireworksEmbeddings\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37193\"\u003e#37193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f475f4191fc3a8d3cf14063b44d524594c080c04\"\u003e\u003ccode\u003ef475f41\u003c/code\u003e\u003c/a\u003e release(mistralai): 1.1.4 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37191\"\u003e#37191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/7dbff48aff508b01dc231ea0cbd4e4e09da92c97\"\u003e\u003ccode\u003e7dbff48\u003c/code\u003e\u003c/a\u003e fix(mistralai): strip non-wire keys from \u003ccode\u003eToolMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37188\"\u003e#37188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/913816c440ea79295370e1af6484e17b86e5d03c\"\u003e\u003ccode\u003e913816c\u003c/code\u003e\u003c/a\u003e release(fireworks): 1.3.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37189\"\u003e#37189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/4498d3dc84a85688fa4d15476403a900bc7f9114\"\u003e\u003ccode\u003e4498d3d\u003c/code\u003e\u003c/a\u003e fix(fireworks): strip non-wire keys from \u003ccode\u003eToolMessage\u003c/code\u003e text content blocks (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.49...langchain-core==1.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-community` from 0.3.19 to 0.3.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain-community/releases\"\u003elangchain-community's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elibs/community/v0.3.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecommunity[patch]: verify ssl by default in RecursiveUrlLoader by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/136\"\u003elangchain-ai/langchain-community#136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Change JSON loader to be able to handle UTF-8-BOM files by \u003ca href=\"https://github.com/witlat\"\u003e\u003ccode\u003e@​witlat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/138\"\u003elangchain-ai/langchain-community#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWriteFileTool should create not existent parent dirs in file_path by \u003ca href=\"https://github.com/vria\"\u003e\u003ccode\u003e@​vria\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/132\"\u003elangchain-ai/langchain-community#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:zap: fix: update OpenAI model cost values for accuracy by \u003ca href=\"https://github.com/tdahar\"\u003e\u003ccode\u003e@​tdahar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/142\"\u003elangchain-ai/langchain-community#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[patch]: Prevent XXE in evernote loader by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/139\"\u003elangchain-ai/langchain-community#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 0.3.27 by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/143\"\u003elangchain-ai/langchain-community#143\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/witlat\"\u003e\u003ccode\u003e@​witlat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/138\"\u003elangchain-ai/langchain-community#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vria\"\u003e\u003ccode\u003e@​vria\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/132\"\u003elangchain-ai/langchain-community#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tdahar\"\u003e\u003ccode\u003e@​tdahar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/142\"\u003elangchain-ai/langchain-community#142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.26...libs/community/v0.3.27\"\u003ehttps://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.26...libs/community/v0.3.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003elibs/community/v0.3.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[USearch]: Intializations of ids in case self.ids is None by \u003ca href=\"https://github.com/keenborder786\"\u003e\u003ccode\u003e@​keenborder786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/99\"\u003elangchain-ai/langchain-community#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[patch]: drop langsmith upper bound and release 0.3.26 by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/127\"\u003elangchain-ai/langchain-community#127\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/keenborder786\"\u003e\u003ccode\u003e@​keenborder786\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/99\"\u003elangchain-ai/langchain-community#99\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.25...libs/community/v0.3.26\"\u003ehttps://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.25...libs/community/v0.3.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003elibs/community/v0.3.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: replace invalid scenexplain algorithm by \u003ca href=\"https://github.com/MichaelLi65535\"\u003e\u003ccode\u003e@​MichaelLi65535\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/59\"\u003elangchain-ai/langchain-community#59\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003einfra: specify pyopenssl in extended test deps by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/80\"\u003elangchain-ai/langchain-community#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[patch]: deprecate Tavily tools in favor of langchain-tavily implementation by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/79\"\u003elangchain-ai/langchain-community#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecating hugging face implementation in langchain_community by \u003ca href=\"https://github.com/CtrlMj\"\u003e\u003ccode\u003e@​CtrlMj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/73\"\u003elangchain-ai/langchain-community#73\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evectorstores[azure_search]: fix regression in 0.3.24  by \u003ca href=\"https://github.com/marcgibbons\"\u003e\u003ccode\u003e@​marcgibbons\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/77\"\u003elangchain-ai/langchain-community#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity: Add cost data for aws bedrock claude 4 series models by \u003ca href=\"https://github.com/AsifMehmood97\"\u003e\u003ccode\u003e@​AsifMehmood97\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/83\"\u003elangchain-ai/langchain-community#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove no-untyped-def escapes by \u003ca href=\"https://github.com/cbornet\"\u003e\u003ccode\u003e@​cbornet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/17\"\u003elangchain-ai/langchain-community#17\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add search endpoint for Firecrawl Integration by \u003ca href=\"https://github.com/ftonato\"\u003e\u003ccode\u003e@​ftonato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/87\"\u003elangchain-ai/langchain-community#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[patch]: ssl verification should be enabled by default everywhere by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/75\"\u003elangchain-ai/langchain-community#75\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle image of size 0 bytes in PyPDFParser by \u003ca href=\"https://github.com/soucosmo\"\u003e\u003ccode\u003e@​soucosmo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/84\"\u003elangchain-ai/langchain-community#84\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add depandabot config by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/90\"\u003elangchain-ai/langchain-community#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden Azure ML url validation by \u003ca href=\"https://github.com/tonybaloney\"\u003e\u003ccode\u003e@​tonybaloney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/88\"\u003elangchain-ai/langchain-community#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update readme by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/95\"\u003elangchain-ai/langchain-community#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epatch: sanitize file extension in HuggingFaceTextToSpeechModelInference by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/101\"\u003elangchain-ai/langchain-community#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: telegram multiformat by \u003ca href=\"https://github.com/jerryyf\"\u003e\u003ccode\u003e@​jerryyf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/89\"\u003elangchain-ai/langchain-community#89\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity: release 0.3.25 by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/86\"\u003elangchain-ai/langchain-community#86\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/MichaelLi65535\"\u003e\u003ccode\u003e@​MichaelLi65535\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/59\"\u003elangchain-ai/langchain-community#59\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CtrlMj\"\u003e\u003ccode\u003e@​CtrlMj\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/73\"\u003elangchain-ai/langchain-community#73\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marcgibbons\"\u003e\u003ccode\u003e@​marcgibbons\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/77\"\u003elangchain-ai/langchain-community#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbornet\"\u003e\u003ccode\u003e@​cbornet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/17\"\u003elangchain-ai/langchain-community#17\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\u003eSee full diff in \u003ca href=\"https://github.com/langchain-ai/langchain-community/commits/libs/community/v0.3.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.3.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.1 (2024-11-15)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved superfluous debug prints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.0 (2024-11-12)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eCleaner()\u003c/code\u003e now scans for hidden JavaScript code embedded\nwithin CSS comments. In certain contexts, such as within \u003ccode\u003e\u0026lt;svg\u0026gt;\u003c/code\u003e or \u003ccode\u003e\u0026lt;math\u0026gt;\u003c/code\u003e tags,\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.3.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.22.0 to 1.23.0\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.23.0\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release brings us up to speed with the latest MCP spec \u003ccode\u003e2025-11-25\u003c/code\u003e. Take a look at the \u003ca href=\"https://modelcontextprotocol.io/specification/2025-11-25\"\u003elatest spec\u003c/a\u003e as well as the release \u003ca href=\"https://blog.modelcontextprotocol.io/posts/2025-11-25-first-mcp-anniversary/\"\u003eblog post.\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd tests for JSON Schema 2020-12 field preservation (SEP-1613) by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1649\"\u003emodelcontextprotocol/python-sdk#1649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd client_secret_basic authentication support by \u003ca href=\"https://github.com/jonshea\"\u003e\u003ccode\u003e@​jonshea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1334\"\u003emodelcontextprotocol/python-sdk#1334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement SEP-1577 - Sampling With Tools by \u003ca href=\"https://github.com/ochafik\"\u003e\u003ccode\u003e@​ochafik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1594\"\u003emodelcontextprotocol/python-sdk#1594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSEP-1330: Elicitation Enum Schema Improvements and Standards Compliance by \u003ca href=\"https://github.com/chughtapan\"\u003e\u003ccode\u003e@​chughtapan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1246\"\u003emodelcontextprotocol/python-sdk#1246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[auth][conformance] add conformance auth client by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1640\"\u003emodelcontextprotocol/python-sdk#1640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement SEP-986: Tool name validation by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1655\"\u003emodelcontextprotocol/python-sdk#1655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: url for spec by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1659\"\u003emodelcontextprotocol/python-sdk#1659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: implement SEP-991 URL-based client ID (CIMD) support by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1652\"\u003emodelcontextprotocol/python-sdk#1652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate doc string on custom_route by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1660\"\u003emodelcontextprotocol/python-sdk#1660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement SEP-1036: URL mode elicitation for secure out-of-band interactions by \u003ca href=\"https://github.com/cbcoutinho\"\u003e\u003ccode\u003e@​cbcoutinho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1580\"\u003emodelcontextprotocol/python-sdk#1580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip empty SSE data to avoid parsing errors by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1670\"\u003emodelcontextprotocol/python-sdk#1670\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSEP-1686: Tasks 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/1645\"\u003emodelcontextprotocol/python-sdk#1645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd on_session_created callback option by \u003ca href=\"https://github.com/crondinini-ant\"\u003e\u003ccode\u003e@​crondinini-ant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1710\"\u003emodelcontextprotocol/python-sdk#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SSE polling support (SEP-1699) by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1654\"\u003emodelcontextprotocol/python-sdk#1654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport client_credentials flow with JWT and Basic auth by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1663\"\u003emodelcontextprotocol/python-sdk#1663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: backwards-compatible create_message overloads for SEP-1577 by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1713\"\u003emodelcontextprotocol/python-sdk#1713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto-enable DNS rebinding protection for localhost servers by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e  (d3a184119e4479ea6a63590bc41f01dc06e3fa99)\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/ochafik\"\u003e\u003ccode\u003e@​ochafik\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1594\"\u003emodelcontextprotocol/python-sdk#1594\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.22.0...v1.23.0\"\u003ehttps://github.com/modelcontextprotocol/python-sdk/compare/v1.22.0...v1.23.0\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/d3a184119e4479ea6a63590bc41f01dc06e3fa99\"\u003e\u003ccode\u003ed3a1841\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/fa851d93a2036a37cce73e098f7dbc80a6c48765\"\u003e\u003ccode\u003efa851d9\u003c/code\u003e\u003c/a\u003e feat: backwards-compatible create_message overloads for SEP-1577 (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1713\"\u003e#1713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/f82b0c937178815c1e96460455778578050c6d1a\"\u003e\u003ccode\u003ef82b0c9\u003c/code\u003e\u003c/a\u003e Support client_credentials flow with JWT and Basic auth (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1663\"\u003e#1663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/281fd4765e0fc2efaf2039d248c3bc0698416a8a\"\u003e\u003ccode\u003e281fd47\u003c/code\u003e\u003c/a\u003e Add SSE polling support (SEP-1699) (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/2cd178a962ab454e3add228ecd721784b7b36e99\"\u003e\u003ccode\u003e2cd178a\u003c/code\u003e\u003c/a\u003e Add on_session_created callback option (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1710\"\u003e#1710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/c92bb2f7ffaa61813d7cc350887f4ece38307769\"\u003e\u003ccode\u003ec92bb2f\u003c/code\u003e\u003c/a\u003e SEP-1686: Tasks (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1645\"\u003e#1645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/5983a650cc07d2dc6c6ba098e99d3545889157a9\"\u003e\u003ccode\u003e5983a65\u003c/code\u003e\u003c/a\u003e Skip empty SSE data to avoid parsing errors (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1670\"\u003e#1670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/02b78899296ce3631565345501e3d956b83ffe94\"\u003e\u003ccode\u003e02b7889\u003c/code\u003e\u003c/a\u003e Implement SEP-1036: URL mode elicitation for secure out-of-band interactions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/27279bc157cbc03f7fe7758fd55a4b34c5652f42\"\u003e\u003ccode\u003e27279bc\u003c/code\u003e\u003c/a\u003e Update doc string on custom_route (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1660\"\u003e#1660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/f22501315eab5b8358c603ac7f730f77bb09e4c4\"\u003e\u003ccode\u003ef225013\u003c/code\u003e\u003c/a\u003e feat: implement SEP-991 URL-based client ID (CIMD) support (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1652\"\u003e#1652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.22.0...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `paramiko` from 3.5.0 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/710cc5c02e2ded370d8d24e261e2baa8317a20fa\"\u003e\u003ccode\u003e710cc5c\u003c/code\u003e\u003c/a\u003e What's a few weeks between friends?\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/ea93c5951ce1e1442be18c718c2dcc4fd8da7519\"\u003e\u003ccode\u003eea93c59\u003c/code\u003e\u003c/a\u003e Fix up Ed25519Key so it has non-erroring repr() during fatal errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/5b90ef9fbc774658879223e012235914d65c657b\"\u003e\u003ccode\u003e5b90ef9\u003c/code\u003e\u003c/a\u003e ruff/isort\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/f3864b69346c853be6709f9b3f5f6a71c61e2e1a\"\u003e\u003ccode\u003ef3864b6\u003c/code\u003e\u003c/a\u003e Changelog fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/acd4bc1dee5a594a3534b6d76f7dfc6ebd55f71b\"\u003e\u003ccode\u003eacd4bc1\u003c/code\u003e\u003c/a\u003e Replace hardcoded PEM format in PKey.write* with new parameter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/6fa15569100fc222af4153f763d19620d64d9e4f\"\u003e\u003ccode\u003e6fa1556\u003c/code\u003e\u003c/a\u003e Bump group-exchange kex min_bits to 2048\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/eb87ad3b241c08994a032c539ea8e1c51d544cea\"\u003e\u003ccode\u003eeb87ad3\u003c/code\u003e\u003c/a\u003e Fix some tests that were incorrectly passing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/1ecc933b34510525aee8cad9956c3b8e642783ec\"\u003e\u003ccode\u003e1ecc933\u003c/code\u003e\u003c/a\u003e Remove GSSAPI support :(\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/9bf5fcae57e6ca995275037eea9d6305f70d7cdb\"\u003e\u003ccode\u003e9bf5fca\u003c/code\u003e\u003c/a\u003e Remove SHA1-based (non-GSS) kex methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/b8f75c7cd19d5c26220737c66498e5066af239b7\"\u003e\u003ccode\u003eb8f75c7\u003c/code\u003e\u003c/a\u003e Lintin' ain't easy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/paramiko/paramiko/compare/3.5.0...5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.0.0 to 6.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.10.2, 2026-04-15\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.1, 2026-04-14\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse new parameter names for compress_identical_objects by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.0, 2026-04-10\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisallow custom XML entity declarations for XMP metadata (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3724\"\u003e#3724\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip MD5 key derivation for AES-256 encrypted PDFs (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3694\"\u003e#3694\u003c/a\u003e) by \u003ca href=\"https://github.com/Ygnas\"\u003e\u003ccode\u003e@​Ygnas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse remove_orphans in compress_identical_objects (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3310\"\u003e#3310\u003c/a\u003e) by \u003ca href=\"https://github.com/j-t-1\"\u003e\u003ccode\u003e@​j-t-1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PdfReadError when xref table contains comments before trailer (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3710\"\u003e#3710\u003c/a\u003e) by \u003ca href=\"https://github.com/rassie\"\u003e\u003ccode\u003e@​rassie\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly verify AES padding during decryption (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3699\"\u003e#3699\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stale object cache from non-authoritative object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3698\"\u003e#3698\u003c/a\u003e) by \u003ca href=\"https://github.com/astahlman\"\u003e\u003ccode\u003e@​astahlman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extract_links pairing when annotations include non-links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3687\"\u003e#3687\u003c/a\u003e) by \u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI policy (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3717\"\u003e#3717\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.9.2, 2026-03-23\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid infinite loop in read_from_stream for broken files (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3693\"\u003e#3693\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.10.2, 2026-04-15\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.1, 2026-04-14\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse new parameter names for compress_identical_objects\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.0, 2026-04-10\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisallow custom XML entity declarations for XMP metadata (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3724\"\u003e#3724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip MD5 key derivation for AES-256 encrypted PDFs (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3694\"\u003e#3694\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse remove_orphans in compress_identical_objects (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3310\"\u003e#3310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PdfReadError when xref table contains comments before trailer (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3710\"\u003e#3710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly verify AES padding during decryption (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stale object cache from non-authoritative object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix extract_links pairing when annotations include non-links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3687\"\u003e#3687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI policy (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3717\"\u003e#3717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.9.2, 2026-03-23\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid infinite loop in read_from_stream for broken files (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve UnboundLocalError for xobjs in _get_image (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3684\"\u003e#3684\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.1...6.9.2\"\u003eFull Changelog\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/py-pdf/pypdf/commit/c476b4f293c8ef4cac07dfb755e5582d838fcdc0\"\u003e\u003ccode\u003ec476b4f\u003c/code\u003e\u003c/a\u003e REL: 6.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/c50a0104cf083356f7c7f5d61410466a57f5c88a\"\u003e\u003ccode\u003ec50a010\u003c/cod...\n\n_Description has been truncated_","html_url":"https://github.com/adrianwedd/agent-zero/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianwedd%2Fagent-zero/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"},{"uuid":"4279561423","node_id":"PR_kwDON0wAss7TKN80","number":7,"state":"closed","title":"Bump the pip group across 12 directories with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-21T20:23:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-17T01:35:51.000Z","updated_at":"2026-04-21T20:23:47.000Z","time_to_close":413274,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":9,"packages":[{"name":"pillow","old_version":"10.4.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"11.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /ai_agent_tutorials/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_lead_generation_agent directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_recruitment_agent_team directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_teaching_agent_team directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/multimodal_design_agent_team directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 4 updates in the /rag_tutorials/corrective_rag directory: [langchain-openai](https://github.com/langchain-ai/langchain), [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 4 updates in the /rag_tutorials/rag_database_routing directory: [langchain-openai](https://github.com/langchain-ai/langchain), [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\n\nUpdates `pillow` from 10.4.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.214\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(core): restore session.toolkits() pagination by \u003ca href=\"https://github.com/jkomyno\"\u003e\u003ccode\u003e@​jkomyno\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3193\"\u003eComposioHQ/composio#3193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: expand MCP connected account error with auth config scoping details by \u003ca href=\"https://github.com/decimal-pr-bot\"\u003e\u003ccode\u003e@​decimal-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3224\"\u003eComposioHQ/composio#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update TypeScript SDK reference from source 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/ComposioHQ/composio/pull/3226\"\u003eComposioHQ/composio#3226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3217\"\u003eComposioHQ/composio#3217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: allow more bots to trigger Claude review workflows by \u003ca href=\"https://github.com/Sushmithamallesh\"\u003e\u003ccode\u003e@​Sushmithamallesh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3227\"\u003eComposioHQ/composio#3227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass link aliases through tool router session creation by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3228\"\u003eComposioHQ/composio#3228\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/decimal-pr-bot\"\u003e\u003ccode\u003e@​decimal-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3224\"\u003eComposioHQ/composio#3224\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.213...@composio/cli@0.2.25-beta.214\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.213...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.214\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.213\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003einstall-skill\u003c/code\u003e flag spelling in CLI help and parser by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3223\"\u003eComposioHQ/composio#3223\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.212...@composio/cli@0.2.25-beta.213\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.212...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.213\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.212\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CLI runtime headers to Composio client by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3222\"\u003eComposioHQ/composio#3222\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.211...@composio/cli@0.2.25-beta.212\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.211...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.212\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.211\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add guidance on when to use latest vs pinned toolkit versions by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3207\"\u003eComposioHQ/composio#3207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3209\"\u003eComposioHQ/composio#3209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix requireExplicitSelection description in multi-account docs by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3218\"\u003eComposioHQ/composio#3218\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(cli): bump \u003ccode\u003e@​composio/cli\u003c/code\u003e to 0.2.24 to realign with GitHub release by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3213\"\u003eComposioHQ/composio#3213\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.23...@composio/cli@0.2.25-beta.211\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.211\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23\u003c/h2\u003e\n\u003cp\u003eStable \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23 release. Binaries mirrored from \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24 (both built from the same commit \u003ccode\u003eece9f7bb\u003c/code\u003e) because the original release workflow misclassified the version-bump merge as a beta due to a shallow-checkout bug; fix in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3212\"\u003eComposioHQ/composio#3212\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eCLI \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: CLI 0.2.23 patch release by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3210\"\u003eComposioHQ/composio#3210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3211\"\u003eComposioHQ/composio#3211\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.23-beta.207...@composio/cli@0.2.24\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.207...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.24\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24-beta.209\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.214\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(core): restore session.toolkits() pagination by \u003ca href=\"https://github.com/jkomyno\"\u003e\u003ccode\u003e@​jkomyno\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3193\"\u003eComposioHQ/composio#3193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: expand MCP connected account error with auth config scoping details by \u003ca href=\"https://github.com/decimal-pr-bot\"\u003e\u003ccode\u003e@​decimal-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3224\"\u003eComposioHQ/composio#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update TypeScript SDK reference from source 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/ComposioHQ/composio/pull/3226\"\u003eComposioHQ/composio#3226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3217\"\u003eComposioHQ/composio#3217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: allow more bots to trigger Claude review workflows by \u003ca href=\"https://github.com/Sushmithamallesh\"\u003e\u003ccode\u003e@​Sushmithamallesh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3227\"\u003eComposioHQ/composio#3227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass link aliases through tool router session creation by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3228\"\u003eComposioHQ/composio#3228\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/decimal-pr-bot\"\u003e\u003ccode\u003e@​decimal-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3224\"\u003eComposioHQ/composio#3224\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.213...@composio/cli@0.2.25-beta.214\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.213...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.214\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.213\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003einstall-skill\u003c/code\u003e flag spelling in CLI help and parser by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3223\"\u003eComposioHQ/composio#3223\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.212...@composio/cli@0.2.25-beta.213\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.212...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.213\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.212\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CLI runtime headers to Composio client by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3222\"\u003eComposioHQ/composio#3222\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.211...@composio/cli@0.2.25-beta.212\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.211...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.212\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.211\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add guidance on when to use latest vs pinned toolkit versions by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3207\"\u003eComposioHQ/composio#3207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3209\"\u003eComposioHQ/composio#3209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix requireExplicitSelection description in multi-account docs by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3218\"\u003eComposioHQ/composio#3218\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(cli): bump \u003ccode\u003e@​composio/cli\u003c/code\u003e to 0.2.24 to realign with GitHub release by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3213\"\u003eComposioHQ/composio#3213\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.23...@composio/cli@0.2.25-beta.211\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.211\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23\u003c/h2\u003e\n\u003cp\u003eStable \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23 release. Binaries mirrored from \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24 (both built from the same commit \u003ccode\u003eece9f7bb\u003c/code\u003e) because the original release workflow misclassified the version-bump merge as a beta due to a shallow-checkout bug; fix in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3212\"\u003eComposioHQ/composio#3212\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eCLI \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: CLI 0.2.23 patch release by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3210\"\u003eComposioHQ/composio#3210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3211\"\u003eComposioHQ/composio#3211\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.23-beta.207...@composio/cli@0.2.24\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.207...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.24\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24-beta.209\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1...\n\n_Description has been truncated_","html_url":"https://github.com/vspaswin/awesome-llm-apps/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaswin%2Fawesome-llm-apps/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"4257931070","node_id":"PR_kwDONzExCc7SHq8F","number":6,"state":"closed","title":"Bump the pip group across 12 directories with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":"2026-04-16T23:59:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:14:10.000Z","updated_at":"2026-04-16T23:59:12.000Z","time_to_close":269100,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":8,"packages":[{"name":"pillow","old_version":"10.4.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"11.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /ai_agent_tutorials/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_lead_generation_agent directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_recruitment_agent_team directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_teaching_agent_team directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/multimodal_design_agent_team directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 3 updates in the /rag_tutorials/corrective_rag directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_database_routing directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\n\nUpdates `pillow` from 10.4.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23-beta.199\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: bearer token connections \u0026amp; credential patching by \u003ca href=\"https://github.com/dhawal1\"\u003e\u003ccode\u003e@​dhawal1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3151\"\u003eComposioHQ/composio#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: multi-account mode \u0026amp; connection aliases by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3160\"\u003eComposioHQ/composio#3160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3144\"\u003eComposioHQ/composio#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify bearer token self-managed OAuth responsibility by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3180\"\u003eComposioHQ/composio#3180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable multi-account by default in stable CLI by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3163\"\u003eComposioHQ/composio#3163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/anthropic@0.6.10...@composio/cli@0.2.23-beta.199\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ccode\u003e@​0.6.10...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.199\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22-beta.198\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add alias to ToolRouterAuthorizeFn type by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3167\"\u003eComposioHQ/composio#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3168\"\u003eComposioHQ/composio#3168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.21...@composio/cli@0.2.22-beta.198\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.21...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.22-beta.198\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23-beta.199\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: bearer token connections \u0026amp; credential patching by \u003ca href=\"https://github.com/dhawal1\"\u003e\u003ccode\u003e@​dhawal1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3151\"\u003eComposioHQ/composio#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: multi-account mode \u0026amp; connection aliases by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3160\"\u003eComposioHQ/composio#3160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3144\"\u003eComposioHQ/composio#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify bearer token self-managed OAuth responsibility by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3180\"\u003eComposioHQ/composio#3180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable multi-account by default in stable CLI by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3163\"\u003eComposioHQ/composio#3163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/anthropic@0.6.10...@composio/cli@0.2.23-beta.199\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ccode\u003e@​0.6.10...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.199\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22-beta.198\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add alias to ToolRouterAuthorizeFn type by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3167\"\u003eComposioHQ/composio#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3168\"\u003eComposioHQ/composio#3168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.21...@composio/cli@0.2.22-beta.198\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.21...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.22-beta.198\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pill...\n\n_Description has been truncated_\n\n\u003c!-- This is an auto-generated description by cubic. --\u003e\n---\n## Summary by cubic\nUpgrade dependencies across 12 tutorials to pick up security fixes and align with the LangChain v1 stack. Highlights: `Pillow` 12.2.0, `requests` 2.33.0, `lxml_html_clean` 0.4.4, `browser-use` 0.1.45, `composio` 0.8.0, and LangChain (`langgraph` 1.0.10rc1, `langchain-core` 1.2.28, `langchain-community` 0.3.27).\n\n- **Dependencies**\n  - Core libraries: `Pillow` -\u003e 12.2.0, `requests` -\u003e 2.33.0, `lxml_html_clean` -\u003e 0.4.4, `browser-use` -\u003e 0.1.45, `composio` -\u003e 0.8.0.\n  - LangChain stack: `langgraph` -\u003e 1.0.10rc1, `langchain-core` -\u003e 1.2.28, `langchain-community` -\u003e 0.3.27.\n\n- **Migration**\n  - `browser-use`: replace `BrowserWindowContextSize(...)` with flat `BrowserContextConfig(window_width=..., window_height=...)`.\n  - LangChain v1: verify imports and graph/node APIs; test flows after `langgraph`/`langchain-core` upgrades.\n  - Environments: ensure supported Python versions (e.g., `requests` 2.33.0 drops Python 3.9); reinstall deps.\n\n\u003csup\u003eWritten for commit 50c3002e7ef0414cdafc9d78ba45849544c9e1e8. Summary will update on new commits.\u003c/sup\u003e\n\n\u003c!-- End of auto-generated description by cubic. --\u003e\n\n\n\n\u003cdiv id='description'\u003e\n\u003ca href=\"https://bito.ai#summarystart\"\u003e\u003c/a\u003e\u003ch3\u003eSummary by Bito\u003c/h3\u003e\u003cul\u003e\u003cli\u003eUpdated Pillow library to version 12.2.0 in data visualisation, medical imaging, and multimodal design agent tutorials.\u003c/li\u003e\n\u003cli\u003eBumped composio to version 0.8.0 in lead generation and teaching agent tutorials.\u003c/li\u003e\n\u003cli\u003eUpdated browser-use to 0.1.45 in meme generator agent.\u003c/li\u003e\n\u003cli\u003eChanged requests to 2.33.0 and lxml_html_clean to 0.4.4 in recruitment and startup trend analysis agents respectively.\u003c/li\u003e\n\u003cli\u003eUpdated LangChain packages (langgraph, langchain-community, langchain-core) to newer versions in corrective RAG, gemini agentic RAG, RAG agent Cohere, and RAG database routing tutorials.\u003c/li\u003e\n\u003c/ul\u003e\u003c/div\u003e","html_url":"https://github.com/RemyLoveLogicAI/awesome-llm-apps/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RemyLoveLogicAI%2Fawesome-llm-apps/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4257919550","node_id":"PR_kwDON0wAss7SHoeg","number":6,"state":"closed","title":"Bump the pip group across 12 directories with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-17T01:35:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:11:59.000Z","updated_at":"2026-04-17T01:35:55.000Z","time_to_close":275035,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":8,"packages":[{"name":"pillow","old_version":"10.4.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"11.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /ai_agent_tutorials/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_lead_generation_agent directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_recruitment_agent_team directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_teaching_agent_team directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/multimodal_design_agent_team directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 3 updates in the /rag_tutorials/corrective_rag directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_database_routing directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\n\nUpdates `pillow` from 10.4.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23-beta.199\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: bearer token connections \u0026amp; credential patching by \u003ca href=\"https://github.com/dhawal1\"\u003e\u003ccode\u003e@​dhawal1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3151\"\u003eComposioHQ/composio#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: multi-account mode \u0026amp; connection aliases by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3160\"\u003eComposioHQ/composio#3160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3144\"\u003eComposioHQ/composio#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify bearer token self-managed OAuth responsibility by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3180\"\u003eComposioHQ/composio#3180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable multi-account by default in stable CLI by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3163\"\u003eComposioHQ/composio#3163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/anthropic@0.6.10...@composio/cli@0.2.23-beta.199\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ccode\u003e@​0.6.10...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.199\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22-beta.198\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add alias to ToolRouterAuthorizeFn type by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3167\"\u003eComposioHQ/composio#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3168\"\u003eComposioHQ/composio#3168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.21...@composio/cli@0.2.22-beta.198\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.21...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.22-beta.198\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23-beta.199\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: bearer token connections \u0026amp; credential patching by \u003ca href=\"https://github.com/dhawal1\"\u003e\u003ccode\u003e@​dhawal1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3151\"\u003eComposioHQ/composio#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: multi-account mode \u0026amp; connection aliases by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3160\"\u003eComposioHQ/composio#3160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3144\"\u003eComposioHQ/composio#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify bearer token self-managed OAuth responsibility by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3180\"\u003eComposioHQ/composio#3180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable multi-account by default in stable CLI by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3163\"\u003eComposioHQ/composio#3163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/anthropic@0.6.10...@composio/cli@0.2.23-beta.199\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ccode\u003e@​0.6.10...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.199\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22-beta.198\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add alias to ToolRouterAuthorizeFn type by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3167\"\u003eComposioHQ/composio#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3168\"\u003eComposioHQ/composio#3168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.21...@composio/cli@0.2.22-beta.198\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.21...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.22-beta.198\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pill...\n\n_Description has been truncated_","html_url":"https://github.com/vspaswin/awesome-llm-apps/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaswin%2Fawesome-llm-apps/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4168601326","node_id":"PR_kwDOQ1pHjs7OiDKA","number":52,"state":"open","title":"deps(python): bump the python-minor group in /functions with 9 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-30T08:19:42.000Z","updated_at":"2026-03-30T08:21:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"python-minor","update_count":9,"packages":[{"name":"fastfeedparser","old_version":"0.5.8","new_version":"0.5.9","repository_url":"https://github.com/kagisearch/fastfeedparser"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"regex","old_version":"2026.2.28","new_version":"2026.3.32","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"anthropic","old_version":"0.84.0","new_version":"0.86.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"numpy","old_version":"2.4.2","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.3.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"}],"path":"/functions","ecosystem":"pip"},"body":"Bumps the python-minor group in /functions with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastfeedparser](https://github.com/kagisearch/fastfeedparser) | `0.5.8` | `0.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.3.32` |\n| [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) | `0.4.1` | `0.4.4` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.84.0` | `0.86.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.2` | `2.4.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.3.0` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n\nUpdates `fastfeedparser` from 0.5.8 to 0.5.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kagisearch/fastfeedparser/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.2.28 to 2026.3.32\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRe-uploaded.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.1.14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 596: Specifying {e\u0026lt;=0} causes ca 210× slow-down.\n\u003cp\u003eAdded RISC-V wheels.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2025.11.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 594: Support relative PARNO in recursive subpatterns.\n\u003c/code\u003e\u003c/pre\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/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.3.32\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.84.0 to 0.86.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.86.0\u003c/h2\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.85.0\u003c/h2\u003e\n\u003ch2\u003e0.85.0 (2026-03-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.84.0...v0.85.0\"\u003ev0.84.0...v0.85.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e chore(config): clean up model enum list (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/31\"\u003e#31\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/cce1a5b9e6fce4f269cec42803f37ce5e2ac2f76\"\u003ecce1a5b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e GA thinking-display-setting (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/207340cc621855928f53e8ddd58f216ac0d8150d\"\u003e207340c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e update mock server (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dc86a4ffc9e70533a58065496c78394c6a6e97a\"\u003e7dc86a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add missing 413 and 529 error handlers to async client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1554\"\u003e#1554\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9c2986fb9c046b4cffa1b03ca8762f9c9dea0bab\"\u003e9c2986f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etool runner:\u003c/strong\u003e propagate container_id for programmatic tool calling (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1462\"\u003e#1462\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3ae7ff6ff7af8a881706ae8068b1040a23c96fbd\"\u003e3ae7ff6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etools:\u003c/strong\u003e use filtered messages list in async compaction (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1124\"\u003e#1124\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/710d666f80b7667e3551c1a68d7c0ffaad115de1\"\u003e710d666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e bump uv version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09656acef77fa459d30d811bd51aa780a567182b\"\u003e09656ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c9e9fc240334fc466426646d7acd64904f881a80\"\u003ec9e9fc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/77f77d19b4657a7ad0d31de42504c25cf4ed76ef\"\u003e77f77d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e unskip tests that are now supported in steady (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/827330b527b4af299af084752a7317b0596956af\"\u003e827330b\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/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.85.0 (2026-03-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.84.0...v0.85.0\"\u003ev0.84.0...v0.85.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e chore(config): clean up model enum list (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/31\"\u003e#31\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/cce1a5b9e6fce4f269cec42803f37ce5e2ac2f76\"\u003ecce1a5b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e GA thinking-display-setting (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/207340cc621855928f53e8ddd58f216ac0d8150d\"\u003e207340c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e update mock server (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dc86a4ffc9e70533a58065496c78394c6a6e97a\"\u003e7dc86a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add missing 413 and 529 error handlers to async client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1554\"\u003e#1554\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9c2986fb9c046b4cffa1b03ca8762f9c9dea0bab\"\u003e9c2986f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etool runner:\u003c/strong\u003e propagate container_id for programmatic tool calling (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1462\"\u003e#1462\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3ae7ff6ff7af8a881706ae8068b1040a23c96fbd\"\u003e3ae7ff6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etools:\u003c/strong\u003e use filtered messages list in async compaction (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1124\"\u003e#1124\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/710d666f80b7667e3551c1a68d7c0ffaad115de1\"\u003e710d666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e bump uv version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09656acef77fa459d30d811bd51aa780a567182b\"\u003e09656ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c9e9fc240334fc466426646d7acd64904f881a80\"\u003ec9e9fc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/77f77d19b4657a7ad0d31de42504c25cf4ed76ef\"\u003e77f77d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e unskip tests that are now supported in steady (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/827330b527b4af299af084752a7317b0596956af\"\u003e827330b\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/anthropics/anthropic-sdk-python/commit/d7c0974ce6ab94ca135b10b2a45308203c0e0c7e\"\u003e\u003ccode\u003ed7c0974\u003c/code\u003e\u003c/a\u003e release: 0.86.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c46a3e4708fc7f79a00cc245c6f2b11189dd84c3\"\u003e\u003ccode\u003ec46a3e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/34045e490d9da94274c36f4333545eacb503d59c\"\u003e\u003ccode\u003e34045e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5ccd6b4122c83f5f1ca5bfefe496a6a257a1da21\"\u003e\u003ccode\u003e5ccd6b4\u003c/code\u003e\u003c/a\u003e feat: add support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/206252fcfa60a7d127e76c36d10bec8e47494fa4\"\u003e\u003ccode\u003e206252f\u003c/code\u003e\u003c/a\u003e chore(internal): tweak CI branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c5e5f3e7adf8d60b091116198f29f0b453c18d8d\"\u003e\u003ccode\u003ec5e5f3e\u003c/code\u003e\u003c/a\u003e fix(deps): bump minimum typing-extensions version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8669b920105a717deead3acf5b5085a2e9441b72\"\u003e\u003ccode\u003e8669b92\u003c/code\u003e\u003c/a\u003e fix(pydantic): do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e\u003ccode\u003e05220bc\u003c/code\u003e\u003c/a\u003e fix: AsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/be3dd143f464a6a11a8631b990aabdb348cb53c0\"\u003e\u003ccode\u003ebe3dd14\u003c/code\u003e\u003c/a\u003e release: 0.85.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc9f47e8e4feaaefaef125f80de9e6177d2c3283\"\u003e\u003ccode\u003efc9f47e\u003c/code\u003e\u003c/a\u003e feat(api): GA thinking-display-setting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.84.0...v0.86.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.2 to 2.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.4 (Mar 29, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.4 is a patch release that fixes bugs discovered after the 2.4.3\nrelease. It should finally close issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e, the OpenBLAS threading problem\non ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 8 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eDaniel Haag +\u003c/li\u003e\n\u003cli\u003eDenis Prokopenko +\u003c/li\u003e\n\u003cli\u003eHarshith J +\u003c/li\u003e\n\u003cli\u003eKoki Watanabe\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 7 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30978\"\u003e#30978\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31049\"\u003e#31049\u003c/a\u003e: BUG: Add test to reproduce problem described in \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30818\"\u003e#30818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31052\"\u003e#31052\u003c/a\u003e: BUG: fix FNV-1a 64-bit selection by using NPY_SIZEOF_UINTP (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31035\"\u003e#31035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31053\"\u003e#31053\u003c/a\u003e: BUG: avoid warning on ufunc with where=True and no output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31058\"\u003e#31058\u003c/a\u003e: DOC: document caveats of ndarray.resize on 3.14 and newer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31079\"\u003e#31079\u003c/a\u003e: TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31084\"\u003e#31084\u003c/a\u003e: MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 11 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAntareep Sarkar +\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/numpy/numpy/commit/be93fe2960dbf49b4647f5783c66d967fb2c65b5\"\u003e\u003ccode\u003ebe93fe2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31090\"\u003e#31090\u003c/a\u003e from charris/prepare-2.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f5245dc7ea5c6279c59cb0d5de81113229841290\"\u003e\u003ccode\u003ef5245dc\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/02e838ba270a5ca3dd8afc5a31c090cd34a56615\"\u003e\u003ccode\u003e02e838b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31084\"\u003e#31084\u003c/a\u003e from charris/backport-31056\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fa74b2d05f8f7604bf6635d5280c3216c8ec667f\"\u003e\u003ccode\u003efa74b2d\u003c/code\u003e\u003c/a\u003e MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31056\"\u003e#31056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/533a6db96dfa2556a61102a58c35fd64eaf3fa2b\"\u003e\u003ccode\u003e533a6db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31079\"\u003e#31079\u003c/a\u003e from charris/backport-20801\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9e496cbd0a281195bd779ae1833f2a8f4a1d46a7\"\u003e\u003ccode\u003e9e496cb\u003c/code\u003e\u003c/a\u003e TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8052c4b69ef18e582709af946f93f9e58b848f39\"\u003e\u003ccode\u003e8052c4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31058\"\u003e#31058\u003c/a\u003e from charris/backport-31021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7f13b5ad2b69fd6ea6aa3af7036b2dcf98e96486\"\u003e\u003ccode\u003e7f13b5a\u003c/code\u003e\u003c/a\u003e MAINT: Skip test on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4c5fdd66c8f379a1e2b3f40fa62bd0b87769d1c7\"\u003e\u003ccode\u003e4c5fdd6\u003c/code\u003e\u003c/a\u003e MAINT: Remove unused import of tracemalloc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a3ca5ed354b26e0fd6e35bf29765a24271ed7c3a\"\u003e\u003ccode\u003ea3ca5ed\u003c/code\u003e\u003c/a\u003e Update numpy/_core/src/multiarray/shape.c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.2...v2.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torch` from 2.10.0 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.11.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the \u003ca href=\"https://pytorch.org/blog/pytorch-2-11-release-blog/\"\u003erelease blogpost\u003c/a\u003e. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eRelease Engineering\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/pytorch/pytorch/commit/70d99e998b4955e0049d13a98d77ae1b14db1f45\"\u003e\u003ccode\u003e70d99e9\u003c/code\u003e\u003c/a\u003e [release only] Increase timeout for rocm libtorch and manywheel builds (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/178006\"\u003e#178006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/3e05c5a9ca8aacd0d137541876f8bf4cfca7e940\"\u003e\u003ccode\u003e3e05c5a\u003c/code\u003e\u003c/a\u003e [MPS] Properly handle conjugated tensors in bmm (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/178010\"\u003e#178010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/db741c72097871e384b22ee6fff1d6083adf23cc\"\u003e\u003ccode\u003edb741c7\u003c/code\u003e\u003c/a\u003e [MPS] fix compiling of SDPA producing nan results (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/178009\"\u003e#178009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/483b55d84c74b92b3c2c67be4b9b7c7359ec2bbc\"\u003e\u003ccode\u003e483b55d\u003c/code\u003e\u003c/a\u003e Update pytorch_sphinx_theme2 version to 0.4.6 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/177616\"\u003e#177616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/7f2cdeb75b76bf07bb73776444bbb94456adbfa0\"\u003e\u003ccode\u003e7f2cdeb\u003c/code\u003e\u003c/a\u003e [windows][smoke test] Add an option to install cuda if required cuda/cudnn on...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/76fd07897dd9126df160e9723d97511b79888087\"\u003e\u003ccode\u003e76fd078\u003c/code\u003e\u003c/a\u003e [release-only] Fix libtorch builds. Fix lint (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/177299\"\u003e#177299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/fa384de31efe6548e694758d47ff295f2c2edb57\"\u003e\u003ccode\u003efa384de\u003c/code\u003e\u003c/a\u003e [Inductor][MPS] Fix half-precision type mismatches in Metal shader codegen (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/036b25f5a29dc58cbc62e7b976efb860ff128c3f\"\u003e\u003ccode\u003e036b25f\u003c/code\u003e\u003c/a\u003e Let stable::from_blob accept a lambda as deleter (cherry-pick) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/176440\"\u003e#176440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/41f8e3e0381395e1669ca4bc6e36a7872d25cdcd\"\u003e\u003ccode\u003e41f8e3e\u003c/code\u003e\u003c/a\u003e [CI] Stop using G3 runners (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/177161\"\u003e#177161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e2fa2953033020ad7e0f823ec534044fac15a3c7\"\u003e\u003ccode\u003ee2fa295\u003c/code\u003e\u003c/a\u003e [CD] Unpin cuda-bindings dependencies (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/177159\"\u003e#177159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.10.0...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.2.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0 - Improved Contrastive Learning, New Losses, and Transformers v5 Compatibility\u003c/h2\u003e\n\u003cp\u003eThis minor version brings several improvements to contrastive learning: \u003ccode\u003eMultipleNegativesRankingLoss\u003c/code\u003e now supports alternative InfoNCE formulations (symmetric, GTE-style) and optional hardness weighting for harder negatives. Two new losses are introduced, \u003ccode\u003eGlobalOrthogonalRegularizationLoss\u003c/code\u003e for embedding space regularization and \u003ccode\u003eCachedSpladeLoss\u003c/code\u003e for memory-efficient SPLADE training. The release also adds a faster hashed batch sampler, fixes \u003ccode\u003eGroupByLabelBatchSampler\u003c/code\u003e for triplet losses, and ensures full compatibility with the latest Transformers v5 versions.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==5.3.0\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.3.0\npip install sentence-transformers[onnx-gpu]==5.3.0\npip install sentence-transformers[onnx]==5.3.0\npip install sentence-transformers[openvino]==5.3.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eUpdated MultipleNegativesRankingLoss (a.k.a. InfoNCE)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eMultipleNegativesRankingLoss\u003c/code\u003e received two major upgrades: support for alternative InfoNCE formulations from the literature, and optional hardness weighting to up-weight harder negatives.\u003c/p\u003e\n\u003ch3\u003eSupport other InfoNCE variants (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3607\"\u003e#3607\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eMultipleNegativesRankingLoss\u003c/code\u003e now supports several well-known contrastive loss variants from the literature through new \u003ccode\u003edirections\u003c/code\u003e and \u003ccode\u003epartition_mode\u003c/code\u003e parameters. Previously, this loss only supported the standard forward direction (query → doc). You can now configure which similarity interactions are included in the loss:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;query_to_doc\u0026quot;\u003c/code\u003e (default): For each query, its matched document should score higher than all other documents.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;doc_to_query\u0026quot;\u003c/code\u003e: The symmetric reverse — for each document, its matched query should score higher than all other queries.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;query_to_query\u0026quot;\u003c/code\u003e: For each query, all other queries should score lower than its matched document.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;doc_to_doc\u0026quot;\u003c/code\u003e: For each document, all other documents should score lower than its matched query.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ccode\u003epartition_mode\u003c/code\u003e controls how scores are normalized: \u003ccode\u003e\u0026quot;joint\u0026quot;\u003c/code\u003e computes a single softmax over all directions, while \u003ccode\u003e\u0026quot;per_direction\u0026quot;\u003c/code\u003e computes a separate softmax per direction and averages the losses.\u003c/p\u003e\n\u003cp\u003eThese combine to reproduce several loss formulations from the literature:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eStandard InfoNCE\u003c/strong\u003e (default, unchanged behavior):\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eloss = MultipleNegativesRankingLoss(model)\r\n# equivalent to directions=(\u0026quot;query_to_doc\u0026quot;,), partition_mode=\u0026quot;joint\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eSymmetric InfoNCE\u003c/strong\u003e (\u003ca href=\"https://arxiv.org/abs/2310.19923\"\u003eGünther et al. 2024\u003c/a\u003e) — adds the reverse direction so both queries and documents are trained to find their match:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eloss = MultipleNegativesRankingLoss(\r\n    model,\r\n    directions=(\u0026quot;query_to_doc\u0026quot;, \u0026quot;doc_to_query\u0026quot;),\r\n    partition_mode=\u0026quot;per_direction\u0026quot;,\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eGTE improved contrastive loss\u003c/strong\u003e (\u003ca href=\"https://arxiv.org/abs/2308.03281\"\u003eLi et al. 2023\u003c/a\u003e) — adds same-type negatives (query \u0026lt;-\u0026gt; query, doc \u0026lt;-\u0026gt; doc) for a stronger training signal, especially useful with pairs-only data:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eloss = MultipleNegativesRankingLoss(\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/sentence-transformers/commit/ce48ecc77f8c7ed97c8fcc3cd99fde6071206680\"\u003e\u003ccode\u003ece48ecc\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.3-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/cec08f89aabaa11a1675529fb7b11618c8255622\"\u003e\u003ccode\u003ecec08f8\u003c/code\u003e\u003c/a\u003e Fix citation for EmbeddingGemma paper (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3687\"\u003e#3687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/c29b3a69f7eca78d613fc2e465989ee880216c8d\"\u003e\u003ccode\u003ec29b3a6\u003c/code\u003e\u003c/a\u003e Release v5.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/55c13de47ea9475b1416a34af36716cc477bd95f\"\u003e\u003ccode\u003e55c13de\u003c/code\u003e\u003c/a\u003e Prep docs main page for v5.3.0 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3686\"\u003e#3686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/72e75f7868700a768f6c57fb16e76b18df250f72\"\u003e\u003ccode\u003e72e75f7\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003etests\u003c/code\u003e] Add slow reproduction tests for most common models (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3681\"\u003e#3681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/237e44151758a9b4eb86b1ecd73152884073549a\"\u003e\u003ccode\u003e237e441\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efix\u003c/code\u003e] Fix model card generation with set_transform with new column names (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/7f180b4b7146af66e2b043cdaa89bf87babe28bc\"\u003e\u003ccode\u003e7f180b4\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efeat\u003c/code\u003e] Add hardness-weighted contrastive learning to losses (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3667\"\u003e#3667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/58900864d51cde2f918885587709b2466938422c\"\u003e\u003ccode\u003e5890086\u003c/code\u003e\u003c/a\u003e Disallow query_to_query/doc_to_doc with partition_mode=\u0026quot;per_direction\u0026quot; due to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/6518c36671294b2125506f0d382d04102f739c91\"\u003e\u003ccode\u003e6518c36\u003c/code\u003e\u003c/a\u003e CE trainer: Removed IterableDataset from train and eval dataset type hints (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1e0e84cbfb5483ffe1a5ff7db459c67a61487f3f\"\u003e\u003ccode\u003e1e0e84c\u003c/code\u003e\u003c/a\u003e Add tips for adjusting batch size to improve processing speed (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3672\"\u003e#3672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.2.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `spacy` from 3.8.11 to 3.8.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/explosion/spaCy/releases\"\u003espacy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.14: Bug fix for model downloading in environments without pip on PATH\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003espacy download\u003c/code\u003e failing in environments where \u003ccode\u003epip\u003c/code\u003e is not on PATH but is available as a Python module (e.g., some virtual environments and containers)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.8.13: Pin confection to new version\u003c/h2\u003e\n\u003cp\u003eThe v3.8.12 release didn't update the confection pin, which meant that if you did an upgrade-install models wouldn't load.\u003c/p\u003e\n\u003ch2\u003ev3.8.12\u003c/h2\u003e\n\u003cp\u003eUse confection v1.3 and Thinc v8.3.13, which implement custom validation logic in place of Pydantic, allowing us to properly adopt Pydantic v2 and provide full Python 3.14 support.\u003c/p\u003e\n\u003cp\u003eOur dependency tree used Pydantic v1 in unusual ways, and relied on behaviours that Pydantic v2 reformed. In the time since Pydantic v2 was released there were a few attempts to migrate over to it, but the task has been complicated by the fact that the confection library has a fairly tangled implementation and I had reduced availability for open-source work in 2024 and 2025.\u003c/p\u003e\n\u003cp\u003eSpecifically, our library confection provides the extensible configuration system we use in spaCy and Thinc. The config system allows you to refer to values that will be supplied by arbitrary functions, that e.g. define some neural network model or its sublayers. The functionality in confection is complicated because we aggressively prioritised user experience in the specification, even if it required increased implementation complexity.\u003c/p\u003e\n\u003cp\u003eConfection's original implementation built a dynamic Pydantic v1 schema for function-supplied values (\u0026quot;promises\u0026quot;). We validate the schema before calling any promises, and then validate the schema again after calling all the promises and substituting in their values. The variable-interpolation system adds further difficulties to the implementation, and we have to do it all subclassing the Python built-in configparser, which ties us to implementation choices I'd do differently if I had a clean slate.\u003c/p\u003e\n\u003cp\u003eHere's one summary of Pydantic v1-specific behaviours that the migration to v2 particularly difficult for us. This particular summary was produced during a session with Claude Code Opus 4.6, so nuances of it might be wrong. The full history of attempts at doing this spans over different refactors separated by a few months at a time, so I don't have a full record of all the things that I struggled with. It's possible some details of this summary are incorrect though.\u003c/p\u003e\n\u003cp\u003eThe core problem we kept hitting: Pydantic v2 compiles validation schemas upfront and has much stricter immutability. The whole session has been a series of workarounds for this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e 1. Schema mutation — v1 let you mutate __fields__ in place; v2 needs model_rebuild() which loses forward ref namespaces, or create_model subclasses which don't propagate to parent schemas.\r\n 2. model_dump vs dict — v2 converts dataclasses to dicts, breaking resolved objects. Needed a custom _model_to_dict helper.\r\n 3. model_construct drops extras — v2 silently drops fields with extra=\u0026quot;forbid\u0026quot;, needed manual workarounds.\r\n 4. Strict coercion — v2 coerces ndarray to List[Floats1d] via iteration, needed strict=True.\r\n 5. Forward refs — Every schema with TYPE_CHECKING imports needs model_rebuild() with the right namespace, and that breaks when confection re-rebuilds later.\r\nIn order to adjust for behavioural differences like this, I'd refactored confection to build the different versions of the schema in multiple passes, instead of building all the representations together as we'd been doing. However this refactor itself had problems, further complicating the migration.\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eI've now bitten the bullet and rolled back the refactor I'd been attempting of confection, and instead replaced the Pydantic validation with custom logic. This allows Confection to remove Pydantic as a dependency entirely.~ Update: Actually I went back and got the refactor working. All much nicer now.\u003c/p\u003e\n\u003cp\u003eI've taken some lengths to explain this because migrating off a dependency after breaking changes can be a sensitive topic. I want to stress that the changes Pydantic made from v1 to v2 are very good, and I greatly appreciate them as a user of FastAPI in our services. It would be very bad for the ecosystem if Pydantic pinned themselves to exactly matching the behaviours they had in v1 just to avoid breaking support for the sort of thing we'd been doing. Instead users who were relying on those behaviours like us should just find some way to adapt --- either vendor the v1 version we need, or change our behaviours, or implement an alternative. I would have liked to do this sooner but we've ultimately gone with the third option.\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/explosion/spaCy/commit/0069cf99b60023363ba5f47404819f59c8a39b3e\"\u003e\u003ccode\u003e0069cf9\u003c/code\u003e\u003c/a\u003e Set version to 3.8.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/56032260f2d37981682d6685b2a124346b60cca7\"\u003e\u003ccode\u003e5603226\u003c/code\u003e\u003c/a\u003e fix: check pip module availability instead of PATH binary in download (\u003ca href=\"https://redirect.github.com/explosion/spaCy/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/d4bb796b5ed3d0bd65d0af6b1e26ebc181c3aef1\"\u003e\u003ccode\u003ed4bb796\u003c/code\u003e\u003c/a\u003e Add least-privilege permissions to CI workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/9d29209d0486f315773c890c25db34c07a888654\"\u003e\u003ccode\u003e9d29209\u003c/code\u003e\u003c/a\u003e Pass github context via stdin instead of CLI arg\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/4216738cf83719938d5bafc29fb61537d758baf1\"\u003e\u003ccode\u003e4216738\u003c/code\u003e\u003c/a\u003e Pin GitHub Actions to commit SHAs for supply chain security\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/297938e7040d5b4866d65d2d11dd113a1146ba89\"\u003e\u003ccode\u003e297938e\u003c/code\u003e\u003c/a\u003e Add smoke test and upgrade test to release build workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/fdca647b1b07cca7ac36adc78fedaea908b0d168\"\u003e\u003ccode\u003efdca647\u003c/code\u003e\u003c/a\u003e Set version to 3.8.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/0d94a9d66dd6a754fa958db2fd20ce60ff908c94\"\u003e\u003ccode\u003e0d94a9d\u003c/code\u003e\u003c/a\u003e Pin confection\u0026gt;=1.3.2 — older versions crash with pydantic v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/f175a51e2df36f16d473c7b62a0b9b8563ebb773\"\u003e\u003ccode\u003ef175a51\u003c/code\u003e\u003c/a\u003e Fully migrate to Pydantic v2 (\u003ca href=\"https://redirect.github.com/explosion/spaCy/issues/13940\"\u003e#13940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/24255bd1e25c7275553325d989bfcfd3a41fc1d2\"\u003e\u003ccode\u003e24255bd\u003c/code\u003e\u003c/a\u003e Fix import sorting for ruff isort compliance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/explosion/spaCy/compare/release-v3.8.11...release-v3.8.14\"\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/GeorgeA123/todays-news/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgeA123%2Ftodays-news/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"},{"uuid":"4139809977","node_id":"PR_kwDONzExCc7Ni8XY","number":3,"state":"open","title":"Bump the pip group across 12 directories with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":7,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-26T01:53:05.000Z","updated_at":"2026-03-26T01:57:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":8,"packages":[{"name":"pillow","old_version":"10.4.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"10.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"11.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"langgraph","old_version":"0.2.53","new_version":"1.0.10rc1","repository_url":"https://github.com/langchain-ai/langgraph"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /ai_agent_tutorials/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_lead_generation_agent directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_recruitment_agent_team directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_teaching_agent_team directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/multimodal_design_agent_team directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 3 updates in the /rag_tutorials/corrective_rag directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_database_routing directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain) and [langchain-core](https://github.com/langchain-ai/langchain).\n\nUpdates `pillow` from 10.4.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/claude-agent-sdk\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e8dc5568: Add \u003ccode\u003eworkbench.enable\u003c/code\u003e option to session config for disabling the workbench entirely. When set to \u003ccode\u003efalse\u003c/code\u003e, code execution tools (COMPOSIO_REMOTE_WORKBENCH, COMPOSIO_REMOTE_BASH_TOOL) are excluded from the session. Defaults to \u003ccode\u003etrue\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/llamaindex\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/mastra\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/claude-agent-sdk\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e8dc5568: Add \u003ccode\u003eworkbench.enable\u003c/code\u003e option to session config for disabling the workbench entirely. When set to \u003ccode\u003efalse\u003c/code\u003e, code execution tools (COMPOSIO_REMOTE_WORKBENCH, COMPOSIO_REMOTE_BASH_TOOL) are excluded from the session. Defaults to \u003ccode\u003etrue\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/llamaindex\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/mastra\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.0.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langgraph` from 0.2.53 to 1.0.10rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langgraph/releases\"\u003elanggraph's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elanggraph==1.0.10rc1\u003c/h2\u003e\n\u003cp\u003eChanges since 1.0.9\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease: Candidate (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6947\"\u003e#6947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMerge commit from fork\u003c/li\u003e\n\u003cli\u003echore: add tests to confirm expected subgraph persistence behavior (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6943\"\u003e#6943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(langgraph): correct ParentCommand bubbling when checkpoint_ns includes numeric task segments  (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6864\"\u003e#6864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: add \u003ccode\u003emake type\u003c/code\u003e target for type checking (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6748\"\u003e#6748\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003elanggraph==1.0.9\u003c/h2\u003e\n\u003cp\u003eChanges since 1.0.8\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease: langgraph + prebuilt (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6875\"\u003e#6875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: sequential interrupt handling w/ functional API (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6863\"\u003e#6863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: state_updated_at sort by (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6857\"\u003e#6857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: bump orjson (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6852\"\u003e#6852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: conformance testing (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6842\"\u003e#6842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the all-dependencies group in /libs/langgraph with 6 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6815\"\u003e#6815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump protobuf from 6.33.4 to 6.33.5 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6833\"\u003e#6833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump cryptography from 46.0.3 to 46.0.5 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6837\"\u003e#6837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump nbconvert from 7.16.6 to 7.17.0 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6832\"\u003e#6832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: server runtime type (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6774\"\u003e#6774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefactor: replace bare except with BaseException in AsyncQueue (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6765\"\u003e#6765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003elanggraph==1.0.8\u003c/h2\u003e\n\u003cp\u003eChanges since 1.0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease(langgraph): 1.0.8 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6757\"\u003e#6757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: shallow copy futures (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6755\"\u003e#6755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: pydantic messages double streaming (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6753\"\u003e#6753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump ruff from 0.14.7 to 0.14.11 in /libs/sdk-py (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6673\"\u003e#6673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Omit lock when using connection pool (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6734\"\u003e#6734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: enhance \u003ccode\u003eRuntime\u003c/code\u003e and \u003ccode\u003eToolRuntime\u003c/code\u003e class descriptions for clarity (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6689\"\u003e#6689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: add clarity to use of \u003ccode\u003ethread_id\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6515\"\u003e#6515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: add docstrings to \u003ccode\u003eadd_n...\n\n_Description has been truncated_\n\n\u003cdiv id='description'\u003e\n\u003ca href=\"https://bito.ai#summarystart\"\u003e\u003c/a\u003e\u003ch3\u003eSummary by Bito\u003c/h3\u003e\u003cul\u003e\u003cli\u003eUpdated Pillow versions across multiple AI agent tutorials (ai_data_visualisation_agent, ai_medical_imaging_agent, multimodal_design_agent_team) from various 10.x and 11.x versions to 12.1.1.\u003c/li\u003e\n\u003cli\u003eUpgraded composio package in ai_lead_generation_agent and ai_teaching_agent_team from 0.1.1 to 0.8.0.\u003c/li\u003e\n\u003cli\u003eBumped browser-use in ai_meme_generator_agent_browseruse from 0.1.26 to 0.1.45.\u003c/li\u003e\n\u003cli\u003eUpdated requests in ai_recruitment_agent_team from 2.32.3 to 2.33.0 and lxml_html_clean in ai_startup_trend_analysis_agent from 0.4.1 to 0.4.4.\u003c/li\u003e\n\u003cli\u003eModified langchain-related packages in RAG tutorials (corrective_rag, gemini_agentic_rag, rag_agent_cohere, rag_database_routing): langgraph to 1.0.10rc1, langchain-community to 0.3.27, and langchain-core to 1.2.11.\u003c/li\u003e\n\u003c/ul\u003e\u003c/div\u003e","html_url":"https://github.com/RemyLoveLogicAI/awesome-llm-apps/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RemyLoveLogicAI%2Fawesome-llm-apps/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"4095412869","node_id":"PR_kwDOPGSG_s7LjrAf","number":46,"state":"closed","title":"Bump the pip group across 23 directories with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-18T22:36:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-18T14:12:46.000Z","updated_at":"2026-03-18T22:36:23.000Z","time_to_close":30215,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":10,"packages":[{"name":"fastmcp","old_version":"2.3.4","new_version":"2.14.2","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"lxml-html-clean","old_version":"0.3.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"pypdf","old_version":"4.3.1","new_version":"6.8.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"keras","old_version":"3.5.0","new_version":"3.13.2","repository_url":"https://github.com/keras-team/keras"},{"name":"black","old_version":"24.3.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"pypdf","old_version":"5.0.0","new_version":"6.8.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"authlib","old_version":"1.3.1","new_version":"1.6.9","repository_url":"https://github.com/authlib/authlib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 3 updates in the /integrations/a0ml directory: [fastmcp](https://github.com/PrefectHQ/fastmcp), [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) and [pypdf](https://github.com/py-pdf/pypdf).\nBumps the pip group with 1 update in the /integrations/ggml-org-central/ggml directory: [keras](https://github.com/keras-team/keras).\nBumps the pip group with 1 update in the /integrations/kokkos-central/llvm-project/llvm/utils/git directory: [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /integrations/mem0/embedchain directory: [pypdf](https://github.com/py-pdf/pypdf), [authlib](https://github.com/authlib/authlib) and [pyasn1](https://github.com/pyasn1/pyasn1).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/embedchain/deployment/gradio.app directory: [gradio](https://github.com/gradio-app/gradio).\nBumps the pip group with 2 updates in the /integrations/mem0/embedchain/examples/api_server directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/examples/full_stack/backend directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /integrations/mem0/embedchain/examples/rest-api directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/examples/slack_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/examples/telegram_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/examples/whatsapp_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 3 updates in the /integrations/mem0/mem0_temp/embedchain directory: [pypdf](https://github.com/py-pdf/pypdf), [authlib](https://github.com/authlib/authlib) and [pyasn1](https://github.com/pyasn1/pyasn1).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/embedchain/deployment/gradio.app directory: [gradio](https://github.com/gradio-app/gradio).\nBumps the pip group with 2 updates in the /integrations/mem0/mem0_temp/embedchain/examples/api_server directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/examples/full_stack/backend directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /integrations/mem0/mem0_temp/embedchain/examples/rest-api directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/examples/slack_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/examples/telegram_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/examples/whatsapp_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 3 updates in the /integrations/mem0_temp/embedchain directory: [pypdf](https://github.com/py-pdf/pypdf), [authlib](https://github.com/authlib/authlib) and [pyasn1](https://github.com/pyasn1/pyasn1).\nBumps the pip group with 1 update in the /integrations/mem0_temp/embedchain/examples/full_stack/backend directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /integrations/mem0_temp/embedchain/examples/rest-api directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0_temp/embedchain/examples/telegram_bot directory: [flask](https://github.com/pallets/flask).\n\nUpdates `fastmcp` from 2.3.4 to 2.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.2: Port Authority\u003c/h2\u003e\n\u003cp\u003eFastMCP 2.14.2 brings a wave of community contributions safely into the 2.x line. A variety of important fixes backported from 3.0 work improve OpenAPI 3.1 compatibility, MCP spec compliance for output schemas and elicitation, and correct a subtle base_url fallback issue. The CLI now gently reminds you that FastMCP 3.0 is on the horizon.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancements 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePin MCP under 2.x by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2709\"\u003ejlowin/fastmcp#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auth_route parameter to SupabaseProvider by \u003ca href=\"https://github.com/EloiZalczer\"\u003e\u003ccode\u003e@​EloiZalczer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2760\"\u003ejlowin/fastmcp#2760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CLI banner with FastMCP 3.0 notice by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2765\"\u003ejlowin/fastmcp#2765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLet FastMCPError propagate unchanged from managers by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2697\"\u003ejlowin/fastmcp#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test cleanup for uvicorn 0.39+ context isolation by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2696\"\u003ejlowin/fastmcp#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pydocket to 0.16.3 to fix worker cleanup race condition by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2700\"\u003ejlowin/fastmcp#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Prefect website URL in docs footer by \u003ca href=\"https://github.com/mgoldsborough\"\u003e\u003ccode\u003e@​mgoldsborough\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2705\"\u003ejlowin/fastmcp#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: resolve root-level $ref in outputSchema for MCP spec compliance by \u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2727\"\u003ejlowin/fastmcp#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OAuth Proxy resource parameter validation by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2763\"\u003ejlowin/fastmcp#2763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix openapi_version check to include 3.1 by \u003ca href=\"https://github.com/deeleeramone\"\u003e\u003ccode\u003e@​deeleeramone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2769\"\u003ejlowin/fastmcp#2769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix titled enum elicitation schema to comply with MCP spec by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2774\"\u003ejlowin/fastmcp#2774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix base_url fallback when url is not set by \u003ca href=\"https://github.com/bhbs\"\u003e\u003ccode\u003e@​bhbs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2782\"\u003ejlowin/fastmcp#2782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazy import DiskStore to avoid sqlite3 dependency on import by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2785\"\u003ejlowin/fastmcp#2785\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd v3 breaking changes notice to README and docs by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2713\"\u003ejlowin/fastmcp#2713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd changelog entries for v2.13.1 through v2.14.1 by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2724\"\u003ejlowin/fastmcp#2724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econference to 2.x branch by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2787\"\u003ejlowin/fastmcp#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jlowin/fastmcp/compare/v2.14.1...v2.14.2\"\u003ehttps://github.com/jlowin/fastmcp/compare/v2.14.1...v2.14.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.1: 'Tis a Gift to Be Sample\u003c/h2\u003e\n\u003cp\u003eFastMCP 2.14.1 adds support for sampling with tools (SEP-1577). This exciting new feature lets servers pass tools to \u003ccode\u003ectx.sample()\u003c/code\u003e, enabling agentic workflows where the server borrows the client's LLM and controls tool execution automatically. Pass any callable as a tool and FastMCP handles the loop: calling the LLM, executing tools, and feeding results back until a final response is produced. For fine-grained control, \u003ccode\u003ectx.sample_step()\u003c/code\u003e makes a single LLM call and returns a \u003ccode\u003eSampleStep\u003c/code\u003e, letting you inspect tool calls, add custom logic, or build your own execution loop. Structured output via \u003ccode\u003eresult_type\u003c/code\u003e returns validated Pydantic models instead of raw text. This release also adds \u003ccode\u003eAnthropicSamplingHandler\u003c/code\u003e alongside the existing \u003ccode\u003eOpenAI\u003c/code\u003e handler (newly promoted out of the \u003ccode\u003eexperimental\u003c/code\u003e module), so clients \u003cem\u003eand\u003c/em\u003e servers can provide sampling capability across major providers with ease.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features 🎉\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSEP-1577: Sampling with tools by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2551\"\u003ejlowin/fastmcp#2551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AnthropicSamplingHandler by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2617\"\u003ejlowin/fastmcp#2617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 to Ubuntu CI tests by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2606\"\u003ejlowin/fastmcp#2606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy _task_capable_initialize() workaround by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2612\"\u003ejlowin/fastmcp#2612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsolidate session state reset logic and improve cancellation cleanup by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2615\"\u003ejlowin/fastmcp#2615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnify SamplingHandler and promote OpenAI handler by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2616\"\u003ejlowin/fastmcp#2616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tool_names parameter to mount() for name overrides by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2619\"\u003ejlowin/fastmcp#2619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt streamable_http_client API from MCP SDK by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2620\"\u003ejlowin/fastmcp#2620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate exclude_args in favor of Depends() by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2621\"\u003ejlowin/fastmcp#2621\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: prompt tasks returning mcp.types.PromptMessage now work by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2603\"\u003ejlowin/fastmcp#2603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WindowsSelectorEventLoopPolicy to fix Windows test warnings by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2607\"\u003ejlowin/fastmcp#2607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up cancelled connection startup by \u003ca href=\"https://github.com/shawnthapa\"\u003e\u003ccode\u003e@​shawnthapa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2614\"\u003ejlowin/fastmcp#2614\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/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx\"\u003efastmcp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003chr /\u003e\n\u003ch2\u003etitle: \u0026quot;Changelog\u0026quot;\nicon: \u0026quot;list-check\u0026quot;\nrss: true\ntag: NEW\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases/tag/v3.0.2\"\u003ev3.0.2: Threecovery Mode II\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eTwo community-contributed fixes: auth headers from MCP transport no longer leak through to downstream OpenAPI APIs, and background task workers now correctly receive the originating request ID. Plus a new docs example for context-aware tool factories.\u003c/p\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: prevent MCP transport auth header from leaking to downstream OpenAPI APIs by \u003ca href=\"https://github.com/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3262\"\u003e#3262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: propagate origin_request_id to background task workers by \u003ca href=\"https://github.com/gfortaine\"\u003e\u003ccode\u003e@​gfortaine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3175\"\u003e#3175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd v3.0.1 release notes by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3259\"\u003e#3259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add context-aware tool factory example by \u003ca href=\"https://github.com/machov\"\u003e\u003ccode\u003e@​machov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3264\"\u003e#3264\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.0.1...v3.0.2\"\u003ev3.0.1...v3.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases/tag/v3.0.1\"\u003ev3.0.1: Three-covery Mode\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eFirst patch after 3.0 — mostly smoothing out rough edges discovered in the wild. The big ones: middleware state that wasn't surviving the trip to tool handlers now does, \u003ccode\u003eTool.from_tool()\u003c/code\u003e accepts callables again, OpenAPI schemas with circular references no longer crash discovery, and decorator overloads now return the correct types in function mode. Also adds \u003ccode\u003everify_id_token\u003c/code\u003e to OIDCProxy for providers (like some Azure AD configs) that issue opaque access tokens but standard JWT id_tokens.\u003c/p\u003e\n\u003ch3\u003eEnhancements 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd verify_id_token option to OIDCProxy by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3248\"\u003e#3248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix v3.0.0 changelog compare link by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3223\"\u003e#3223\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MDX parse error in upgrade guide prompts by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3227\"\u003e#3227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix non-serializable state lost between middleware and tools by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3234\"\u003e#3234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept callables in Tool.from_tool() by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3235\"\u003e#3235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve skill metadata through provider wrapping by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3237\"\u003e#3237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix circular reference crash in OpenAPI schemas by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3245\"\u003e#3245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix NameError with future annotations and Context/Depends parameters by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3243\"\u003e#3243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ty ignore syntax in OpenAPI provider by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3253\"\u003e#3253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse max_completion_tokens instead of deprecated max_tokens in OpenAI handler by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3254\"\u003e#3254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ty compatibility with upgraded deps by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3257\"\u003e#3257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix decorator overload return types for function mode by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3258\"\u003e#3258\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSync README with welcome.mdx, fix install count by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3224\"\u003e#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument dict-to-Message prompt migration in upgrade guides by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3225\"\u003e#3225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix v2 upgrade guide: remove incorrect v1 import advice by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3226\"\u003e#3226\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/PrefectHQ/fastmcp/commit/99832a9fafe742dcfa747bc6b829b386c25c243b\"\u003e\u003ccode\u003e99832a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2787\"\u003e#2787\u003c/a\u003e from jlowin/confernece-to-2.x-branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/7fd365c8680b2c747bd23360662eebfaa0c1fb27\"\u003e\u003ccode\u003e7fd365c\u003c/code\u003e\u003c/a\u003e Update docs.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/9cf9aa9b37dcbbe917d43b7a3a06540fe6bfd65e\"\u003e\u003ccode\u003e9cf9aa9\u003c/code\u003e\u003c/a\u003e Lazy import DiskStore to avoid sqlite3 dependency on import (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2785\"\u003e#2785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/1b637522d166d40ad41346997d2fda74bc886934\"\u003e\u003ccode\u003e1b63752\u003c/code\u003e\u003c/a\u003e Fix base_url fallback when url is not set (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2776\"\u003e#2776\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2782\"\u003e#2782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/33ff356c0f08bbbc22a369e0fc789f4b086e2767\"\u003e\u003ccode\u003e33ff356\u003c/code\u003e\u003c/a\u003e Fix titled enum elicitation schema to comply with MCP spec (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2774\"\u003e#2774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/820f74e8ed7c49fc5c53c02f8cb92f8b3121a265\"\u003e\u003ccode\u003e820f74e\u003c/code\u003e\u003c/a\u003e [BugFix] Fix \u003ccode\u003eopenapi_version\u003c/code\u003e Check So 3.1 Is Included (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2768\"\u003e#2768\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/bbf6c200eeda0a9a946dd8f650a5fa35864ab36f\"\u003e\u003ccode\u003ebbf6c20\u003c/code\u003e\u003c/a\u003e Update CLI banner with FastMCP 3.0 notice (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2765\"\u003e#2765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/97327893bba11bc837aa1883e39cf8ffea8af479\"\u003e\u003ccode\u003e9732789\u003c/code\u003e\u003c/a\u003e Fix OAuth Proxy resource parameter validation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/6bade1cbd973cbbbca26a84ed7c4cc58ecfda5b3\"\u003e\u003ccode\u003e6bade1c\u003c/code\u003e\u003c/a\u003e Add auth_route parameter to SupabaseProvider (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/4963b516c285bcfe6440a44996dfe06d604af3bd\"\u003e\u003ccode\u003e4963b51\u003c/code\u003e\u003c/a\u003e Fix: resolve root-level $ref in outputSchema for MCP spec compliance (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2720\"\u003e#2720\u003c/a\u003e) ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v2.3.4...v2.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.3.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.1 (2024-11-15)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved superfluous debug prints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.0 (2024-11-12)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eCleaner()\u003c/code\u003e now scans for hidden JavaScript code embedded\nwithin CSS comments. In certain contexts, such as within \u003ccode\u003e\u0026lt;svg\u0026gt;\u003c/code\u003e or \u003ccode\u003e\u0026lt;math\u0026gt;\u003c/code\u003e tags,\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.3.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 4.3.1 to 6.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.8.0, 2026-03-09\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e) by \u003ca href=\"https://github.com/costajohnt\"\u003e\u003ccode\u003e@​costajohnt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to disable jbig2dec calls by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.5...6.8.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.8.0, 2026-03-09\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument how to disable jbig2dec calls\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.5...6.8.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\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/py-pdf/pypdf/commit/a869eceb57e1f98d118e8b73c6169bdc519cbc57\"\u003e\u003ccode\u003ea869ece\u003c/code\u003e\u003c/a\u003e REL: 6.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/3c550b3196adeba1506a26e57c09c09fac75e9aa\"\u003e\u003ccode\u003e3c550b3\u003c/code\u003e\u003c/a\u003e SEC: Limit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/5dae0e28bec83a5c9a3df2ace26dc77c633b4f72\"\u003e\u003ccode\u003e5dae0e2\u003c/code\u003e\u003c/a\u003e MAINT: Document and test XMP security (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/b9f66ab4338ce14e5f07a73f51f09ed08fa1fe7a\"\u003e\u003ccode\u003eb9f66ab\u003c/code\u003e\u003c/a\u003e DEV: Change to \u003ccode\u003eloadfile\u003c/code\u003e strategy for PyPy in CI (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/071118b08286bed057bb1608cc507d76722cc6f9\"\u003e\u003ccode\u003e071118b\u003c/code\u003e\u003c/a\u003e MAINT: Remove excessive logging in extract_links while not clear (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/43add641726c2819a465cd0d5c05818aa697f81e\"\u003e\u003ccode\u003e43add64\u003c/code\u003e\u003c/a\u003e DEV: Timeout PyPy tests after one minute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/4228dd2f52e5f70b95c8058c4fc8c6ac291ebbc1\"\u003e\u003ccode\u003e4228dd2\u003c/code\u003e\u003c/a\u003e DOC: Avoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/0e9792df262f782884ea5e1b75ea1138655a1fe7\"\u003e\u003ccode\u003e0e9792d\u003c/code\u003e\u003c/a\u003e ENH: Add /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/ede6db99d007f27540e62867c762746df7a6ed0e\"\u003e\u003ccode\u003eede6db9\u003c/code\u003e\u003c/a\u003e DOC: Document how to disable jbig2dec calls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/6d0fa2fc0b6e54d9d6f61ffa52d057c8b5ff032f\"\u003e\u003ccode\u003e6d0fa2f\u003c/code\u003e\u003c/a\u003e MAINT: Move and rename _xobj_image_helpers.py (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3661\"\u003e#3661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/4.3.1...6.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `keras` from 3.5.0 to 3.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/keras-team/keras/releases\"\u003ekeras's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.13.2\u003c/h2\u003e\n\u003ch2\u003eSecurity Fixes \u0026amp; Hardening\u003c/h2\u003e\n\u003cp\u003eThis release introduces critical security hardening for model loading and saving, alongside improvements to the JAX backend metadata handling.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDisallow \u003ccode\u003eTFSMLayer\u003c/code\u003e deserialization in \u003ccode\u003esafe_mode\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/22035\"\u003e#22035\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously, \u003ccode\u003eTFSMLayer\u003c/code\u003e could load external TensorFlow SavedModels during deserialization without respecting Keras \u003ccode\u003esafe_mode\u003c/code\u003e. This could allow the execution of attacker-controlled graphs during model invocation.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTFSMLayer\u003c/code\u003e now enforces \u003ccode\u003esafe_mode\u003c/code\u003e by default. Deserialization via \u003ccode\u003efrom_config()\u003c/code\u003e will raise a \u003ccode\u003eValueError\u003c/code\u003e unless \u003ccode\u003esafe_mode=False\u003c/code\u003e is explicitly passed or \u003ccode\u003ekeras.config.enable_unsafe_deserialization()\u003c/code\u003e is called.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFix Denial of Service (DoS) in \u003ccode\u003eKerasFileEditor\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/21880\"\u003e#21880\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduces validation for HDF5 dataset metadata to prevent \u0026quot;shape bomb\u0026quot; attacks.\u003c/li\u003e\n\u003cli\u003eHardens the \u003ccode\u003e.keras\u003c/code\u003e file editor against malicious metadata that could cause dimension overflows or unbounded memory allocation (unbounded numpy allocation of multi-gigabyte tensors).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eBlock External Links in HDF5 files (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/22057\"\u003e#22057\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eKeras now explicitly disallows external links within HDF5 files during loading. This prevents potential security risks where a weight file could point to external system datasets.\u003c/li\u003e\n\u003cli\u003eIncludes improved verification for H5 Groups and Datasets to ensure they are local and valid.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBackend-specific Improvements (JAX)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSet \u003ccode\u003emutable=True\u003c/code\u003e by default in \u003ccode\u003ennx_metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/22074\"\u003e#22074\u003c/a\u003e)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the JAX backend logic to ensure that variables are treated as mutable by default in \u003ccode\u003ennx_metadata\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThis makes Keras 3.13.2 compatible with Flax 0.12.3 when the Keras NNX integration is enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSaving \u0026amp; Serialization\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImproved H5IOStore Integrity (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/22057\"\u003e#22057\u003c/a\u003e)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eRefactored \u003ccode\u003eH5IOStore\u003c/code\u003e and \u003ccode\u003eShardedH5IOStore\u003c/code\u003e to remove unused, unverified methods.\u003c/li\u003e\n\u003cli\u003eFixed key-ordering logic in sharded HDF5 stores to ensure consistent state loading across different environments.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cp\u003eWe would like to thank the following contributors for their security reports and code improvements:\n\u003ca href=\"https://github.com/0xManan\"\u003e\u003ccode\u003e@​0xManan\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/HyperPS\"\u003e\u003ccode\u003e@​HyperPS\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hertschuh\"\u003e\u003ccode\u003e@​hertschuh\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/divyashreepathihalli\"\u003e\u003ccode\u003e@​divyashreepathihalli\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/keras-team/keras/compare/v3.13.1...v3.13.2\"\u003ehttps://github.com/keras-team/keras/compare/v3.13.1...v3.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.13.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes \u0026amp; Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGeneral\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved a persistent warning triggered during \u003ccode\u003eimport keras\u003c/code\u003e when using NumPy 2.0 or higher. (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21949\"\u003e#21949\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBackends\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJAX:\u003c/strong\u003e Fixed an issue where CUDNN flash attention was broken when using JAX versions greater than 0.6.2. (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21970\"\u003e#21970\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExport \u0026amp; Serialization\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eResolved a regression in the export pipeline that incorrectly forced batch sizes to be dynamic. The export process now correctly respects static batch sizes when defined. (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21944\"\u003e#21944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/keras-team/keras/compare/v3.13.0...v3.13.1\"\u003ehttps://github.com/keras-team/keras/compare/v3.13.0...v3.13.1\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/keras-team/keras/commit/e29d0efbefe21b80c041849bd73cc3e54c872de3\"\u003e\u003ccode\u003ee29d0ef\u003c/code\u003e\u003c/a\u003e Version bump and cherry picks for 3.13.2 (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/22080\"\u003e#22080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/8914427b7fa9d90f3c476cb2ee65d55d4f808e65\"\u003e\u003ccode\u003e8914427\u003c/code\u003e\u003c/a\u003e Patch release commits for 3.13.1 (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/22005\"\u003e#22005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/986ff971d98e216a89fba38d48a337ed09d6dc44\"\u003e\u003ccode\u003e986ff97\u003c/code\u003e\u003c/a\u003e Update release version and comment orbax checkpoint (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21934\"\u003e#21934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/ca23fceb51f7de40dba51908a0a5297f1f425651\"\u003e\u003ccode\u003eca23fce\u003c/code\u003e\u003c/a\u003e Refactors AbsMaxQuantizer to accept axis in \u003cstrong\u003ecall\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21931\"\u003e#21931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/1a9893f04e081ba7f233f59b0669bbde2d83143f\"\u003e\u003ccode\u003e1a9893f\u003c/code\u003e\u003c/a\u003e Adds Serialization Support for QuantizationConfig based quantized models (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21\"\u003e#21\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/86bfab4375d17ed41e56dc25ab1fdb6e324377a8\"\u003e\u003ccode\u003e86bfab4\u003c/code\u003e\u003c/a\u003e More OpenVINO Numpy Operations (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21925\"\u003e#21925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/f48f4805fd462893f68e5f6cc632d320d4198a52\"\u003e\u003ccode\u003ef48f480\u003c/code\u003e\u003c/a\u003e Add adaptive pooling (1D, 2D, 3D) support across JAX, NumPy, TensorFlow, and ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/0771c8044a5c183e3cd8c1c4e8756a607579d4a0\"\u003e\u003ccode\u003e0771c80\u003c/code\u003e\u003c/a\u003e Fix ops.tile shape inference issue on TensorFlow backend (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21860\"\u003e#21860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/024c96db1705f2d4fc0c03fde9158e33554b5304\"\u003e\u003ccode\u003e024c96d\u003c/code\u003e\u003c/a\u003e Extended fix OOM Issue \u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21634\"\u003e#21634\u003c/a\u003e on Keras side (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21755\"\u003e#21755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/71f499735f543871d296474c48f56a2e9758a73c\"\u003e\u003ccode\u003e71f4997\u003c/code\u003e\u003c/a\u003e Introduces QuantizationConfig for fine-grained quantization control (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21896\"\u003e#21896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/keras-team/keras/compare/v3.5.0...v3.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 24.3.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\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/psf/black/commit/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/24.3.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 5.0.0 to 6.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.8.0, 2026-03-09\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e) by \u003ca href=\"https://github.com/costajohnt\"\u003e\u003ccode\u003e@​costajohnt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to disable jbig2dec calls by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.5...6.8.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.8.0, 2026-03-09\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument how to disable jbig2dec calls\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.5...6.8.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\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/py-pdf/pypdf/commit/a869eceb57e1f98d118e8b73c6169bdc519cbc57\"\u003e\u003ccode\u003ea869ece\u003c/code\u003e\u003c/a\u003e REL: 6.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/3c550b3196adeba1506a26e57c09c09fac75e9aa\"\u003e\u003ccode\u003e3c550b3\u003c/code\u003e\u003c/a\u003e SEC: Limit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/5dae0e28bec83a5c9a3df2ace26dc77c633b4f72\"\u003e\u003ccode\u003e5dae0e2\u003c/code\u003e\u003c/a\u003e MAINT: Document and test XMP security (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/b9f66ab4338ce14e5f07a73f51f09ed08fa1fe7a\"\u003e\u003ccode\u003eb9f66ab\u003c/code\u003e\u003c/a\u003e DEV: Change to \u003ccode\u003eloadfile\u003c/code\u003e strategy for PyPy in CI (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/071118b08286bed057bb1608cc507d76722cc6f9\"\u003e\u003ccode\u003e071118b\u003c/code\u003e\u003c/a\u003e MAINT: Remove excessive logging in extract_links while not clear (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/43add641726c2819a465cd0d5c05818aa697f81e\"\u003e\u003ccode\u003e43add64\u003c/code\u003e\u003c/a\u003e DEV: Timeout PyPy tests after one minute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/4228dd2f52e5f70b95c8058c4fc8c6ac291ebbc1\"\u003e\u003ccode\u003e4228dd2\u003c/code\u003e\u003c/a\u003e DOC: Avoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/0e9792df262f782884ea5e1b75ea1138655a1fe7\"\u003e\u003ccode\u003e0e9792d\u003c/code\u003e\u003c/a\u003e ENH: Add /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/ede6db99d007f27540e62867c762746df7a6ed0e\"\u003e\u003ccode\u003eede6db9\u003c/code\u003e\u003c/a\u003e DOC: Document how to disable jbig2dec calls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/6d0fa2fc0b6e54d9d6f61ffa52d057c8b5ff032f\"\u003e\u003ccode\u003e6d0fa2f\u003c/code\u003e\u003c/a\u003e MAINT: Move and rename _xobj_image_helpers.py (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3661\"\u003e#3661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/4.3.1...6.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.3.1 to 1.6.9\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.6.9\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eChanges in \u003ccode\u003ejose\u003c/code\u003e module\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNot using header's \u003ccode\u003ejwk\u003c/code\u003e automatically\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eES256K\u003c/code\u003e into default jwt algorithms\u003c/li\u003e\n\u003cli\u003eRemove deprecated algorithm from default registry\u003c/li\u003e\n\u003cli\u003eGenerate random \u003ccode\u003ecek\u003c/code\u003e when \u003ccode\u003ecek\u003c/code\u003e length doesn't match\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.8\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.7...v1.6.8\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.7...v1.6.8\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eEdDSA\u003c/code\u003e to default \u003ccode\u003ejwt\u003c/code\u003e instance.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSet supported algorithms for the default \u003ccode\u003ejwt\u003c/code\u003e instance.\u003c/p\u003e\n\u003ch2\u003ev1.6.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(ClientAuth): fix incorrect signature when Content-Type is x-www-form-urlencoded by \u003ca href=\"https://github.com/shc261392\"\u003e\u003ccode\u003e@​shc261392\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/778\"\u003eauthlib/authlib#778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Use \u003ccode\u003eexpires_in\u003c/code\u003e when \u003ccode\u003eexpires_at\u003c/code\u003e is unparsable by \u003ca href=\"https://github.com/bendavis78\"\u003e\u003ccode\u003e@​bendavis78\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/842\"\u003eauthlib/authlib#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_jwt_config\u003c/code\u003e takes a \u003ccode\u003eclient\u003c/code\u003e parameter. 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/844\"\u003eauthlib/authlib#844\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/shc261392\"\u003e\u003ccode\u003e@​shc261392\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/778\"\u003eauthlib/authlib#778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bendavis78\"\u003e\u003ccode\u003e@​bendavis78\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/842\"\u003eauthlib/authlib#842\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.6.5...v1.6.6\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.5...v1.6.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a \u003ccode\u003erequest\u003c/code\u003e param to RFC7591 \u003ccode\u003egenerate_client_info\u003c/code\u003e and \u003ccode\u003egenerate_client_secret\u003c/code\u003e methods 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/825\"\u003eauthlib/authlib#825\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support list params in prepare_grant_uri by \u003ca href=\"https://github.com/lisongmin\"\u003e\u003ccode\u003e@​lisongmin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/827\"\u003eauthlib/authlib#827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump SonarSource/sonarqube-scan-action from 5 to 6 in /.github/workflows 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/authlib/authlib/pull/828\"\u003eauthlib/authlib#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(jose): add max size for JWE zip=DEF decompression by \u003ca href=\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/830\"\u003eauthlib/authlib#830\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/lisongmin\"\u003e\u003ccode\u003e@​lisongmin\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/827\"\u003eauthlib/authlib#827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/828\"\u003eauthlib/authlib#828\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.6.4...v1.6.5\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.4...v1.6.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(jose): prevent public/unprotected header overwriting protected header by \u003ca href=\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/809\"\u003eauthlib/authlib#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eInsecureTransportError\u003c/code\u003e raising 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/810\"\u003eauthlib/authlib#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd conventional-commits pre-commit hook 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/811\"\u003eauthlib/authlib#811\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/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e.. meta::\n:description: The full list of changes between each Authlib release.\u003c/p\u003e\n\u003cp\u003eHere you can see the full list of changes between each Authlib release.\u003c/p\u003e\n\u003ch2\u003eVersion 1.7.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eUnreleased\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eOpenID Connect RP-Initiated Logout 1.0 \u0026lt;https://openid.net/specs/openid-connect-rpinitiated-1_0.html\u0026gt;\u003c/code\u003e_.\nSee :ref:\u003ccode\u003especs/rpinitiated\u003c/code\u003e for details. :issue:\u003ccode\u003e500\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePer RFC 6749 Section 3.3, the \u003ccode\u003escope\u003c/code\u003e parameter is now optional at both\nauthorization and token endpoints. \u003ccode\u003eclient.get_allowed_scope()\u003c/code\u003e is called\nto determine the default scope when omitted. :issue:\u003ccode\u003e845\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.9, start support Python 3.14. :pr:\u003ccode\u003e850\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eAuthorizationServerMetadata.validate()\u003c/code\u003e to compose with RFC extension classes.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eexpires_at=0\u003c/code\u003e being incorrectly treated as \u003ccode\u003eNone\u003c/code\u003e. :issue:\u003ccode\u003e530\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eResourceProtector\u003c/code\u003e decorator to be used without parentheses. :issue:\u003ccode\u003e604\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eImplement RFC9700 PKCE downgrade countermeasure.\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eUser-Agent\u003c/code\u003e header when fetching server metadata and JWKs. :issue:\u003ccode\u003e704\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRFC7523 accepts the issuer URL as a valid audience. :issue:\u003ccode\u003e730\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUpgrade Guide: :ref:\u003ccode\u003ejoserfc_upgrade\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 1.6.6\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Dec 12, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_jwt_config\u003c/code\u003e takes a \u003ccode\u003eclient\u003c/code\u003e parameter, :pr:\u003ccode\u003e844\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix incorrect signature when \u003ccode\u003eContent-Type\u003c/code\u003e is x-www-form-urlencoded for OAuth 1.0 Client, :pr:\u003ccode\u003e778\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eexpires_in\u003c/code\u003e in \u003ccode\u003eOAuth2Token\u003c/code\u003e when \u003ccode\u003eexpires_at\u003c/code\u003e is unparsable, :pr:\u003ccode\u003e842\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAlways track \u003ccode\u003estate\u003c/code\u003e in session for OAuth client integrations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.6.5\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Oct 2, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRFC7591 \u003ccode\u003egenerate_client_info\u003c/code\u003e and \u003ccode\u003egenerate_client_secret\u003c/code\u003e take a \u003ccode\u003erequest\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAdd size limitation when decode JWS/JWE to prevent DoS.\u003c/li\u003e\n\u003cli\u003eAdd size limitation for \u003ccode\u003eDEF\u003c/code\u003e JWE zip algorithm.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.6.4\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/authlib/authlib/commit/9266eaa2227ad7e21dc731b2a4a01909aabd934b\"\u003e\u003ccode\u003e9266eaa\u003c/code\u003e\u003c/a\u003e chore: release 1.6.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b9bb2b25bf8b7e01512d847a95c1749646eaa72b\"\u003e\u003ccode\u003eb9bb2b2\u003c/code\u003e\u003c/a\u003e fix(oidc): fail close at validating c_h...\n\n_Description has been truncated_","html_url":"https://github.com/OzCog/co9priml/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OzCog%2Fco9priml/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"},{"uuid":"4040852703","node_id":"PR_kwDORhWs7M7I1ji-","number":9,"state":"open","title":"chore(deps): bump lxml-html-clean from 0.4.3 to 0.4.4 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-08T08:34:30.000Z","updated_at":"2026-03-08T08:37:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=pip\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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/glnarayanan/arivu/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/glnarayanan%2Farivu/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"4031033168","node_id":"PR_kwDOPzxB4M7IV-El","number":330,"state":"closed","title":"chore(deps): bump the pip group across 2 directories with 4 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-10T20:47:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-05T22:34:08.000Z","updated_at":"2026-03-10T20:47:55.000Z","time_to_close":425626,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":4,"packages":[{"name":"langchain-core","old_version":"0.3.81","new_version":"1.2.11","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"lxml-html-clean","old_version":"0.4.0","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"pypdf","old_version":"6.6.2","new_version":"6.7.5","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"protobuf","old_version":"6.33.4","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"protobuf","old_version":"6.33.4","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 4 updates in the /backend/apps/agent-zero directory: [langchain-core](https://github.com/langchain-ai/langchain), [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean), [pypdf](https://github.com/py-pdf/pypdf) and [protobuf](https://github.com/protocolbuffers/protobuf).\nBumps the pip group with 1 update in the /backend/apps/automations/scraper directory: [protobuf](https://github.com/protocolbuffers/protobuf).\n\nUpdates `langchain-core` from 0.3.81 to 1.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.2.11\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.10\u003c/p\u003e\n\u003cp\u003erelease(core): 1.2.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35144\"\u003e#35144\u003c/a\u003e)\nfix(openai): sanitize urls when counting tokens in images (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35143\"\u003e#35143\u003c/a\u003e)\nchore(core): clean up docstring mismatch and redundant logic in langchain-core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35064\"\u003e#35064\u003c/a\u003e)\nfix(core): replace bare except with Exception in tracer (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35138\"\u003e#35138\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.2.10\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.9\u003c/p\u003e\n\u003cp\u003erelease(core): 1.2.10 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35136\"\u003e#35136\u003c/a\u003e)\nchore(deps): bump the langchain-deps group across 3 directories with 40 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35129\"\u003e#35129\u003c/a\u003e)\nchore(deps): bump the langchain-deps group across 3 directories with 11 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35121\"\u003e#35121\u003c/a\u003e)\nfeat(core): add ContextOverflowError, raise in anthropic and openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35099\"\u003e#35099\u003c/a\u003e)\nfeat(model-profiles): add \u003ccode\u003etext_inputs\u003c/code\u003e and \u003ccode\u003etext_outputs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35084\"\u003e#35084\u003c/a\u003e)\nfeat(core): count tokens from tool schemas in \u003ccode\u003ecount_tokens_approximately\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35098\"\u003e#35098\u003c/a\u003e)\ndocs(core): add missing \u003ccode\u003ename\u003c/code\u003e docstring for \u003ccode\u003eRunnableSerializable\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35088\"\u003e#35088\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.2.9\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.8\u003c/p\u003e\n\u003cp\u003erelease(core): 1.2.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35025\"\u003e#35025\u003c/a\u003e)\nfix(core): adjust cap when scaling approximate token counts (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35017\"\u003e#35017\u003c/a\u003e)\nrevert: precompile hex color regex pattern at module level (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35016\"\u003e#35016\u003c/a\u003e)\nchore: add \u003ccode\u003emake type\u003c/code\u003e target (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35015\"\u003e#35015\u003c/a\u003e)\nrevert: \u0026quot;chore: add typing target in \u003ccode\u003eMakefile\u003c/code\u003e\u0026quot; (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35013\"\u003e#35013\u003c/a\u003e)\nchore: add typing target in \u003ccode\u003eMakefile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35012\"\u003e#35012\u003c/a\u003e)\nfix(core): apply cap when scaling approximate token counts (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35005\"\u003e#35005\u003c/a\u003e)\nfeat(core): allow scaling by reported usage when counting tokens approximately (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34996\"\u003e#34996\u003c/a\u003e)\ntest(core): increase \u003ccode\u003edelta_time\u003c/code\u003e for flaky test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34982\"\u003e#34982\u003c/a\u003e)\nchore: enrich \u003ccode\u003epyproject.toml\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34980\"\u003e#34980\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.2.8\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.7\u003c/p\u003e\n\u003cp\u003erelease(core): 1.2.8 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34975\"\u003e#34975\u003c/a\u003e)\ndocs(core): add examples for \u003ccode\u003epretty_repr\u003c/code\u003e, \u003ccode\u003epretty_print\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34968\"\u003e#34968\u003c/a\u003e)\ndocs(core): use proper admonition for \u003ccode\u003eget_buffer_string\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34967\"\u003e#34967\u003c/a\u003e)\ndocs: add usage examples to core classes (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34841\"\u003e#34841\u003c/a\u003e)\nchore(core): fix docstring format (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34966\"\u003e#34966\u003c/a\u003e)\nchore(deps): bump the uv group across 20 directories with 3 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34941\"\u003e#34941\u003c/a\u003e)\ndocs: add example to create_message function docstring (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34851\"\u003e#34851\u003c/a\u003e)\ndocs(core): clarify \u003ca href=\"https://github.com/tool\"\u003e\u003ccode\u003e@​tool\u003c/code\u003e\u003c/a\u003e decorator argument and return type requirements (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34860\"\u003e#34860\u003c/a\u003e)\nfix(core): fix nested mustache variable extraction and update docs (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34872\"\u003e#34872\u003c/a\u003e)\nfix(core): allow base model annotations for empty model (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34932\"\u003e#34932\u003c/a\u003e)\nchore: upgrade urllib3 to 2.6.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34940\"\u003e#34940\u003c/a\u003e)\nfix(core): prevent crash in ParrotFakeChatModel when messages list is empty (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34943\"\u003e#34943\u003c/a\u003e)\nfix(core): google docstring parsing with no arguments/reserved arguments (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34861\"\u003e#34861\u003c/a\u003e)\ntest(core): add tests for approximate token counting with multimodal messages (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34898\"\u003e#34898\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/langchain-ai/langchain/commit/524e1dab5e7c8229bd78be3c13ab38ac93a6216b\"\u003e\u003ccode\u003e524e1da\u003c/code\u003e\u003c/a\u003e release(core): 1.2.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35144\"\u003e#35144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/2b4b1dc29a833d4053deba4c2b77a3848c834565\"\u003e\u003ccode\u003e2b4b1dc\u003c/code\u003e\u003c/a\u003e fix(openai): sanitize urls when counting tokens in images (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35143\"\u003e#35143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0493b276e0be31d4f48d9d0ba5fcbce7fdded38f\"\u003e\u003ccode\u003e0493b27\u003c/code\u003e\u003c/a\u003e fix(anthropic): support effort=\u0026quot;max\u0026quot; and remove beta headers (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35141\"\u003e#35141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a5f22e7cb18a05ed057028797a7d0d79cd509b0d\"\u003e\u003ccode\u003ea5f22e7\u003c/code\u003e\u003c/a\u003e chore(core): clean up docstring mismatch and redundant logic in langchain-cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/97ee14c179f703473a6ec6ee24179ea756a5698f\"\u003e\u003ccode\u003e97ee14c\u003c/code\u003e\u003c/a\u003e fix(core): replace bare except with Exception in tracer (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35138\"\u003e#35138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/990e8076e1d61a0c8ced4d83607685bd71e23687\"\u003e\u003ccode\u003e990e807\u003c/code\u003e\u003c/a\u003e release(standard-tests): release 1.1.5 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35139\"\u003e#35139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/74dffca3d89effdb62da567d1ff6d160c9ad5354\"\u003e\u003ccode\u003e74dffca\u003c/code\u003e\u003c/a\u003e release(langchain): 1.2.10 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35137\"\u003e#35137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f41e0493336698e9a3e25e6e238786dfc8af91ba\"\u003e\u003ccode\u003ef41e049\u003c/code\u003e\u003c/a\u003e release(core): 1.2.10 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35136\"\u003e#35136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/de05838fca46eb6c2f67064da3a59f5e84818e9a\"\u003e\u003ccode\u003ede05838\u003c/code\u003e\u003c/a\u003e chore(deps): bump the langchain-deps group across 3 directories with 40 updat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d6e86aa748ae173857732ee1f7114a06ff8f4231\"\u003e\u003ccode\u003ed6e86aa\u003c/code\u003e\u003c/a\u003e chore(deps): bump the other-deps group across 3 directories with 12 updates (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.81...langchain-core==1.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.0 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.1 (2024-11-15)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved superfluous debug prints.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.0...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.6.2 to 6.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e) by \u003ca href=\"https://github.com/John-Sharp\"\u003e\u003ccode\u003e@​John-Sharp\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid divison by zero when decoding FlateDecode PNG prediction (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3641\"\u003e#3641\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.0...6.7.1\"\u003eFull Changelog\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/py-pdf/pypdf/commit/7c2bcddd8e3c64903e23398d12b60ef432ff4531\"\u003e\u003ccode\u003e7c2bcdd\u003c/code\u003e\u003c/a\u003e REL: 6.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/648c627d2657447dfb1773412af05a0a5103b98f\"\u003e\u003ccode\u003e648c627\u003c/code\u003e\u003c/a\u003e SEC: Improve the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/1aef6fbbf4f138e40e9b68e11089393ea5b64421\"\u003e\u003ccode\u003e1aef6fb\u003c/code\u003e\u003c/a\u003e DEV: Update cache key handling in CI (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/1650bc31e807d8091464c228b7eabd6fef4c6c2a\"\u003e\u003ccode\u003e1650bc3\u003c/code\u003e\u003c/a\u003e REL: 6.7.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/f309c6003746414dc7b5048c19e6d879ff2dc858\"\u003e\u003ccode\u003ef309c60\u003c/code\u003e\u003c/a\u003e SEC: Allow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/993f052748ad7ce0a16d738260f43aa0a9c06872\"\u003e\u003ccode\u003e993f052\u003c/code\u003e\u003c/a\u003e DEV: Bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3662\"\u003e#3662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/a3c996bffcb03a49e790e540e9229c8d75ff3da5\"\u003e\u003ccode\u003ea3c996b\u003c/code\u003e\u003c/a\u003e DEV: Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3663\"\u003e#3663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/37de32022e76018a48523795669e95432ba6191e\"\u003e\u003ccode\u003e37de320\u003c/code\u003e\u003c/a\u003e ROB: Deal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/05e6d3c03deaec6b16b53825465537ac9e7a1a14\"\u003e\u003ccode\u003e05e6d3c\u003c/code\u003e\u003c/a\u003e REL: 6.7.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/7a4c8246ed48d9d328fb596942271da47b6d109c\"\u003e\u003ccode\u003e7a4c824\u003c/code\u003e\u003c/a\u003e SEC: Use zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.6.2...6.7.5\"\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.4 to 6.33.5\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\u003cli\u003e[Python] 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[Python] Remove deprecated FieldDescriptor.label (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] 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\u003ca href=\"https://protobuf.dev/news/\"\u003eProtobuf News\u003c/a\u003e may include additional announcements or pre-announcements for upcoming changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/support/migration/\"\u003eMigration Guide\u003c/a\u003e may include additional guidance for breaking changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBazel\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/25168\"\u003e#25168\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBreaking change: 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\u003eFeat(bazel): wire up prebuilt protoc toolchain (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/24115\"\u003e#24115\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eproto_descriptor_set\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/23369\"\u003e#23369\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCompiler\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRuby codegen: support generation of rbs files (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/15633\"\u003e#15633\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid collision name problems between a message named \u003ccode\u003eXyz\u003c/code\u003e and a direct sibling enum named \u003ccode\u003eXyzView\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGeneralizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug with custom features outside of the \u003ccode\u003epb\u003c/code\u003e package. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix import option handling when include_imports isn't set. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent accidental stripping of \u003ccode\u003edebug_redact\u003c/code\u003e options via import option. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd EnumerateEnumValues function. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\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\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\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.4 to 6.33.5\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\u003cli\u003e[Python] 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[Python] Remove deprecated FieldDescriptor.label (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] 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\u003ca href=\"https://protobuf.dev/news/\"\u003eProtobuf News\u003c/a\u003e may include additional announcements or pre-announcements for upcoming changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/support/migration/\"\u003eMigration Guide\u003c/a\u003e may include additional guidance for breaking changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBazel\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/25168\"\u003e#25168\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBreaking change: 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\u003eFeat(bazel): wire up prebuilt protoc toolchain (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/24115\"\u003e#24115\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eproto_descriptor_set\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/23369\"\u003e#23369\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCompiler\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRuby codegen: support generation of rbs files (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/15633\"\u003e#15633\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid collision name problems between a message named \u003ccode\u003eXyz\u003c/code\u003e and a direct sibling enum named \u003ccode\u003eXyzView\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGeneralizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug with custom features outside of the \u003ccode\u003epb\u003c/code\u003e package. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix import option handling when include_imports isn't set. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent accidental stripping of \u003ccode\u003edebug_redact\u003c/code\u003e options via import option. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd EnumerateEnumValues function. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\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\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/jubenitogarcia/skincos/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/jubenitogarcia/skincos/pull/330","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubenitogarcia%2Fskincos/issues/330","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/330/packages"},{"uuid":"4018873089","node_id":"PR_kwDOIiF_387HuGcx","number":99,"state":"closed","title":"Bump lxml-html-clean from 0.4.3 to 0.4.4","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-03T21:53:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T21:48:44.000Z","updated_at":"2026-03-03T21:53:32.000Z","time_to_close":278,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ExtensityAI/symbolicai/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/ExtensityAI/symbolicai/pull/99","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExtensityAI%2Fsymbolicai/issues/99","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/99/packages"},{"uuid":"4018535405","node_id":"PR_kwDOQFGng87HtBIo","number":46,"state":"open","title":"Bump lxml-html-clean from 0.4.2 to 0.4.4 in the uv group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-03T20:22:14.000Z","updated_at":"2026-03-03T20:24:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"lxml-html-clean","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":"the uv group across 1 directory","ecosystem":"pip"},"body":"Bumps the uv group with 1 update in the / directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\n\nUpdates `lxml-html-clean` from 0.4.2 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.2...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.2\u0026new-version=0.4.4)](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 \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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/support371/Gem-Assist/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/support371/Gem-Assist/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/support371%2FGem-Assist/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"},{"uuid":"4018524366","node_id":"PR_kwDOClICWs7Hs-ye","number":417,"state":"closed","title":"build(deps): bump lxml-html-clean from 0.4.3 to 0.4.4 in /requirements","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-13T14:20:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T20:19:22.000Z","updated_at":"2026-03-13T14:20:47.000Z","time_to_close":842483,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=pip\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/openedx/edx-rbac/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/openedx/edx-rbac/pull/417","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-rbac/issues/417","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/417/packages"},{"uuid":"4018021249","node_id":"PR_kwDOD1J7zM7HrVm4","number":17,"state":"closed","title":"Bump lxml-html-clean from 0.4.3 to 0.4.4","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-03T23:25:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T18:01:44.000Z","updated_at":"2026-03-03T23:25:42.000Z","time_to_close":19430,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/markusritschel/oceanpack/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/markusritschel/oceanpack/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/markusritschel%2Foceanpack/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"4017982662","node_id":"PR_kwDONOQNsM7HrNZh","number":33,"state":"open","title":"Bump lxml-html-clean from 0.4.3 to 0.4.4","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-03-03T17:54:08.000Z","updated_at":"2026-03-03T17:54:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/front-matter/rogue-scholar/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/front-matter/rogue-scholar/pull/33","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/front-matter%2Frogue-scholar/issues/33","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/33/packages"},{"uuid":"4016728979","node_id":"PR_kwDOOMEdyc7HnFmt","number":457,"state":"closed","title":"chore(deps): bump lxml-html-clean from 0.4.3 to 0.4.4","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-05T08:20:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T13:39:09.000Z","updated_at":"2026-03-05T08:20:44.000Z","time_to_close":153694,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aignostics/python-sdk/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aignostics/python-sdk/pull/457","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aignostics%2Fpython-sdk/issues/457","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/457/packages"},{"uuid":"4016305241","node_id":"PR_kwDORUZdw87Hlsch","number":73,"state":"open","title":"chore(deps): bump lxml-html-clean from 0.4.3 to 0.4.4","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-03-03T12:03:56.000Z","updated_at":"2026-03-03T12:05:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/brettbergin/angie/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/brettbergin/angie/pull/73","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/brettbergin%2Fangie/issues/73","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/73/packages"},{"uuid":"4015875961","node_id":"PR_kwDOC3t2Ec7HkSBn","number":9508,"state":"closed","title":"chore(deps): bump lxml-html-clean from 0.4.0 to 0.4.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-03-03T10:24:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T10:22:51.000Z","updated_at":"2026-03-03T10:24:38.000Z","time_to_close":99,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.0","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.0 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.1 (2024-11-15)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved superfluous debug prints.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.0...0.4.4\"\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=lxml-html-clean\u0026package-manager=pip\u0026previous-version=0.4.0\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/HumanSignal/label-studio/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/HumanSignal/label-studio/pull/9508","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio/issues/9508","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9508/packages"}],"issue_packages":[{"old_version":"0.4.1","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-06-08T16:07:17.000Z","version_change":"0.4.1 → 0.4.4","issue":{"uuid":"4614502266","node_id":"PR_kwDOPT3jJs7j_Ev5","number":1,"state":"closed","title":"Bump the pip group across 19 directories with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-10T00:16:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-08T16:07:17.000Z","updated_at":"2026-06-10T00:16:42.000Z","time_to_close":115763,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":13,"packages":[{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"agno","old_version":"1.2.8","new_version":"2.3.24","repository_url":"https://github.com/agno-agi/agno"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pillow","old_version":"10.4.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /voice_ai_agents/ai_audio_tour_agent directory: [python-dotenv](https://github.com/theskumar/python-dotenv).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 2 updates in the /starter_ai_agents/ai_music_generator_agent directory: [agno](https://github.com/agno-agi/agno) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 2 updates in the /starter_ai_agents/ai_breakup_recovery_agent directory: [agno](https://github.com/agno-agi/agno) and [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_blog_to_podcast_agent directory: [agno](https://github.com/agno-agi/agno).\nBumps the pip group with 4 updates in the /rag_tutorials/rag_database_routing directory: [langchain-openai](https://github.com/langchain-ai/langchain), [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 1 update in the /rag_tutorials/deepseek_local_rag_agent directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 4 updates in the /rag_tutorials/corrective_rag directory: [langchain-openai](https://github.com/langchain-ai/langchain), [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 4 updates in the /rag_tutorials/agentic_rag_math_agent directory: [python-dotenv](https://github.com/theskumar/python-dotenv), [requests](https://github.com/psf/requests), [llama-index](https://github.com/run-llama/llama_index) and [dspy](https://github.com/stanfordnlp/dspy).\nBumps the pip group with 2 updates in the /mcp_ai_agents/ai_travel_planner_mcp_agent_team directory: [python-dotenv](https://github.com/theskumar/python-dotenv) and [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/multi_llm_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/local_chatgpt_with_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/llm_app_personalized_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/ai_travel_agent_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group 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/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\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/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `agno` from 1.2.8 to 2.3.24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agno-agi/agno/releases\"\u003eagno's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.24\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eImprovements:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMongoDB connection handshake now includes Agno version metadata.\u003c/strong\u003e This enables better connection identification and log analysis for users hosting MongoDB clusters with multiple applications.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCrawl4aiTools\u003c/strong\u003e: Add the \u003ccode\u003eproxy_config\u003c/code\u003e parameter, allowing further configuration of the Toolkit.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eForbid tools to operate out of base directory\u003c/strong\u003e: Update \u003ccode\u003ePythonTools\u003c/code\u003e and \u003ccode\u003eMLXTranscribeTools\u003c/code\u003e to automatically disallow operating outside of the contextual base directory. Add the \u003ccode\u003erestrict_to_base_dir\u003c/code\u003e to opt out of this feature and allow operations outside of the base directory.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMarkdownChunker:\u003c/strong\u003e Now support \u003ccode\u003esplit_on_headings\u003c/code\u003e parameter to finely control how chunks are separated.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKnowledge ContentsDB requirement:\u003c/strong\u003e Improved warning and log messages when contentsDB is not used with \u003ccode\u003eKnowledge\u003c/code\u003e . Improved filter handling for agentic search.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTeam session names\u003c/strong\u003e: Fix an issue when using \u003ccode\u003eget_session_name\u003c/code\u003e directly from Team instances.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHITL consecutive user input\u003c/strong\u003e: Fix an issue on certain HITL flows when getting user input in multiple consecutive rounds.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAgentOS Knowledge router:\u003c/strong\u003e Fix an issue where AsyncDB was not correctly routed to for content update operations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: generating session name for Team by \u003ca href=\"https://github.com/kepler\"\u003e\u003ccode\u003e@​kepler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5933\"\u003eagno-agi/agno#5933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: active_requirements not populated for subsequent HITL round by \u003ca href=\"https://github.com/mishramonalisha76\"\u003e\u003ccode\u003e@​mishramonalisha76\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5926\"\u003eagno-agi/agno#5926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[chore] Include Agno version details in MongoDB handshake by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5922\"\u003eagno-agi/agno#5922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: introduce proxy_config to the Crawl4aiTools toolkit by \u003ca href=\"https://github.com/aayush598\"\u003e\u003ccode\u003e@​aayush598\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5859\"\u003eagno-agi/agno#5859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: replace eval() with type mapping [SDK-417] by \u003ca href=\"https://github.com/harshsinha03\"\u003e\u003ccode\u003e@​harshsinha03\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5912\"\u003eagno-agi/agno#5912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add restrict_to_base_dir param to PythonTools and MLXTranscribeTools by \u003ca href=\"https://github.com/manuhortet\"\u003e\u003ccode\u003e@​manuhortet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5940\"\u003eagno-agi/agno#5940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Knowledge apatch content support by \u003ca href=\"https://github.com/willemcdejongh\"\u003e\u003ccode\u003e@​willemcdejongh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5942\"\u003eagno-agi/agno#5942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: AttributeError in get_session_name when run_input is a string by \u003ca href=\"https://github.com/pbassut\"\u003e\u003ccode\u003e@​pbassut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5869\"\u003eagno-agi/agno#5869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Knowledge logging and filtering logic updates by \u003ca href=\"https://github.com/willemcdejongh\"\u003e\u003ccode\u003e@​willemcdejongh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5927\"\u003eagno-agi/agno#5927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: v2.3.24 by \u003ca href=\"https://github.com/manuhortet\"\u003e\u003ccode\u003e@​manuhortet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5949\"\u003eagno-agi/agno#5949\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/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5922\"\u003eagno-agi/agno#5922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pbassut\"\u003e\u003ccode\u003e@​pbassut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5869\"\u003eagno-agi/agno#5869\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/agno-agi/agno/compare/v2.3.23...v2.3.24\"\u003ehttps://github.com/agno-agi/agno/compare/v2.3.23...v2.3.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.3.23\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eImprovements:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAsync Tool Support\u003c/strong\u003e: Toolkit now supports async tool functions, which are automatically selected when the agent runs in an async context.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eheader_provider\u003c/code\u003e\u003c/strong\u003e : Fix for check on \u003ccode\u003eMCPTools\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTeam Run Cancellation\u003c/strong\u003e: Fixed issue on async team runs where cancellation was not handled correctly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: handle foreign key ref for custom traces table name by \u003ca href=\"https://github.com/kausmeows\"\u003e\u003ccode\u003e@​kausmeows\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5888\"\u003eagno-agi/agno#5888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix] Add response_usage propagation to model response by \u003ca href=\"https://github.com/tyook\"\u003e\u003ccode\u003e@​tyook\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/agno-agi/agno/pull/5872\"\u003eagno-agi/agno#5872\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/agno-agi/agno/commit/b50239acb79a11d6b3dd359b5b0dc75600fc303e\"\u003e\u003ccode\u003eb50239a\u003c/code\u003e\u003c/a\u003e chore: v2.3.24 (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5949\"\u003e#5949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/632737c3a4c01178bc5fa055405a10ab18866189\"\u003e\u003ccode\u003e632737c\u003c/code\u003e\u003c/a\u003e chore: Knowledge logging and filtering logic updates (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5927\"\u003e#5927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/67a33eb5149671eb701498d83e6c4e4aa486aec2\"\u003e\u003ccode\u003e67a33eb\u003c/code\u003e\u003c/a\u003e fix: AttributeError in get_session_name when run_input is a string (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5869\"\u003e#5869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/bb274f4186748370beb96f46956494ec5b7420f7\"\u003e\u003ccode\u003ebb274f4\u003c/code\u003e\u003c/a\u003e fix: Knowledge apatch content support (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5942\"\u003e#5942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/710d7e7f846f93b7a3eadfd3e77075428c39e803\"\u003e\u003ccode\u003e710d7e7\u003c/code\u003e\u003c/a\u003e feat: add restrict_to_base_dir param to PythonTools and MLXTranscribeTools (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/cbf675521d4d2281925a051784a3b94172e56416\"\u003e\u003ccode\u003ecbf6755\u003c/code\u003e\u003c/a\u003e fix: replace eval() with type mapping [SDK-417] (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5912\"\u003e#5912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/ea35f13518be03ef38a41a64665fdc270b9d12d3\"\u003e\u003ccode\u003eea35f13\u003c/code\u003e\u003c/a\u003e fix: introduce proxy_config to the Crawl4aiTools toolkit (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5859\"\u003e#5859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/5bb72cdc60f0b5c6a51af373ae0aad8a0726b06e\"\u003e\u003ccode\u003e5bb72cd\u003c/code\u003e\u003c/a\u003e [chore] Include Agno version details in MongoDB handshake (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5922\"\u003e#5922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/6a67be81e7371d9537b50ea316d0697d856a6461\"\u003e\u003ccode\u003e6a67be8\u003c/code\u003e\u003c/a\u003e fix: HITL consecutive rounds of user input (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5926\"\u003e#5926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agno-agi/agno/commit/f313ad89926de59ce9564a4f0cc6186602c150fc\"\u003e\u003ccode\u003ef313ad8\u003c/code\u003e\u003c/a\u003e fix: generating session name for Team (\u003ca href=\"https://redirect.github.com/agno-agi/agno/issues/5933\"\u003e#5933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agno-agi/agno/compare/v1.2.8...v2.3.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.0.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.4.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https...\n\n_Description has been truncated_","html_url":"https://github.com/lisaross/awesome-llm-apps/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lisaross%2Fawesome-llm-apps/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"}},{"old_version":"0.4.1","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-05-30T09:49:26.000Z","version_change":"0.4.1 → 0.4.4","issue":{"uuid":"4554031397","node_id":"PR_kwDOQTk4Hc7g7PKL","number":1,"state":"closed","title":"chore(deps): bump the pip group across 18 directories with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":"2026-06-03T22:51:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-30T09:49:26.000Z","updated_at":"2026-06-03T22:51:24.000Z","time_to_close":392516,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":13,"packages":[{"name":"langchain-openai","old_version":"1.0.2","new_version":"1.1.14","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-text-splitters","old_version":"1.0.0","new_version":"1.1.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"mem0ai","old_version":"0.1.29","new_version":"2.0.0b2","repository_url":"https://github.com/mem0ai/mem0"},{"name":"Pillow","old_version":"10.x","new_version":"12.2.0"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 2 updates in the /voice_ai_agents/voice_rag_openaisdk directory: [langchain-openai](https://github.com/langchain-ai/langchain) and [langchain-text-splitters](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /voice_ai_agents/ai_audio_tour_agent directory: [python-dotenv](https://github.com/theskumar/python-dotenv).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_music_generator_agent directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /starter_ai_agents/ai_breakup_recovery_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 4 updates in the /rag_tutorials/rag_database_routing directory: [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-openai](https://github.com/langchain-ai/langchain), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 1 update in the /rag_tutorials/deepseek_local_rag_agent directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 4 updates in the /rag_tutorials/corrective_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community), [langchain-openai](https://github.com/langchain-ai/langchain), [langchain-core](https://github.com/langchain-ai/langchain) and [langgraph](https://github.com/langchain-ai/langgraph).\nBumps the pip group with 4 updates in the /rag_tutorials/agentic_rag_math_agent directory: [python-dotenv](https://github.com/theskumar/python-dotenv), [requests](https://github.com/psf/requests), [llama-index](https://github.com/run-llama/llama_index) and [dspy](https://github.com/stanfordnlp/dspy).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/multi_llm_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/local_chatgpt_with_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/llm_app_personalized_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\nBumps the pip group with 1 update in the /advanced_llm_apps/llm_apps_with_memory_tutorials/ai_travel_agent_memory directory: [mem0ai](https://github.com/mem0ai/mem0).\n\nUpdates `langchain-openai` from 1.0.2 to 1.1.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-openai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-openai==1.1.14\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.1.13\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.1.14 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36820\"\u003e#36820\u003c/a\u003e)\nfix(openai): use SSRF-safe transport for image token counting (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36819\"\u003e#36819\u003c/a\u003e)\nchore(deps): bump pytest to \u003ccode\u003e9.0.3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36801\"\u003e#36801\u003c/a\u003e)\nchore: bump langsmith from 0.6.3 to 0.7.31 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36795\"\u003e#36795\u003c/a\u003e)\nchore: bump pillow from 12.1.1 to 12.2.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36777\"\u003e#36777\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.1.13\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.1.12\u003c/p\u003e\n\u003cp\u003erelease(openai): 1.1.13 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36729\"\u003e#36729\u003c/a\u003e)\nfix(openai): handle content blocks without type key in responses api conversion (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36725\"\u003e#36725\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36539\"\u003e#36539\u003c/a\u003e)\nchore(openai): fix broken vcr cassette playback and add ci guard (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36502\"\u003e#36502\u003c/a\u003e)\nfix(openai,groq,openrouter): use is-not-None checks in usage metadata token extraction (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36500\"\u003e#36500\u003c/a\u003e)\nfix(core): fixed typos in the documentation (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36459\"\u003e#36459\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36455\"\u003e#36455\u003c/a\u003e)\nfeat(core): impute placeholder filenames for OpenAI file inputs (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36433\"\u003e#36433\u003c/a\u003e)\nchore: pygments\u0026gt;=2.20.0 across all packages (CVE-2026-4539) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36385\"\u003e#36385\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36368\"\u003e#36368\u003c/a\u003e)\nfix(openai): update computer call test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36352\"\u003e#36352\u003c/a\u003e)\nfix(openai): let user-provided User-Agent override the Azure default (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35523\"\u003e#35523\u003c/a\u003e)\nchore: bump requests from 2.32.5 to 2.33.0 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36248\"\u003e#36248\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.1.12\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.1.11\u003c/p\u003e\n\u003cp\u003efix(openai): bump min core version (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36180\"\u003e#36180\u003c/a\u003e)\nrelease(openai): 1.1.12 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36178\"\u003e#36178\u003c/a\u003e)\nfix(core,model-profiles): add missing \u003ccode\u003eModelProfile\u003c/code\u003e fields, warn on schema drift (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36129\"\u003e#36129\u003c/a\u003e)\nfix(openai): support phase parameter (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36161\"\u003e#36161\u003c/a\u003e)\nfix(openai): preserve namespace field in streaming function_call chunks (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36108\"\u003e#36108\u003c/a\u003e)\nci: suppress pytest streaming output in CI (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36092\"\u003e#36092\u003c/a\u003e)\nci: avoid unnecessary dep installs in lint targets (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36046\"\u003e#36046\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36039\"\u003e#36039\u003c/a\u003e)\nchore: bump orjson from 3.11.5 to 3.11.6 in /libs/partners/openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35860\"\u003e#35860\u003c/a\u003e)\nfix(openai): add type: message to Responses API input items (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35693\"\u003e#35693\u003c/a\u003e)\nperf(.github): set a timeout on get min versions HTTP calls (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35851\"\u003e#35851\u003c/a\u003e)\nfeat(model-profiles): new fields + \u003ccode\u003eMakefile\u003c/code\u003e target (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35788\"\u003e#35788\u003c/a\u003e)\nfix(openai): close PIL Image handles in token counting to prevent fd leak (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35742\"\u003e#35742\u003c/a\u003e)\nfix(openai): typo (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35763\"\u003e#35763\u003c/a\u003e)\nchore(model-profiles): refresh model profile data (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35754\"\u003e#35754\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-openai==1.1.11\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-openai==1.1.10\u003c/p\u003e\n\u003cp\u003efix(openai): bump min core version (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35705\"\u003e#35705\u003c/a\u003e)\nrelease(openai): 1.1.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35703\"\u003e#35703\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/langchain-ai/langchain/commit/b7447c6969fc928ec3f29c200e2e56c0a46c4c77\"\u003e\u003ccode\u003eb7447c6\u003c/code\u003e\u003c/a\u003e fix(infra): skip serdes tests in min-version release step (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36818\"\u003e#36818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/41c0cc58b0dac82000d24715f7a4b44dc8b01fd3\"\u003e\u003ccode\u003e41c0cc5\u003c/code\u003e\u003c/a\u003e release(openai): 1.1.14 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36820\"\u003e#36820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0516156ef98f5001129f6d47bc8682d6536d58fb\"\u003e\u003ccode\u003e0516156\u003c/code\u003e\u003c/a\u003e fix(openai): use SSRF-safe transport for image token counting (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36819\"\u003e#36819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/338aa8131a8124e7aa1e042616ccd2366ff9f699\"\u003e\u003ccode\u003e338aa81\u003c/code\u003e\u003c/a\u003e fix(core): restore cloud metadata IPs and link-local range in SSRF policy (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/51e954877efd2d2c3c5bf09364dcfec8794eadb0\"\u003e\u003ccode\u003e51e9548\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36797\"\u003e#36797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e85c418cfa559d4a794ddc6db92c6febab44651c\"\u003e\u003ccode\u003ee85c418\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/model-profiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36798\"\u003e#36798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/789126e6c78ad74664bea26228dda6e72e135dce\"\u003e\u003ccode\u003e789126e\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/standard-tests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36799\"\u003e#36799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/937b3eb3827551d17ee4736f9acc4aa57e88c716\"\u003e\u003ccode\u003e937b3eb\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/langchain_v1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36800\"\u003e#36800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a06c205738cf5953e28c37287ddb1559d67c01f6\"\u003e\u003ccode\u003ea06c205\u003c/code\u003e\u003c/a\u003e ci(infra): validate issue checkboxes by section (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36811\"\u003e#36811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/aa33b06deb0d65489ce254b48a8aaf8a86304c18\"\u003e\u003ccode\u003eaa33b06\u003c/code\u003e\u003c/a\u003e fix(langchain-classic): suppress mypy errors in compat code (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36806\"\u003e#36806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-openai==1.0.2...langchain-openai==1.1.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-text-splitters` from 1.0.0 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-text-splitters's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-text-splitters==1.1.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-text-splitters==1.1.1\u003c/p\u003e\n\u003cp\u003erelease(text-splitters): 1.1.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36822\"\u003e#36822\u003c/a\u003e)\nfix(text-splitters): deprecate and use SSRF-safe transport in split_text_from_url (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36821\"\u003e#36821\u003c/a\u003e)\nchore: bump langsmith from 0.6.3 to 0.7.31 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36797\"\u003e#36797\u003c/a\u003e)\nchore(deps): bump pytest to \u003ccode\u003e9.0.3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36801\"\u003e#36801\u003c/a\u003e)\nchore: bump pytest from 9.0.2 to 9.0.3 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36714\"\u003e#36714\u003c/a\u003e)\nchore: add comment explaining \u003ccode\u003epygments\u0026gt;=2.20.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36570\"\u003e#36570\u003c/a\u003e)\nrelease(core): 1.2.26 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36511\"\u003e#36511\u003c/a\u003e)\nchore: pygments\u0026gt;=2.20.0 across all packages (CVE-2026-4539) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36385\"\u003e#36385\u003c/a\u003e)\nfix(text-splitters): prevent silent data loss for empty dict values in RecursiveJsonSplitter (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35079\"\u003e#35079\u003c/a\u003e)\nfeat(text-splitters): support spacy tests with Python 3.14 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36198\"\u003e#36198\u003c/a\u003e)\nfix(infra): correct lint_diff relative paths in package makefiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36333\"\u003e#36333\u003c/a\u003e)\nchore: bump requests from 2.32.5 to 2.33.0 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36238\"\u003e#36238\u003c/a\u003e)\nchore: bump nltk from 3.9.3 to 3.9.4 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36237\"\u003e#36237\u003c/a\u003e)\nchore(partners): bump \u003ccode\u003elangchain-core\u003c/code\u003e min to \u003ccode\u003e1.2.21\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36183\"\u003e#36183\u003c/a\u003e)\nchore(text-splitters): bump nltk in lock file (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36112\"\u003e#36112\u003c/a\u003e)\nci: suppress pytest streaming output in CI (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36092\"\u003e#36092\u003c/a\u003e)\nchore(text-splitters): speed up ci (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36050\"\u003e#36050\u003c/a\u003e)\nci: avoid unnecessary dep installs in lint targets (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36046\"\u003e#36046\u003c/a\u003e)\nchore: bump orjson from 3.11.5 to 3.11.6 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35856\"\u003e#35856\u003c/a\u003e)\nchore: bump locks, lint (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35985\"\u003e#35985\u003c/a\u003e)\nperf(.github): set a timeout on get min versions HTTP calls (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35851\"\u003e#35851\u003c/a\u003e)\nchore: bump tornado from 6.5.2 to 6.5.5 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35774\"\u003e#35774\u003c/a\u003e)\nchore: bump the minor-and-patch group across 3 directories with 3 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35589\"\u003e#35589\u003c/a\u003e)\nchore: bump the other-deps group across 3 directories with 2 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35512\"\u003e#35512\u003c/a\u003e)\nchore: bump nltk from 3.9.2 to 3.9.3 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35449\"\u003e#35449\u003c/a\u003e)\nchore: bump the other-deps group across 3 directories with 2 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35407\"\u003e#35407\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-text-splitters==1.1.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-text-splitters==1.1.0\u003c/p\u003e\n\u003cp\u003erelease(text-splitters): 1.1.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35318\"\u003e#35318\u003c/a\u003e)\nfix(text-splitters): prevent JSFrameworkTextSplitter from mutating self._separators on each split_text() call (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35316\"\u003e#35316\u003c/a\u003e)\nchore: bump transformers from 5.1.0 to 5.2.0 in /libs/text-splitters in the other-deps group across 1 directory (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35279\"\u003e#35279\u003c/a\u003e)\nchore: bump the other-deps group across 3 directories with 2 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35255\"\u003e#35255\u003c/a\u003e)\nstyle: bump ruff version to 0.15 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35042\"\u003e#35042\u003c/a\u003e)\nfix: Server-Side Request Forgery (SSRF) in HTMLHeaderTextSplitter.split_text_from_url (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35196\"\u003e#35196\u003c/a\u003e)\nfeat(text-splitters): add model_kwargs to SentenceTransformersTokenTextSplitter (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35113\"\u003e#35113\u003c/a\u003e)\nchore(deps): bump langsmith from 0.4.31 to 0.6.3 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35162\"\u003e#35162\u003c/a\u003e)\nchore(deps): bump the other-deps group across 3 directories with 12 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35127\"\u003e#35127\u003c/a\u003e)\nchore(deps): bump the other-deps group across 3 directories with 8 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35120\"\u003e#35120\u003c/a\u003e)\nchore: add \u003ccode\u003emake type\u003c/code\u003e target (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35015\"\u003e#35015\u003c/a\u003e)\nrevert: \u0026quot;chore: add typing target in \u003ccode\u003eMakefile\u003c/code\u003e\u0026quot; (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35013\"\u003e#35013\u003c/a\u003e)\nchore: add typing target in \u003ccode\u003eMakefile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35012\"\u003e#35012\u003c/a\u003e)\nfix(text-splitters): reverse preserved elements iterator in \u003ccode\u003eHTMLSemanticPreservingSplitter\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34080\"\u003e#34080\u003c/a\u003e)\nchore: enrich \u003ccode\u003epyproject.toml\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34980\"\u003e#34980\u003c/a\u003e)\nchore(deps): bump the uv group across 20 directories with 3 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34941\"\u003e#34941\u003c/a\u003e)\nchore: upgrade urllib3 to 2.6.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34940\"\u003e#34940\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/langchain-ai/langchain/commit/58c4e5bbdd9d18d7fe7ec83b5a05477d06fe2a8e\"\u003e\u003ccode\u003e58c4e5b\u003c/code\u003e\u003c/a\u003e release(text-splitters): 1.1.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36822\"\u003e#36822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/c289bf10e940e960a132d7403482283114063063\"\u003e\u003ccode\u003ec289bf1\u003c/code\u003e\u003c/a\u003e fix(text-splitters): deprecate and use SSRF-safe transport in split_text_from...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/b7447c6969fc928ec3f29c200e2e56c0a46c4c77\"\u003e\u003ccode\u003eb7447c6\u003c/code\u003e\u003c/a\u003e fix(infra): skip serdes tests in min-version release step (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36818\"\u003e#36818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/41c0cc58b0dac82000d24715f7a4b44dc8b01fd3\"\u003e\u003ccode\u003e41c0cc5\u003c/code\u003e\u003c/a\u003e release(openai): 1.1.14 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36820\"\u003e#36820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0516156ef98f5001129f6d47bc8682d6536d58fb\"\u003e\u003ccode\u003e0516156\u003c/code\u003e\u003c/a\u003e fix(openai): use SSRF-safe transport for image token counting (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36819\"\u003e#36819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/338aa8131a8124e7aa1e042616ccd2366ff9f699\"\u003e\u003ccode\u003e338aa81\u003c/code\u003e\u003c/a\u003e fix(core): restore cloud metadata IPs and link-local range in SSRF policy (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/51e954877efd2d2c3c5bf09364dcfec8794eadb0\"\u003e\u003ccode\u003e51e9548\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/text-splitters (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36797\"\u003e#36797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/e85c418cfa559d4a794ddc6db92c6febab44651c\"\u003e\u003ccode\u003ee85c418\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/model-profiles (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36798\"\u003e#36798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/789126e6c78ad74664bea26228dda6e72e135dce\"\u003e\u003ccode\u003e789126e\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/standard-tests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36799\"\u003e#36799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/937b3eb3827551d17ee4736f9acc4aa57e88c716\"\u003e\u003ccode\u003e937b3eb\u003c/code\u003e\u003c/a\u003e chore: bump langsmith from 0.6.3 to 0.7.31 in /libs/langchain_v1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36800\"\u003e#36800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-text-splitters==1.0.0...langchain-text-splitters==1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group 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/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\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/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd124...\n\n_Description has been truncated_\n\n\u003c!-- This is an auto-generated description by cubic. --\u003e\n---\n## Summary by cubic\nUpgrade dependencies across 18 directories to align with the latest LangChain stack and apply security fixes. This improves stability and security, but includes a few breaking changes that need small code updates.\n\n- **Dependencies**\n  - LangChain stack: `langchain` 1.3.x, `langchain-core` 1.3.3, `langchain-community` 0.3.27–0.4.2, `langchain-openai` 1.1.14, `langchain-text-splitters` 1.1.2, `langgraph` 1.0.10rc1.\n  - Security updates: `requests` (varies by app, up to 2.33.0), `lxml_html_clean` 0.4.4, `pillow` 12.2.0.\n  - Env/tools: `python-dotenv` 1.2.2, `browser-use` 0.1.45.\n  - RAG/agents: `llama-index` 0.13.0, `dspy` 3.1.0b1.\n  - Memory tutorials: `mem0ai` 2.0.0b2.\n\n- **Migration**\n  - Python versions: `requests` and `python-dotenv` drop Python 3.9. Ensure runtimes use 3.10+.\n  - `browser-use`: replace `BrowserWindowContextSize(...)` with flat `BrowserContextConfig(window_width=..., window_height=...)`.\n  - `python-dotenv`: symlink behavior changed. If you relied on it, pass `follow_symlinks=True` to `set_key`/`unset_key`.\n  - LangChain/LangGraph: 1.x/1.0 RC may require small import or graph API tweaks. Run affected RAG tutorials and fix any import/runtime errors.\n  - Memory tutorials: `mem0ai` 2.x beta has API changes. Validate memory flows and adjust calls as needed.\n\n\u003csup\u003eWritten for commit 01b62dfdea89904e6a4105d19d53c6ff082f91cc. Summary will update on new commits.\u003c/sup\u003e\n\n\u003ca href=\"https://cubic.dev/pr/EmilynnJ/awesome-llm-apps/pull/1?utm_source=github\" target=\"_blank\" rel=\"noopener noreferrer\" data-no-image-dialog=\"true\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://cubic.dev/buttons/review-in-cubic-dark.svg\"\u003e\u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://cubic.dev/buttons/review-in-cubic-light.svg\"\u003e\u003cimg alt=\"Review in cubic\" src=\"https://cubic.dev/buttons/review-in-cubic-dark.svg\"\u003e\u003c/picture\u003e\u003c/a\u003e\n\n\u003c!-- End of auto-generated description by cubic. --\u003e\n\n\n\n\u003c!-- Macroscope's pull request summary starts here --\u003e\n\u003c!-- Macroscope will only edit the content between these invisible markers, and the markers themselves will not be visible in the GitHub rendered markdown. --\u003e\n\u003c!-- If you delete either of the start / end markers from your PR's description, Macroscope will append its summary at the bottom of the description. --\u003e\n\u003e [!NOTE]\n\u003e ### Bump pip dependencies across 18 directories with 13 package updates\n\u003e - Updates `mem0ai` from 0.1.29 to 2.0.0b2 across four memory tutorial projects.\n\u003e - Updates `langchain`, `langgraph`, `langchain-openai`, `langchain-community`, and `langchain-core` to v1.x in several RAG tutorials (e.g. `corrective_rag`, `rag_agent_cohere`, `rag_database_routing`, `voice_rag_openaisdk`).\n\u003e - Updates `Pillow` from 10.x to 12.2.0 in three starter agents, `dspy` from 2.6.18 to 3.1.0b1 and `llama-index` from 0.12.33 to 0.13.0 in `agentic_rag_math_agent`, and `browser-use` from 0.1.26 to 0.1.45 in the meme generator agent.\n\u003e - Risk: `mem0ai` 2.0.0b2 and `dspy` 3.1.0b1 are pre-release versions; `langchain`/`langgraph` major version bumps may introduce breaking API changes.\n\u003e\n\u003e \u003c!-- Macroscope's review summary starts here --\u003e\n\u003e\n\u003e \u003csup\u003e\u003ca href=\"https://app.macroscope.com\"\u003eMacroscope\u003c/a\u003e summarized 01b62df.\u003c/sup\u003e\n\u003e \u003c!-- Macroscope's review summary ends here --\u003e\n\u003e\n\u003c!-- macroscope-ui-refresh --\u003e\n\u003c!-- Macroscope's pull request summary ends here --\u003e","html_url":"https://github.com/EmilynnJ/awesome-llm-apps/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmilynnJ%2Fawesome-llm-apps/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"}},{"old_version":"0.4.3","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-05-26T02:24:03.000Z","version_change":"0.4.3 → 0.4.4","issue":{"uuid":"4520823235","node_id":"PR_kwDOPsndK87fPIBg","number":4,"state":"open","title":"chore(deps): bump the uv group across 1 directory with 9 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-26T02:24:03.000Z","updated_at":"2026-05-26T02:24:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv","update_count":9,"packages":[{"name":"pillow","old_version":"12.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"protobuf","old_version":"6.33.0","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pypdf","old_version":"6.1.3","new_version":"6.10.2","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"cryptography","old_version":"46.0.3","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"idna","old_version":"3.11","new_version":"3.15","repository_url":"https://github.com/kjd/idna"},{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv group with 9 updates in the /docreader directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.0.0` | `12.2.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.0` | `6.33.5` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.1.3` | `6.10.2` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.3` | `46.0.7` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.15` |\n| [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) | `0.4.3` | `0.4.4` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.7.0` |\n\n\nUpdates `pillow` from 12.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.2.0\"\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.0 to 6.33.5\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\u003cli\u003e[Python] 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[Python] Remove deprecated FieldDescriptor.label (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] 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\u003ca href=\"https://protobuf.dev/news/\"\u003eProtobuf News\u003c/a\u003e may include additional announcements or pre-announcements for upcoming changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/support/migration/\"\u003eMigration Guide\u003c/a\u003e may include additional guidance for breaking changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBazel\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/25168\"\u003e#25168\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBreaking change: 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\u003eFeat(bazel): wire up prebuilt protoc toolchain (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/24115\"\u003e#24115\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eproto_descriptor_set\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/23369\"\u003e#23369\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCompiler\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRuby codegen: support generation of rbs files (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/15633\"\u003e#15633\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid collision name problems between a message named \u003ccode\u003eXyz\u003c/code\u003e and a direct sibling enum named \u003ccode\u003eXyzView\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGeneralizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug with custom features outside of the \u003ccode\u003epb\u003c/code\u003e package. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix import option handling when include_imports isn't set. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent accidental stripping of \u003ccode\u003edebug_redact\u003c/code\u003e options via import option. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd EnumerateEnumValues function. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\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\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.1.3 to 6.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.10.2, 2026-04-15\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.1, 2026-04-14\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse new parameter names for compress_identical_objects by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.0, 2026-04-10\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisallow custom XML entity declarations for XMP metadata (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3724\"\u003e#3724\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip MD5 key derivation for AES-256 encrypted PDFs (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3694\"\u003e#3694\u003c/a\u003e) by \u003ca href=\"https://github.com/Ygnas\"\u003e\u003ccode\u003e@​Ygnas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse remove_orphans in compress_identical_objects (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3310\"\u003e#3310\u003c/a\u003e) by \u003ca href=\"https://github.com/j-t-1\"\u003e\u003ccode\u003e@​j-t-1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PdfReadError when xref table contains comments before trailer (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3710\"\u003e#3710\u003c/a\u003e) by \u003ca href=\"https://github.com/rassie\"\u003e\u003ccode\u003e@​rassie\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly verify AES padding during decryption (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3699\"\u003e#3699\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stale object cache from non-authoritative object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3698\"\u003e#3698\u003c/a\u003e) by \u003ca href=\"https://github.com/astahlman\"\u003e\u003ccode\u003e@​astahlman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extract_links pairing when annotations include non-links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3687\"\u003e#3687\u003c/a\u003e) by \u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI policy (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3717\"\u003e#3717\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.9.2, 2026-03-23\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid infinite loop in read_from_stream for broken files (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3693\"\u003e#3693\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.10.2, 2026-04-15\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.1, 2026-04-14\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse new parameter names for compress_identical_objects\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.0, 2026-04-10\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisallow custom XML entity declarations for XMP metadata (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3724\"\u003e#3724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip MD5 key derivation for AES-256 encrypted PDFs (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3694\"\u003e#3694\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse remove_orphans in compress_identical_objects (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3310\"\u003e#3310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PdfReadError when xref table contains comments before trailer (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3710\"\u003e#3710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly verify AES padding during decryption (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stale object cache from non-authoritative object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix extract_links pairing when annotations include non-links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3687\"\u003e#3687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI policy (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3717\"\u003e#3717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.9.2, 2026-03-23\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid infinite loop in read_from_stream for broken files (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve UnboundLocalError for xobjs in _get_image (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3684\"\u003e#3684\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.1...6.9.2\"\u003eFull Changelog\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/py-pdf/pypdf/commit/c476b4f293c8ef4cac07dfb755e5582d838fcdc0\"\u003e\u003ccode\u003ec476b4f\u003c/code\u003e\u003c/a\u003e REL: 6.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/c50a0104cf083356f7c7f5d61410466a57f5c88a\"\u003e\u003ccode\u003ec50a010\u003c/code\u003e\u003c/a\u003e SEC: Do not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/ac734dab4eef92bcce50d503949b4d9887d89f11\"\u003e\u003ccode\u003eac734da\u003c/code\u003e\u003c/a\u003e SEC: Introduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/b49e7eb45422c19b68ac59c51b7699409e74d44e\"\u003e\u003ccode\u003eb49e7eb\u003c/code\u003e\u003c/a\u003e REL: 6.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/62338e9d36419cf193ccec7331784f45df1d70b3\"\u003e\u003ccode\u003e62338e9\u003c/code\u003e\u003c/a\u003e SEC: Limit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/5dcc0aebaa2c732028ea8def2eb9982e324b7c11\"\u003e\u003ccode\u003e5dcc0ae\u003c/code\u003e\u003c/a\u003e DEV: Update pytest-benchmark to 5.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/b42e4aa98ae5c7fdd02558d165d39fe639fdf97d\"\u003e\u003ccode\u003eb42e4aa\u003c/code\u003e\u003c/a\u003e DEV: Update pinned pillow and pytest where possible (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3732\"\u003e#3732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/717446b1218a3eb236cb47d1bae2b68451ccb6c0\"\u003e\u003ccode\u003e717446b\u003c/code\u003e\u003c/a\u003e ROB: Consider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/9e461d361b9004da68fc8e6acc4308cce68aa304\"\u003e\u003ccode\u003e9e461d3\u003c/code\u003e\u003c/a\u003e DEV: Bump softprops/action-gh-release from 2 to 3 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3730\"\u003e#3730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/500d09d92fa80a6f1fcdfa46656893efd05e91ff\"\u003e\u003ccode\u003e500d09d\u003c/code\u003e\u003c/a\u003e TST: Update \u003ccode\u003etest_embedded_file__basic\u003c/code\u003e to use \u003ccode\u003etmp_path\u003c/code\u003e fixture (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.1.3...6.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.3 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\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/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.3...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.11 to 3.15\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.15 (2026-05-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnforce DNS-length cap on individual labels early in \u003ccode\u003echeck_label\u003c/code\u003e,\nshort-circuiting contextual-rule processing for oversized input\nwhile staying compatible with UTS 46 usage.\u003c/li\u003e\n\u003cli\u003eTidy core helpers: hoist bidi category sets to module-level\nfrozensets (avoiding per-codepoint list construction), simplify\nlength checks, and reuse the shared \u003ccode\u003e_unicode_dots_re\u003c/code\u003e from\n\u003ccode\u003eidna.core\u003c/code\u003e in the codec module.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eraise ... from err\u003c/code\u003e for proper exception chaining and\nswitch internal string formatting to f-strings.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eflit_core\u003c/code\u003e 4.x in the build backend.\u003c/li\u003e\n\u003cli\u003eExpand the ruff lint set (flake8-bugbear, flake8-simplify,\npyupgrade, perflint) and apply the surfaced fixes; pin lint CI\nto Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration for GitHub Actions.\u003c/li\u003e\n\u003cli\u003eConvert README and HISTORY from reStructuredText to Markdown.\u003c/li\u003e\n\u003cli\u003eReference CVE-2026-45409 for the 3.14 advisory in place of the\ninitial GHSA identifier.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Felix Yan, Stan Ulbrych, and metsw24-max for\ncontributions to this release.\u003c/p\u003e\n\u003ch2\u003e3.14 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved opportunity to process long inputs into quadratic\ntime by rejecting oversize inputs up-front. Closes a bypass\nof the CVE-2024-3651 mitigation. [CVE-2026-45409]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Stan Ulbrych for reporting the issue.\u003c/p\u003e\n\u003ch2\u003e3.13 (2026-04-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.12 (2026-04-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\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/kjd/idna/commit/af30a092e158181d0b35ac66dfa813788126bdd8\"\u003e\u003ccode\u003eaf30a09\u003c/code\u003e\u003c/a\u003e Release 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/30314d4628744ca14cf2b5820564e5127a9f86f2\"\u003e\u003ccode\u003e30314d4\u003c/code\u003e\u003c/a\u003e Pre-release 3.15rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05d4b219aa9eddc47371fcbd2000f0301016f3e9\"\u003e\u003ccode\u003e05d4b21\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/237\"\u003e#237\u003c/a\u003e from kjd/convert-docs-to-markdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/2987fdba1962bbb2358399e0084ba062b98a0bee\"\u003e\u003ccode\u003e2987fdb\u003c/code\u003e\u003c/a\u003e Convert README and HISTORY from reStructuredText to Markdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/59fa8002d514bf4a5ce7b58f67b9ec587d53fa9c\"\u003e\u003ccode\u003e59fa800\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/236\"\u003e#236\u003c/a\u003e from kjd/dependabot/github_actions/actions-f3e34333ea\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/def69834ced5d4b3c50439d8b99c4c856ec19ca2\"\u003e\u003ccode\u003edef6983\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dependabot/github_actions/actions-f3e34333ea\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/bbd8004a797185d8c56bb555cd5c88fde05e0631\"\u003e\u003ccode\u003ebbd8004\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/234\"\u003e#234\u003c/a\u003e from StanFromIreland/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/edd07c05024344a6ccb517414ccb36683aee99fc\"\u003e\u003ccode\u003eedd07c0\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.35.2 to 4.35.2 in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5557db030c11bdec50d62aa5f631d705d33ba123\"\u003e\u003ccode\u003e5557db0\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/f11746cf4981d25123ef7830d3ee60f07de8ae3d\"\u003e\u003ccode\u003ef11746c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/235\"\u003e#235\u003c/a\u003e from StanFromIreland/patch-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.15\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.3 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group 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/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\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/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eAddressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be marginal.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDecompression-bomb safeguards of the streaming API were bypassed:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eWhen \u003ccode\u003eHTTPResponse.drain_conn()\u003c/code\u003e was called after the response had been read and decompressed partially. (Reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDuring the second \u003ccode\u003eHTTPResponse.read(amt=N)\u003c/code\u003e or \u003ccode\u003eHTTPResponse.stream(amt=N)\u003c/code\u003e call when the response was decompressed using the official \u003ca href=\"https://pypi.org/project/brotli/\"\u003eBrotli\u003c/a\u003e library. (Reported by \u003ca href=\"https://github.com/kimkou2024\"\u003e\u003ccode\u003e@​kimkou2024\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eSee GHSA-mf9v-mfxr-j63j for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHTTP pools created using \u003ccode\u003eProxyManager.connection_from_url\u003c/code\u003e did not strip sensitive headers specified in \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e when redirecting to a different host. (GHSA-qccp-gfcp-xxvc reported by \u003ca href=\"https://github.com/christos-spearbit\"\u003e\u003ccode\u003e@​christos-spearbit\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUsed \u003ccode\u003eFutureWarning\u003c/code\u003e instead of \u003ccode\u003eDeprecationWarning\u003c/code\u003e for better visibility of existing deprecation notices. Rescheduled the removal of deprecated features to version 3.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3763\"\u003eurllib3/urllib3#3763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved support for end-of-life Python 3.9. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3720\"\u003eurllib3/urllib3#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved support for end-of-life PyPy3.10. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/4979\"\u003eurllib3/urllib3#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum supported pyOpenSSL version to 19.0.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3777\"\u003eurllib3/urllib3#3777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eHTTPResponse.read(amt=None)\u003c/code\u003e was ignoring decompressed data buffered from previous partial reads. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3636\"\u003eurllib3/urllib3#3636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eHTTPResponse.read()\u003c/code\u003e could cache only part of the response after a partial read when \u003ccode\u003ecache_content=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/4967\"\u003eurllib3/urllib3#4967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.stream()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to handle \u003ccode\u003eamt=0\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3793\"\u003eurllib3/urllib3#3793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003e_TYPE_BODY\u003c/code\u003e type alias to include missing \u003ccode\u003eIterable[str]\u003c/code\u003e, matching the documented and runtime behavior of chunked request bodies. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3798\"\u003eurllib3/urllib3#3798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eLocationParseError\u003c/code\u003e when paths resembling schemeless URIs were passed to \u003ccode\u003eHTTPConnectionPool.urlopen()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3352\"\u003eurllib3/urllib3#3352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eBaseHTTPResponse.readinto()\u003c/code\u003e type annotation to accept \u003ccode\u003ememoryview\u003c/code\u003e in addition to \u003ccode\u003ebytearray\u003c/code\u003e, matching the \u003ccode\u003eio.RawIOBase.readinto\u003c/code\u003e contract and enabling use with \u003ccode\u003eio.BufferedReader\u003c/code\u003e without type errors. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3764\"\u003eurllib3/urllib3#3764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHS...\n\n_Description has been truncated_\n\n---\n\n📦 This PR updates 9 Python dependencies in the docreader module, including both direct dependencies (pillow, protobuf, pypdf, requests) and indirect dependencies (cryptography, idna, lxml-html-clean, python-dotenv, urllib3) to their latest versions.\n\n\u003cdetails\u003e\n\u003csummary\u003e🔍 \u003cstrong\u003eDetailed Analysis\u003c/strong\u003e\u003c/summary\u003e\n\n### Key Changes\n- **Direct Dependencies**: Updated pillow (12.0.0→12.2.0), protobuf (6.33.0→6.33.5), pypdf (6.1.3→6.10.2), and requests (2.32.5→2.33.0)\n- **Indirect Dependencies**: Updated cryptography (46.0.3→46.0.7), idna (3.11→3.15), lxml-html-clean (0.4.3→0.4.4), python-dotenv (1.2.1→1.2.2), and urllib3 (2.5.0→2.7.0)\n- **Security Improvements**: Multiple packages include critical security fixes, particularly pypdf, cryptography, urllib3, and lxml-html-clean\n\n### Technical Implementation\n```mermaid\nflowchart TD\n    A[Dependency Update Process] --\u003e B[Direct Dependencies]\n    A --\u003e C[Indirect Dependencies]\n    \n    B --\u003e D[pillow 12.2.0\u003cbr/\u003eImage processing improvements]\n    B --\u003e E[protobuf 6.33.5\u003cbr/\u003eProtocol buffer updates]\n    B --\u003e F[pypdf 6.10.2\u003cbr/\u003ePDF security fixes]\n    B --\u003e G[requests 2.33.0\u003cbr/\u003eHTTP library updates]\n    \n    C --\u003e H[cryptography 46.0.7\u003cbr/\u003eCVE fixes]\n    C --\u003e I[idna 3.15\u003cbr/\u003eUnicode handling]\n    C --\u003e J[lxml-html-clean 0.4.4\u003cbr/\u003eHTML sanitization]\n    C --\u003e K[python-dotenv 1.2.2\u003cbr/\u003eEnvironment variables]\n    C --\u003e L[urllib3 2.7.0\u003cbr/\u003eHTTP connection pooling]\n    \n    D --\u003e M[Enhanced Security \u0026 Stability]\n    E --\u003e M\n    F --\u003e M\n    G --\u003e M\n    H --\u003e M\n    I --\u003e M\n    J --\u003e M\n    K --\u003e M\n    L --\u003e M\n```\n\n### Impact\n- **Security Enhancement**: Addresses multiple CVEs including buffer overflow fixes in cryptography, decompression bomb protections in urllib3, and XSS prevention in lxml-html-clean\n- **Stability Improvements**: pypdf received significant updates (6.1.3→6.10.2) with numerous bug fixes and robustness improvements for PDF processing\n- **Compatibility Maintenance**: Updates maintain backward compatibility while providing latest features and performance optimizations across the document processing pipeline\n\n\u003c/details\u003e\n\n_Created with [Palmier](https://www.palmier.io)_","html_url":"https://github.com/GlacierEQ/WeKnora/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlacierEQ%2FWeKnora/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"0.3.1","new_version":"0.4.4","update_type":"minor","path":null,"pr_created_at":"2026-05-16T08:28:01.000Z","version_change":"0.3.1 → 0.4.4","issue":{"uuid":"4459256565","node_id":"PR_kwDORSvhlc7cLiiL","number":1,"state":"open","title":"Bump the pip group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T08:28:01.000Z","updated_at":"2026-05-16T08:28:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":11,"packages":[{"name":"fastmcp","old_version":"2.13.1","new_version":"3.2.0","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"simpleeval","old_version":"1.0.3","new_version":"1.0.5","repository_url":"https://github.com/danthedeckie/simpleeval"},{"name":"langchain-core","old_version":"0.3.49","new_version":"1.3.3","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-community","old_version":"0.3.19","new_version":"0.3.27","repository_url":"https://github.com/langchain-ai/langchain-community"},{"name":"lxml-html-clean","old_version":"0.3.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"mcp","old_version":"1.22.0","new_version":"1.23.0","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"paramiko","old_version":"3.5.0","new_version":"5.0.0","repository_url":"https://github.com/paramiko/paramiko"},{"name":"pypdf","old_version":"6.0.0","new_version":"6.10.2","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"unstructured","old_version":"0.16.23","new_version":"0.18.18","repository_url":"https://github.com/Unstructured-IO/unstructured"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `2.13.1` | `3.2.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.3` |\n| [simpleeval](https://github.com/danthedeckie/simpleeval) | `1.0.3` | `1.0.5` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `0.3.49` | `1.3.3` |\n| [langchain-community](https://github.com/langchain-ai/langchain-community) | `0.3.19` | `0.3.27` |\n| [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) | `0.3.1` | `0.4.4` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.22.0` | `1.23.0` |\n| [paramiko](https://github.com/paramiko/paramiko) | `3.5.0` | `5.0.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.0.0` | `6.10.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.2.2` |\n| [unstructured](https://github.com/Unstructured-IO/unstructured) | `0.16.23` | `0.18.18` |\n\n\nUpdates `fastmcp` from 2.13.1 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.0: Show Don't Tool\u003c/h2\u003e\n\u003cp\u003eFastMCP 3.2 is the Apps release. The 3.0 architecture gave you providers and transforms; 3.1 shipped Code Mode for tool discovery. 3.2 puts a face on it: your tools can now return interactive UIs — charts, dashboards, forms, maps — rendered right inside the conversation.\u003c/p\u003e\n\u003ch2\u003eFastMCPApp\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFastMCPApp\u003c/code\u003e is a new provider class for building interactive applications inside MCP. It separates the tools the LLM sees (\u003ccode\u003e@app.ui()\u003c/code\u003e) from the backend tools the UI calls (\u003ccode\u003e@app.tool()\u003c/code\u003e), manages visibility automatically, and gives tool references stable identifiers that survive namespace transforms and server composition — without requiring host cooperation.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom fastmcp import FastMCP, FastMCPApp\nfrom prefab_ui.actions.mcp import CallTool\nfrom prefab_ui.components import Column, Form, Input, Button, ForEach, Text\n\u003cp\u003eapp = FastMCPApp(\u0026quot;Contacts\u0026quot;)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/app\"\u003e\u003ccode\u003e@​app\u003c/code\u003e\u003c/a\u003e.tool()\ndef save_contact(name: str, email: str) -\u0026gt; list[dict]:\ndb.append({\u0026quot;name\u0026quot;: name, \u0026quot;email\u0026quot;: email})\nreturn list(db)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/app\"\u003e\u003ccode\u003e@​app\u003c/code\u003e\u003c/a\u003e.ui()\ndef contact_manager() -\u0026gt; PrefabApp:\nwith PrefabApp(state={\u0026quot;contacts\u0026quot;: list(db)}) as view:\nwith Column(gap=4):\nForEach(\u0026quot;contacts\u0026quot;, lambda c: Text(c.name))\nwith Form(on_submit=CallTool(\u0026quot;save_contact\u0026quot;)):\nInput(name=\u0026quot;name\u0026quot;, required=True)\nInput(name=\u0026quot;email\u0026quot;, required=True)\nButton(\u0026quot;Save\u0026quot;)\nreturn view\u003c/p\u003e\n\u003cp\u003emcp = FastMCP(\u0026quot;Server\u0026quot;, providers=[app])\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThe UI is built with \u003ca href=\"https://prefab.prefect.io\"\u003ePrefab\u003c/a\u003e, a Python component library that compiles to interactive UIs. You write Python; the user sees charts, tables, forms, and dashboards. FastMCP handles the MCP Apps protocol machinery — renderer resources, CSP configuration, structured content serialization — so you don't have to.\u003c/p\u003e\n\u003cp\u003eFor simpler cases where you just want to visualize data without server interaction, set \u003ccode\u003eapp=True\u003c/code\u003e on any tool and return Prefab components directly:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e@mcp.tool(app=True)\ndef revenue_chart(year: int) -\u0026gt; PrefabApp:\n    with PrefabApp() as app:\n        BarChart(data=revenue_data, series=[ChartSeries(data_key=\u0026quot;revenue\u0026quot;)])\n    return app\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eBuilt-in Providers\u003c/h2\u003e\n\u003cp\u003eFive ready-made providers you add with a single \u003ccode\u003eadd_provider()\u003c/code\u003e call:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFileUpload\u003c/strong\u003e — drag-and-drop file upload with session-scoped storage\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/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx\"\u003efastmcp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003chr /\u003e\n\u003ch2\u003etitle: \u0026quot;Changelog\u0026quot;\nicon: \u0026quot;list-check\u0026quot;\nrss: true\ntag: NEW\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases/tag/v3.1.1\"\u003ev3.1.1: 'Tis But a Patch\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003ePins \u003ccode\u003epydantic-monty\u003c/code\u003e below 0.0.8 to fix a breaking change in Monty that affects code mode. Monty 0.0.8 removed the \u003ccode\u003eexternal_functions\u003c/code\u003e constructor parameter, causing \u003ccode\u003eMontySandboxProvider\u003c/code\u003e to fail. This patch caps the version so existing installs work correctly.\u003c/p\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePin pydantic-monty below 0.0.8 to fix code mode by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3497\"\u003e#3497\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.1.0...v3.1.1\"\u003ev3.1.0...v3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases/tag/v3.1.0\"\u003ev3.1.0: Code to Joy\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eFastMCP 3.1 is the Code Mode release. The 3.0 architecture introduced providers and transforms as the extensibility layer — 3.1 puts that architecture to work, shipping the most requested capability since launch: servers that can find and execute code on behalf of agents, without requiring clients to know what tools exist.\u003c/p\u003e\n\u003ch3\u003eNew Features 🎉\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Search transforms for tool discovery by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3154\"\u003e#3154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd experimental CodeMode transform by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3297\"\u003e#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Prefab Apps integration for MCP tool UIs by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3316\"\u003e#3316\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLazy-load heavy imports to reduce import time by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3295\"\u003e#3295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd http_client parameter to all token verifiers for connection pooling by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3300\"\u003e#3300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd in-memory caching for token introspection results by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3298\"\u003e#3298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SessionStart hook to install gh CLI in cloud sessions by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3308\"\u003e#3308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ty 0.0.19 type errors by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3310\"\u003e#3310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCode Mode: Add resource limits to MontySandboxProvider by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3326\"\u003e#3326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept transforms as FastMCP init kwarg by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3324\"\u003e#3324\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit large test files to comply with loq line limit by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3328\"\u003e#3328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd -m/--module flag to \u003ccode\u003efastmcp run\u003c/code\u003e and \u003ccode\u003edev inspector\u003c/code\u003e by \u003ca href=\"https://github.com/dgenio\"\u003e\u003ccode\u003e@​dgenio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3331\"\u003e#3331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search_result_serializer hook and serialize_tools_for_output_markdown by \u003ca href=\"https://github.com/MagnusS0\"\u003e\u003ccode\u003e@​MagnusS0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3337\"\u003e#3337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MultiAuth for composing multiple token verification sources by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3335\"\u003e#3335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds PropelAuth as an AuthProvider by \u003ca href=\"https://github.com/andrew-propelauth\"\u003e\u003ccode\u003e@​andrew-propelauth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3358\"\u003e#3358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace vendored DI with uncalled-for by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3301\"\u003e#3301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecompose CodeMode into composable discovery tools by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3354\"\u003e#3354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(contrib): auto-sync MCPMixin decorators with from_function signatures by \u003ca href=\"https://github.com/AnkeshThakur\"\u003e\u003ccode\u003e@​AnkeshThakur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3323\"\u003e#3323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google GenAI Sampling Handler by \u003ca href=\"https://github.com/strawgate\"\u003e\u003ccode\u003e@​strawgate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/2977\"\u003e#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ListTools, search limit, and catalog size annotation to CodeMode by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3359\"\u003e#3359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configuring FastMCP transport setting in the same way as other configuration by \u003ca href=\"https://github.com/jvdmr\"\u003e\u003ccode\u003e@​jvdmr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/1796\"\u003e#1796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd include_unversioned option to VersionFilter by \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3349\"\u003e#3349\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/PrefectHQ/fastmcp/commit/665514e19a78543709be85b4261153bbe98e882f\"\u003e\u003ccode\u003e665514e\u003c/code\u003e\u003c/a\u003e Add forward_resource flag to OAuthProxy (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f189d1f7fbfd55c9f68c750a3a293e31c7586e8b\"\u003e\u003ccode\u003ef189d1f\u003c/code\u003e\u003c/a\u003e Bump pydantic-monty to 0.0.9 (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3707\"\u003e#3707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/6faa2d61f82eab670694965606fd7b14bedddc7f\"\u003e\u003ccode\u003e6faa2d6\u003c/code\u003e\u003c/a\u003e Remove hardcoded prefab-ui version from pinning warnings (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/dd8816c6ccc733048fe6208bfc8f80ded505f993\"\u003e\u003ccode\u003edd8816c\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/d27495960af23969f11d6e1e44e2018529c1c37e\"\u003e\u003ccode\u003ed274959\u003c/code\u003e\u003c/a\u003e docs: note that custom routes are unauthenticated (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3706\"\u003e#3706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/4a54be2d5f1ac8925a461e67cf993e0278729d4d\"\u003e\u003ccode\u003e4a54be2\u003c/code\u003e\u003c/a\u003e Add examples gallery page (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/961dd5045611e9c1bd6b7c4f5ac3aa14f0a30ce7\"\u003e\u003ccode\u003e961dd50\u003c/code\u003e\u003c/a\u003e Add interactive map example with geocoding (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/f01d0c581c7a821a9701d6dde4d9beb95e32d479\"\u003e\u003ccode\u003ef01d0c5\u003c/code\u003e\u003c/a\u003e Add quiz example app, fix dev server empty string args (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3700\"\u003e#3700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/85b7efd74601a72c74ac68e23599de6c032bb9c4\"\u003e\u003ccode\u003e85b7efd\u003c/code\u003e\u003c/a\u003e chore: Update SDK documentation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/3694\"\u003e#3694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/27abe3c3f0cc2ce1925cc3cbc7968d5637ebc82b\"\u003e\u003ccode\u003e27abe3c\u003c/code\u003e\u003c/a\u003e Add sales dashboard and live system monitor examples, bump prefab-ui to 0.17 ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v2.13.1...v3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.0.3 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue 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/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 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/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.1/\"\u003ehttps://pypi.org/project/Flask/3.1.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/flask/milestone/36?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/36?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. GHSA-4grg-w6v8-c28g\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5645\"\u003e#5645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands are shown. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5673\"\u003e#5673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return \u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier for Quart. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5659\"\u003e#5659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.0/\"\u003ehttps://pypi.org/project/Flask/3.1.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/33?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/33?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5623\"\u003e#5623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases. Werkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5624\"\u003e#5624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5633\"\u003e#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option responses. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5496\"\u003e#5496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and \u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when opening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5504\"\u003e#5504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only through the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added \u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation about resource limits to the security page. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5625\"\u003e#5625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the \u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5472\"\u003e#5472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files. \u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless \u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5628\"\u003e#5628\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old secret keys that can still be used for unsigning. Extensions will need to add support. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5621\"\u003e#5621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how setting \u003ccode\u003ehost_matching=True\u003c/code\u003e or \u003ccode\u003esubdomain_matching=False\u003c/code\u003e interacts with \u003ccode\u003eSERVER_NAME\u003c/code\u003e. Setting \u003ccode\u003eSERVER_NAME\u003c/code\u003e no longer restricts requests to only that domain. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5553\"\u003e#5553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.trusted_hosts\u003c/code\u003e is checked during routing, and can be set through the \u003ccode\u003eTRUSTED_HOSTS\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5636\"\u003e#5636\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/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via\n\u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. :ghsa:\u003ccode\u003e4grg-w6v8-c28g\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e5645\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands\nare shown. :issue:\u003ccode\u003e5673\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return\n\u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier\nfor Quart. :pr:\u003ccode\u003e5659\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e5623\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases.\nWerkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. :pr:\u003ccode\u003e5624,5633\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option\nresponses. :pr:\u003ccode\u003e5496\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and\n\u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when\nopening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. :issue:\u003ccode\u003e5504\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only\nthrough the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added\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/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.0.3...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simpleeval` from 1.0.3 to 1.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/danthedeckie/simpleeval/releases\"\u003esimpleeval's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.5\u003c/h2\u003e\n\u003cp\u003eFixes Security issues with \u0026quot;dangerous\u0026quot; modules \u0026amp; functions leaking through as attributes of other names, see:\u003c/p\u003e\n\u003cp\u003eFixes CVE-2026-32640\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/security/advisories/GHSA-44vg-5wv2-h2hg\"\u003ehttps://github.com/danthedeckie/simpleeval/security/advisories/GHSA-44vg-5wv2-h2hg\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking Change:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eModules \u0026amp; Submodules now are not directly usable as names or as attributes of other items, if you still need this functionality, then use the new \u003ccode\u003eModuleWrapper\u003c/code\u003e, or subclass SimpleEval to bypass it.\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/danthedeckie/simpleeval/commit/a4659fad8f3fb855acaf7667b2a48ff9f5576b5d\"\u003e\u003ccode\u003ea4659fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/danthedeckie/simpleeval/issues/171\"\u003e#171\u003c/a\u003e from danthedeckie/remove-module-access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/7c9180c52d1fcfea468ae42cf9495d8f055a2940\"\u003e\u003ccode\u003e7c9180c\u003c/code\u003e\u003c/a\u003e version number bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/cffa9f68cee54404a2ef43d949a8ae8a3311c503\"\u003e\u003ccode\u003ecffa9f6\u003c/code\u003e\u003c/a\u003e Much stricter lockdown via _check_disallowed_items plus adding ModuleWrapper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/4e7f4b81e6d32fd2c24dd5cfa2977d725e11162d\"\u003e\u003ccode\u003e4e7f4b8\u003c/code\u003e\u003c/a\u003e Add ByamB4 to contributors list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/1654cbf0219345f707c79664b8657be6b8d23e33\"\u003e\u003ccode\u003e1654cbf\u003c/code\u003e\u003c/a\u003e Disallow module access \u0026amp; disallowed function access via attributes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/9cb4a7b99498c173263bd90f77bc185e160fb6b8\"\u003e\u003ccode\u003e9cb4a7b\u003c/code\u003e\u003c/a\u003e Add a few additional DISALLOW_FUNCTIONS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/0425898b23abb3f1a9ed56dbb0bb4244d6350f2f\"\u003e\u003ccode\u003e0425898\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/danthedeckie/simpleeval/issues/169\"\u003e#169\u003c/a\u003e from danthedeckie/update-readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/618bcf4b2cb322aefc76735bf091739c8148a19e\"\u003e\u003ccode\u003e618bcf4\u003c/code\u003e\u003c/a\u003e update build tools / config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/88289434c3f88df4646ce37fc67a3ef9158917d6\"\u003e\u003ccode\u003e8828943\u003c/code\u003e\u003c/a\u003e bump version, and update copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danthedeckie/simpleeval/commit/97570fe4659bbafdf49d9407dc4423f3c7f0f235\"\u003e\u003ccode\u003e97570fe\u003c/code\u003e\u003c/a\u003e lint string joining fixes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/danthedeckie/simpleeval/compare/1.0.3...1.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 0.3.49 to 1.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.3.3\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.3.2\u003c/p\u003e\n\u003cp\u003erelease(core): 1.3.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37198\"\u003e#37198\u003c/a\u003e)\nfix(core): set deprecation \u003ccode\u003esince\u003c/code\u003e to 1.3.3 to match release (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37200\"\u003e#37200\u003c/a\u003e)\nfix(core, langchain): harden \u003ccode\u003eload()\u003c/code\u003e against untrusted manifests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37197\"\u003e#37197\u003c/a\u003e)\nchore: bump notebook from 7.5.0 to 7.5.6 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37109\"\u003e#37109\u003c/a\u003e)\nchore: bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260408 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37129\"\u003e#37129\u003c/a\u003e)\nfix(core): preserve structured \u003ccode\u003einputs\u003c/code\u003e on tool runs in tracers (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37108\"\u003e#37108\u003c/a\u003e)\nrelease(perplexity): 1.2.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37091\"\u003e#37091\u003c/a\u003e)\nchore(docs): update x handle references (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37081\"\u003e#37081\u003c/a\u003e)\nfix(core): make \u003ccode\u003eremoval\u003c/code\u003e optional in \u003ccode\u003ewarn_deprecated\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37056\"\u003e#37056\u003c/a\u003e)\nfix(core): validate batch_size in _batch and _abatch to prevent infinite loop (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36663\"\u003e#36663\u003c/a\u003e)\nchore(core): mark stream_v2/astream_v2 as beta (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36992\"\u003e#36992\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.3.2\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.3.1\u003c/p\u003e\n\u003cp\u003erelease(core): 1.3.2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36990\"\u003e#36990\u003c/a\u003e)\nfeat(core): add content-block-centric streaming (v2) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36834\"\u003e#36834\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.3.1\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.3.0\u003c/p\u003e\n\u003cp\u003erelease(core): 1.3.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36972\"\u003e#36972\u003c/a\u003e)\nfeat(core): allow _format_output to pass through list of ToolOutputMixin instances (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36963\"\u003e#36963\u003c/a\u003e)\nchore: bump nbconvert from 7.17.0 to 7.17.1 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36923\"\u003e#36923\u003c/a\u003e)\nfeat(core): Update inheritance behavior for tracer metadata for special keys (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36900\"\u003e#36900\u003c/a\u003e)\nchore: bump langsmith from 0.7.13 to 0.7.31 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36813\"\u003e#36813\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.3.0\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.31\u003c/p\u003e\n\u003cp\u003erelease(core): release 1.3.0 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36851\"\u003e#36851\u003c/a\u003e)\nrelease(core): 1.3.0a3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36829\"\u003e#36829\u003c/a\u003e)\nchore(core): keep checkpoint_ns behavior in streaming metadata for backwards compat (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36828\"\u003e#36828\u003c/a\u003e)\nfeat(core): Add chat model and LLM invocation params to traceable metadata (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36771\"\u003e#36771\u003c/a\u003e)\nfix(core): restore cloud metadata IPs and link-local range in SSRF policy (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36816\"\u003e#36816\u003c/a\u003e)\nchore(deps): bump pytest to \u003ccode\u003e9.0.3\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36801\"\u003e#36801\u003c/a\u003e)\nchore(core): harden private SSRF utilities (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36768\"\u003e#36768\u003c/a\u003e)\nfix(openai): handle content blocks without type key in responses api conversion (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36725\"\u003e#36725\u003c/a\u003e)\nchore: bump pytest from 9.0.2 to 9.0.3 in /libs/core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36719\"\u003e#36719\u003c/a\u003e)\nrelease(core): 1.3.0.a2 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36698\"\u003e#36698\u003c/a\u003e)\nfix(core): Use reference counting for storing inherited run trees to support garbage collection (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36660\"\u003e#36660\u003c/a\u003e)\ndocs(core): nit (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36685\"\u003e#36685\u003c/a\u003e)\nrelease(core): 1.3.0a1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36656\"\u003e#36656\u003c/a\u003e)\nchore(core): reduce streaming metadata / perf (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/36588\"\u003e#36588\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.3.0a3\u003c/h2\u003e\n\u003cp\u003eInitial release\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/langchain-ai/langchain/commit/5039dfec1f8e78459540a7f1b52fb0d6d82e3f07\"\u003e\u003ccode\u003e5039dfe\u003c/code\u003e\u003c/a\u003e release(core): 1.3.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37198\"\u003e#37198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/55a7707837742c2f7a9b7e4a5dd428bf615f3b82\"\u003e\u003ccode\u003e55a7707\u003c/code\u003e\u003c/a\u003e fix(core): set deprecation \u003ccode\u003esince\u003c/code\u003e to 1.3.3 to match release (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37200\"\u003e#37200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/c979c6187b6d82f4bef35b10b84b39fa44806b22\"\u003e\u003ccode\u003ec979c61\u003c/code\u003e\u003c/a\u003e fix(core, langchain): harden \u003ccode\u003eload()\u003c/code\u003e against untrusted manifests (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37197\"\u003e#37197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d7031101da78e3f6b6c5956b48a5170c1a33292b\"\u003e\u003ccode\u003ed703110\u003c/code\u003e\u003c/a\u003e docs: update README.md (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37190\"\u003e#37190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/4d50a2a68b38e9acc53027ea7e7cc89e2d80b4c7\"\u003e\u003ccode\u003e4d50a2a\u003c/code\u003e\u003c/a\u003e ci(infra): run pre-release checks before TestPyPI publish (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37194\"\u003e#37194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/9bd730e1991baac4ea80aa07d93110dc1b52ee25\"\u003e\u003ccode\u003e9bd730e\u003c/code\u003e\u003c/a\u003e fix(fireworks): require \u003ccode\u003eapi_key\u003c/code\u003e in \u003ccode\u003eFireworksEmbeddings\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37193\"\u003e#37193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f475f4191fc3a8d3cf14063b44d524594c080c04\"\u003e\u003ccode\u003ef475f41\u003c/code\u003e\u003c/a\u003e release(mistralai): 1.1.4 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37191\"\u003e#37191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/7dbff48aff508b01dc231ea0cbd4e4e09da92c97\"\u003e\u003ccode\u003e7dbff48\u003c/code\u003e\u003c/a\u003e fix(mistralai): strip non-wire keys from \u003ccode\u003eToolMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37188\"\u003e#37188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/913816c440ea79295370e1af6484e17b86e5d03c\"\u003e\u003ccode\u003e913816c\u003c/code\u003e\u003c/a\u003e release(fireworks): 1.3.1 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/37189\"\u003e#37189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/4498d3dc84a85688fa4d15476403a900bc7f9114\"\u003e\u003ccode\u003e4498d3d\u003c/code\u003e\u003c/a\u003e fix(fireworks): strip non-wire keys from \u003ccode\u003eToolMessage\u003c/code\u003e text content blocks (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.49...langchain-core==1.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-community` from 0.3.19 to 0.3.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain-community/releases\"\u003elangchain-community's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elibs/community/v0.3.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecommunity[patch]: verify ssl by default in RecursiveUrlLoader by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/136\"\u003elangchain-ai/langchain-community#136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Change JSON loader to be able to handle UTF-8-BOM files by \u003ca href=\"https://github.com/witlat\"\u003e\u003ccode\u003e@​witlat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/138\"\u003elangchain-ai/langchain-community#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWriteFileTool should create not existent parent dirs in file_path by \u003ca href=\"https://github.com/vria\"\u003e\u003ccode\u003e@​vria\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/132\"\u003elangchain-ai/langchain-community#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:zap: fix: update OpenAI model cost values for accuracy by \u003ca href=\"https://github.com/tdahar\"\u003e\u003ccode\u003e@​tdahar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/142\"\u003elangchain-ai/langchain-community#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[patch]: Prevent XXE in evernote loader by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/139\"\u003elangchain-ai/langchain-community#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 0.3.27 by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/143\"\u003elangchain-ai/langchain-community#143\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/witlat\"\u003e\u003ccode\u003e@​witlat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/138\"\u003elangchain-ai/langchain-community#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vria\"\u003e\u003ccode\u003e@​vria\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/132\"\u003elangchain-ai/langchain-community#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tdahar\"\u003e\u003ccode\u003e@​tdahar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/142\"\u003elangchain-ai/langchain-community#142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.26...libs/community/v0.3.27\"\u003ehttps://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.26...libs/community/v0.3.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003elibs/community/v0.3.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[USearch]: Intializations of ids in case self.ids is None by \u003ca href=\"https://github.com/keenborder786\"\u003e\u003ccode\u003e@​keenborder786\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/99\"\u003elangchain-ai/langchain-community#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[patch]: drop langsmith upper bound and release 0.3.26 by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/127\"\u003elangchain-ai/langchain-community#127\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/keenborder786\"\u003e\u003ccode\u003e@​keenborder786\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/99\"\u003elangchain-ai/langchain-community#99\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.25...libs/community/v0.3.26\"\u003ehttps://github.com/langchain-ai/langchain-community/compare/libs/community/v0.3.25...libs/community/v0.3.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003elibs/community/v0.3.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: replace invalid scenexplain algorithm by \u003ca href=\"https://github.com/MichaelLi65535\"\u003e\u003ccode\u003e@​MichaelLi65535\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/59\"\u003elangchain-ai/langchain-community#59\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003einfra: specify pyopenssl in extended test deps by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/80\"\u003elangchain-ai/langchain-community#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[patch]: deprecate Tavily tools in favor of langchain-tavily implementation by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/79\"\u003elangchain-ai/langchain-community#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecating hugging face implementation in langchain_community by \u003ca href=\"https://github.com/CtrlMj\"\u003e\u003ccode\u003e@​CtrlMj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/73\"\u003elangchain-ai/langchain-community#73\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evectorstores[azure_search]: fix regression in 0.3.24  by \u003ca href=\"https://github.com/marcgibbons\"\u003e\u003ccode\u003e@​marcgibbons\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/77\"\u003elangchain-ai/langchain-community#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity: Add cost data for aws bedrock claude 4 series models by \u003ca href=\"https://github.com/AsifMehmood97\"\u003e\u003ccode\u003e@​AsifMehmood97\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/83\"\u003elangchain-ai/langchain-community#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove no-untyped-def escapes by \u003ca href=\"https://github.com/cbornet\"\u003e\u003ccode\u003e@​cbornet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/17\"\u003elangchain-ai/langchain-community#17\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add search endpoint for Firecrawl Integration by \u003ca href=\"https://github.com/ftonato\"\u003e\u003ccode\u003e@​ftonato\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/87\"\u003elangchain-ai/langchain-community#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity[patch]: ssl verification should be enabled by default everywhere by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/75\"\u003elangchain-ai/langchain-community#75\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle image of size 0 bytes in PyPDFParser by \u003ca href=\"https://github.com/soucosmo\"\u003e\u003ccode\u003e@​soucosmo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/84\"\u003elangchain-ai/langchain-community#84\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add depandabot config by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/90\"\u003elangchain-ai/langchain-community#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden Azure ML url validation by \u003ca href=\"https://github.com/tonybaloney\"\u003e\u003ccode\u003e@​tonybaloney\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/88\"\u003elangchain-ai/langchain-community#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update readme by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/95\"\u003elangchain-ai/langchain-community#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epatch: sanitize file extension in HuggingFaceTextToSpeechModelInference by \u003ca href=\"https://github.com/eyurtsev\"\u003e\u003ccode\u003e@​eyurtsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/101\"\u003elangchain-ai/langchain-community#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: telegram multiformat by \u003ca href=\"https://github.com/jerryyf\"\u003e\u003ccode\u003e@​jerryyf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/89\"\u003elangchain-ai/langchain-community#89\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecommunity: release 0.3.25 by \u003ca href=\"https://github.com/ccurme\"\u003e\u003ccode\u003e@​ccurme\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/86\"\u003elangchain-ai/langchain-community#86\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/MichaelLi65535\"\u003e\u003ccode\u003e@​MichaelLi65535\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/59\"\u003elangchain-ai/langchain-community#59\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CtrlMj\"\u003e\u003ccode\u003e@​CtrlMj\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/73\"\u003elangchain-ai/langchain-community#73\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marcgibbons\"\u003e\u003ccode\u003e@​marcgibbons\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/77\"\u003elangchain-ai/langchain-community#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbornet\"\u003e\u003ccode\u003e@​cbornet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/langchain-ai/langchain-community/pull/17\"\u003elangchain-ai/langchain-community#17\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\u003eSee full diff in \u003ca href=\"https://github.com/langchain-ai/langchain-community/commits/libs/community/v0.3.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.3.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.1 (2024-11-15)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved superfluous debug prints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.0 (2024-11-12)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eCleaner()\u003c/code\u003e now scans for hidden JavaScript code embedded\nwithin CSS comments. In certain contexts, such as within \u003ccode\u003e\u0026lt;svg\u0026gt;\u003c/code\u003e or \u003ccode\u003e\u0026lt;math\u0026gt;\u003c/code\u003e tags,\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.3.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.22.0 to 1.23.0\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.23.0\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release brings us up to speed with the latest MCP spec \u003ccode\u003e2025-11-25\u003c/code\u003e. Take a look at the \u003ca href=\"https://modelcontextprotocol.io/specification/2025-11-25\"\u003elatest spec\u003c/a\u003e as well as the release \u003ca href=\"https://blog.modelcontextprotocol.io/posts/2025-11-25-first-mcp-anniversary/\"\u003eblog post.\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd tests for JSON Schema 2020-12 field preservation (SEP-1613) by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1649\"\u003emodelcontextprotocol/python-sdk#1649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd client_secret_basic authentication support by \u003ca href=\"https://github.com/jonshea\"\u003e\u003ccode\u003e@​jonshea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1334\"\u003emodelcontextprotocol/python-sdk#1334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement SEP-1577 - Sampling With Tools by \u003ca href=\"https://github.com/ochafik\"\u003e\u003ccode\u003e@​ochafik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1594\"\u003emodelcontextprotocol/python-sdk#1594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSEP-1330: Elicitation Enum Schema Improvements and Standards Compliance by \u003ca href=\"https://github.com/chughtapan\"\u003e\u003ccode\u003e@​chughtapan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1246\"\u003emodelcontextprotocol/python-sdk#1246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[auth][conformance] add conformance auth client by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1640\"\u003emodelcontextprotocol/python-sdk#1640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement SEP-986: Tool name validation by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1655\"\u003emodelcontextprotocol/python-sdk#1655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: url for spec by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1659\"\u003emodelcontextprotocol/python-sdk#1659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: implement SEP-991 URL-based client ID (CIMD) support by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1652\"\u003emodelcontextprotocol/python-sdk#1652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate doc string on custom_route by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1660\"\u003emodelcontextprotocol/python-sdk#1660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement SEP-1036: URL mode elicitation for secure out-of-band interactions by \u003ca href=\"https://github.com/cbcoutinho\"\u003e\u003ccode\u003e@​cbcoutinho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1580\"\u003emodelcontextprotocol/python-sdk#1580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip empty SSE data to avoid parsing errors by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1670\"\u003emodelcontextprotocol/python-sdk#1670\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSEP-1686: Tasks 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/1645\"\u003emodelcontextprotocol/python-sdk#1645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd on_session_created callback option by \u003ca href=\"https://github.com/crondinini-ant\"\u003e\u003ccode\u003e@​crondinini-ant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1710\"\u003emodelcontextprotocol/python-sdk#1710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SSE polling support (SEP-1699) by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1654\"\u003emodelcontextprotocol/python-sdk#1654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport client_credentials flow with JWT and Basic auth by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1663\"\u003emodelcontextprotocol/python-sdk#1663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: backwards-compatible create_message overloads for SEP-1577 by \u003ca href=\"https://github.com/felixweinberger\"\u003e\u003ccode\u003e@​felixweinberger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1713\"\u003emodelcontextprotocol/python-sdk#1713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto-enable DNS rebinding protection for localhost servers by \u003ca href=\"https://github.com/pcarleton\"\u003e\u003ccode\u003e@​pcarleton\u003c/code\u003e\u003c/a\u003e  (d3a184119e4479ea6a63590bc41f01dc06e3fa99)\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/ochafik\"\u003e\u003ccode\u003e@​ochafik\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/pull/1594\"\u003emodelcontextprotocol/python-sdk#1594\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.22.0...v1.23.0\"\u003ehttps://github.com/modelcontextprotocol/python-sdk/compare/v1.22.0...v1.23.0\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/d3a184119e4479ea6a63590bc41f01dc06e3fa99\"\u003e\u003ccode\u003ed3a1841\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/fa851d93a2036a37cce73e098f7dbc80a6c48765\"\u003e\u003ccode\u003efa851d9\u003c/code\u003e\u003c/a\u003e feat: backwards-compatible create_message overloads for SEP-1577 (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1713\"\u003e#1713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/f82b0c937178815c1e96460455778578050c6d1a\"\u003e\u003ccode\u003ef82b0c9\u003c/code\u003e\u003c/a\u003e Support client_credentials flow with JWT and Basic auth (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1663\"\u003e#1663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/281fd4765e0fc2efaf2039d248c3bc0698416a8a\"\u003e\u003ccode\u003e281fd47\u003c/code\u003e\u003c/a\u003e Add SSE polling support (SEP-1699) (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1654\"\u003e#1654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/2cd178a962ab454e3add228ecd721784b7b36e99\"\u003e\u003ccode\u003e2cd178a\u003c/code\u003e\u003c/a\u003e Add on_session_created callback option (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1710\"\u003e#1710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/c92bb2f7ffaa61813d7cc350887f4ece38307769\"\u003e\u003ccode\u003ec92bb2f\u003c/code\u003e\u003c/a\u003e SEP-1686: Tasks (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1645\"\u003e#1645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/5983a650cc07d2dc6c6ba098e99d3545889157a9\"\u003e\u003ccode\u003e5983a65\u003c/code\u003e\u003c/a\u003e Skip empty SSE data to avoid parsing errors (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1670\"\u003e#1670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/02b78899296ce3631565345501e3d956b83ffe94\"\u003e\u003ccode\u003e02b7889\u003c/code\u003e\u003c/a\u003e Implement SEP-1036: URL mode elicitation for secure out-of-band interactions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/27279bc157cbc03f7fe7758fd55a4b34c5652f42\"\u003e\u003ccode\u003e27279bc\u003c/code\u003e\u003c/a\u003e Update doc string on custom_route (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1660\"\u003e#1660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/commit/f22501315eab5b8358c603ac7f730f77bb09e4c4\"\u003e\u003ccode\u003ef225013\u003c/code\u003e\u003c/a\u003e feat: implement SEP-991 URL-based client ID (CIMD) support (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/python-sdk/issues/1652\"\u003e#1652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/modelcontextprotocol/python-sdk/compare/v1.22.0...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `paramiko` from 3.5.0 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/710cc5c02e2ded370d8d24e261e2baa8317a20fa\"\u003e\u003ccode\u003e710cc5c\u003c/code\u003e\u003c/a\u003e What's a few weeks between friends?\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/ea93c5951ce1e1442be18c718c2dcc4fd8da7519\"\u003e\u003ccode\u003eea93c59\u003c/code\u003e\u003c/a\u003e Fix up Ed25519Key so it has non-erroring repr() during fatal errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/5b90ef9fbc774658879223e012235914d65c657b\"\u003e\u003ccode\u003e5b90ef9\u003c/code\u003e\u003c/a\u003e ruff/isort\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/f3864b69346c853be6709f9b3f5f6a71c61e2e1a\"\u003e\u003ccode\u003ef3864b6\u003c/code\u003e\u003c/a\u003e Changelog fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/acd4bc1dee5a594a3534b6d76f7dfc6ebd55f71b\"\u003e\u003ccode\u003eacd4bc1\u003c/code\u003e\u003c/a\u003e Replace hardcoded PEM format in PKey.write* with new parameter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/6fa15569100fc222af4153f763d19620d64d9e4f\"\u003e\u003ccode\u003e6fa1556\u003c/code\u003e\u003c/a\u003e Bump group-exchange kex min_bits to 2048\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/eb87ad3b241c08994a032c539ea8e1c51d544cea\"\u003e\u003ccode\u003eeb87ad3\u003c/code\u003e\u003c/a\u003e Fix some tests that were incorrectly passing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/1ecc933b34510525aee8cad9956c3b8e642783ec\"\u003e\u003ccode\u003e1ecc933\u003c/code\u003e\u003c/a\u003e Remove GSSAPI support :(\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/9bf5fcae57e6ca995275037eea9d6305f70d7cdb\"\u003e\u003ccode\u003e9bf5fca\u003c/code\u003e\u003c/a\u003e Remove SHA1-based (non-GSS) kex methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paramiko/paramiko/commit/b8f75c7cd19d5c26220737c66498e5066af239b7\"\u003e\u003ccode\u003eb8f75c7\u003c/code\u003e\u003c/a\u003e Lintin' ain't easy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/paramiko/paramiko/compare/3.5.0...5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.0.0 to 6.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.10.2, 2026-04-15\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.1, 2026-04-14\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse new parameter names for compress_identical_objects by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.0, 2026-04-10\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisallow custom XML entity declarations for XMP metadata (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3724\"\u003e#3724\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip MD5 key derivation for AES-256 encrypted PDFs (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3694\"\u003e#3694\u003c/a\u003e) by \u003ca href=\"https://github.com/Ygnas\"\u003e\u003ccode\u003e@​Ygnas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse remove_orphans in compress_identical_objects (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3310\"\u003e#3310\u003c/a\u003e) by \u003ca href=\"https://github.com/j-t-1\"\u003e\u003ccode\u003e@​j-t-1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PdfReadError when xref table contains comments before trailer (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3710\"\u003e#3710\u003c/a\u003e) by \u003ca href=\"https://github.com/rassie\"\u003e\u003ccode\u003e@​rassie\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly verify AES padding during decryption (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3699\"\u003e#3699\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stale object cache from non-authoritative object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3698\"\u003e#3698\u003c/a\u003e) by \u003ca href=\"https://github.com/astahlman\"\u003e\u003ccode\u003e@​astahlman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix extract_links pairing when annotations include non-links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3687\"\u003e#3687\u003c/a\u003e) by \u003ca href=\"https://github.com/ReinerBRO\"\u003e\u003ccode\u003e@​ReinerBRO\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI policy (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3717\"\u003e#3717\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.9.2, 2026-03-23\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid infinite loop in read_from_stream for broken files (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3693\"\u003e#3693\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.10.2, 2026-04-15\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDo not rely on possibly invalid /Size for incremental cloning (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3735\"\u003e#3735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce limits for FlateDecode parameters and image decoding (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3734\"\u003e#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.1, 2026-04-14\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit the allowed size of xref and object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3733\"\u003e#3733\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsider strict mode setting for decryption errors (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse new parameter names for compress_identical_objects\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.10.0, 2026-04-10\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisallow custom XML entity declarations for XMP metadata (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3724\"\u003e#3724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip MD5 key derivation for AES-256 encrypted PDFs (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3694\"\u003e#3694\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse remove_orphans in compress_identical_objects (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3310\"\u003e#3310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PdfReadError when xref table contains comments before trailer (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3710\"\u003e#3710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly verify AES padding during decryption (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stale object cache from non-authoritative object streams (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix extract_links pairing when annotations include non-links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3687\"\u003e#3687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI policy (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3717\"\u003e#3717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.9.2, 2026-03-23\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid infinite loop in read_from_stream for broken files (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve UnboundLocalError for xobjs in _get_image (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3684\"\u003e#3684\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.9.1...6.9.2\"\u003eFull Changelog\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/py-pdf/pypdf/commit/c476b4f293c8ef4cac07dfb755e5582d838fcdc0\"\u003e\u003ccode\u003ec476b4f\u003c/code\u003e\u003c/a\u003e REL: 6.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/c50a0104cf083356f7c7f5d61410466a57f5c88a\"\u003e\u003ccode\u003ec50a010\u003c/cod...\n\n_Description has been truncated_","html_url":"https://github.com/adrianwedd/agent-zero/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianwedd%2Fagent-zero/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"}},{"old_version":"0.4.1","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-04-17T01:35:51.000Z","version_change":"0.4.1 → 0.4.4","issue":{"uuid":"4279561423","node_id":"PR_kwDON0wAss7TKN80","number":7,"state":"closed","title":"Bump the pip group across 12 directories with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-21T20:23:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-17T01:35:51.000Z","updated_at":"2026-04-21T20:23:47.000Z","time_to_close":413274,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":9,"packages":[{"name":"pillow","old_version":"10.4.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"11.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /ai_agent_tutorials/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_lead_generation_agent directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_recruitment_agent_team directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_teaching_agent_team directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/multimodal_design_agent_team directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 4 updates in the /rag_tutorials/corrective_rag directory: [langchain-openai](https://github.com/langchain-ai/langchain), [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 4 updates in the /rag_tutorials/rag_database_routing directory: [langchain-openai](https://github.com/langchain-ai/langchain), [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\n\nUpdates `pillow` from 10.4.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.214\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(core): restore session.toolkits() pagination by \u003ca href=\"https://github.com/jkomyno\"\u003e\u003ccode\u003e@​jkomyno\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3193\"\u003eComposioHQ/composio#3193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: expand MCP connected account error with auth config scoping details by \u003ca href=\"https://github.com/decimal-pr-bot\"\u003e\u003ccode\u003e@​decimal-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3224\"\u003eComposioHQ/composio#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update TypeScript SDK reference from source 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/ComposioHQ/composio/pull/3226\"\u003eComposioHQ/composio#3226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3217\"\u003eComposioHQ/composio#3217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: allow more bots to trigger Claude review workflows by \u003ca href=\"https://github.com/Sushmithamallesh\"\u003e\u003ccode\u003e@​Sushmithamallesh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3227\"\u003eComposioHQ/composio#3227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass link aliases through tool router session creation by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3228\"\u003eComposioHQ/composio#3228\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/decimal-pr-bot\"\u003e\u003ccode\u003e@​decimal-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3224\"\u003eComposioHQ/composio#3224\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.213...@composio/cli@0.2.25-beta.214\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.213...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.214\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.213\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003einstall-skill\u003c/code\u003e flag spelling in CLI help and parser by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3223\"\u003eComposioHQ/composio#3223\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.212...@composio/cli@0.2.25-beta.213\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.212...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.213\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.212\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CLI runtime headers to Composio client by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3222\"\u003eComposioHQ/composio#3222\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.211...@composio/cli@0.2.25-beta.212\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.211...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.212\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.211\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add guidance on when to use latest vs pinned toolkit versions by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3207\"\u003eComposioHQ/composio#3207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3209\"\u003eComposioHQ/composio#3209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix requireExplicitSelection description in multi-account docs by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3218\"\u003eComposioHQ/composio#3218\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(cli): bump \u003ccode\u003e@​composio/cli\u003c/code\u003e to 0.2.24 to realign with GitHub release by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3213\"\u003eComposioHQ/composio#3213\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.23...@composio/cli@0.2.25-beta.211\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.211\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23\u003c/h2\u003e\n\u003cp\u003eStable \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23 release. Binaries mirrored from \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24 (both built from the same commit \u003ccode\u003eece9f7bb\u003c/code\u003e) because the original release workflow misclassified the version-bump merge as a beta due to a shallow-checkout bug; fix in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3212\"\u003eComposioHQ/composio#3212\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eCLI \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: CLI 0.2.23 patch release by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3210\"\u003eComposioHQ/composio#3210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3211\"\u003eComposioHQ/composio#3211\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.23-beta.207...@composio/cli@0.2.24\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.207...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.24\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24-beta.209\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.214\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(core): restore session.toolkits() pagination by \u003ca href=\"https://github.com/jkomyno\"\u003e\u003ccode\u003e@​jkomyno\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3193\"\u003eComposioHQ/composio#3193\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: expand MCP connected account error with auth config scoping details by \u003ca href=\"https://github.com/decimal-pr-bot\"\u003e\u003ccode\u003e@​decimal-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3224\"\u003eComposioHQ/composio#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update TypeScript SDK reference from source 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/ComposioHQ/composio/pull/3226\"\u003eComposioHQ/composio#3226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3217\"\u003eComposioHQ/composio#3217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: allow more bots to trigger Claude review workflows by \u003ca href=\"https://github.com/Sushmithamallesh\"\u003e\u003ccode\u003e@​Sushmithamallesh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3227\"\u003eComposioHQ/composio#3227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass link aliases through tool router session creation by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3228\"\u003eComposioHQ/composio#3228\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/decimal-pr-bot\"\u003e\u003ccode\u003e@​decimal-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3224\"\u003eComposioHQ/composio#3224\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.213...@composio/cli@0.2.25-beta.214\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.213...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.214\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.213\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003einstall-skill\u003c/code\u003e flag spelling in CLI help and parser by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3223\"\u003eComposioHQ/composio#3223\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.212...@composio/cli@0.2.25-beta.213\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.212...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.213\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.212\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd CLI runtime headers to Composio client by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3222\"\u003eComposioHQ/composio#3222\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.25-beta.211...@composio/cli@0.2.25-beta.212\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.211...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.212\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.25-beta.211\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add guidance on when to use latest vs pinned toolkit versions by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3207\"\u003eComposioHQ/composio#3207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3209\"\u003eComposioHQ/composio#3209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix requireExplicitSelection description in multi-account docs by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3218\"\u003eComposioHQ/composio#3218\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(cli): bump \u003ccode\u003e@​composio/cli\u003c/code\u003e to 0.2.24 to realign with GitHub release by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3213\"\u003eComposioHQ/composio#3213\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.23...@composio/cli@0.2.25-beta.211\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.25-beta.211\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23\u003c/h2\u003e\n\u003cp\u003eStable \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23 release. Binaries mirrored from \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24 (both built from the same commit \u003ccode\u003eece9f7bb\u003c/code\u003e) because the original release workflow misclassified the version-bump merge as a beta due to a shallow-checkout bug; fix in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3212\"\u003eComposioHQ/composio#3212\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eCLI \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: CLI 0.2.23 patch release by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3210\"\u003eComposioHQ/composio#3210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3211\"\u003eComposioHQ/composio#3211\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.23-beta.207...@composio/cli@0.2.24\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.207...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.24\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.24-beta.209\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1...\n\n_Description has been truncated_","html_url":"https://github.com/vspaswin/awesome-llm-apps/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaswin%2Fawesome-llm-apps/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"0.4.1","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-04-13T21:14:10.000Z","version_change":"0.4.1 → 0.4.4","issue":{"uuid":"4257931070","node_id":"PR_kwDONzExCc7SHq8F","number":6,"state":"closed","title":"Bump the pip group across 12 directories with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":"2026-04-16T23:59:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:14:10.000Z","updated_at":"2026-04-16T23:59:12.000Z","time_to_close":269100,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":8,"packages":[{"name":"pillow","old_version":"10.4.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"11.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /ai_agent_tutorials/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_lead_generation_agent directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_recruitment_agent_team directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_teaching_agent_team directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/multimodal_design_agent_team directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 3 updates in the /rag_tutorials/corrective_rag directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_database_routing directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\n\nUpdates `pillow` from 10.4.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23-beta.199\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: bearer token connections \u0026amp; credential patching by \u003ca href=\"https://github.com/dhawal1\"\u003e\u003ccode\u003e@​dhawal1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3151\"\u003eComposioHQ/composio#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: multi-account mode \u0026amp; connection aliases by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3160\"\u003eComposioHQ/composio#3160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3144\"\u003eComposioHQ/composio#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify bearer token self-managed OAuth responsibility by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3180\"\u003eComposioHQ/composio#3180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable multi-account by default in stable CLI by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3163\"\u003eComposioHQ/composio#3163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/anthropic@0.6.10...@composio/cli@0.2.23-beta.199\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ccode\u003e@​0.6.10...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.199\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22-beta.198\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add alias to ToolRouterAuthorizeFn type by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3167\"\u003eComposioHQ/composio#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3168\"\u003eComposioHQ/composio#3168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.21...@composio/cli@0.2.22-beta.198\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.21...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.22-beta.198\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23-beta.199\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: bearer token connections \u0026amp; credential patching by \u003ca href=\"https://github.com/dhawal1\"\u003e\u003ccode\u003e@​dhawal1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3151\"\u003eComposioHQ/composio#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: multi-account mode \u0026amp; connection aliases by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3160\"\u003eComposioHQ/composio#3160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3144\"\u003eComposioHQ/composio#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify bearer token self-managed OAuth responsibility by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3180\"\u003eComposioHQ/composio#3180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable multi-account by default in stable CLI by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3163\"\u003eComposioHQ/composio#3163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/anthropic@0.6.10...@composio/cli@0.2.23-beta.199\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ccode\u003e@​0.6.10...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.199\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22-beta.198\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add alias to ToolRouterAuthorizeFn type by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3167\"\u003eComposioHQ/composio#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3168\"\u003eComposioHQ/composio#3168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.21...@composio/cli@0.2.22-beta.198\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.21...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.22-beta.198\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pill...\n\n_Description has been truncated_\n\n\u003c!-- This is an auto-generated description by cubic. --\u003e\n---\n## Summary by cubic\nUpgrade dependencies across 12 tutorials to pick up security fixes and align with the LangChain v1 stack. Highlights: `Pillow` 12.2.0, `requests` 2.33.0, `lxml_html_clean` 0.4.4, `browser-use` 0.1.45, `composio` 0.8.0, and LangChain (`langgraph` 1.0.10rc1, `langchain-core` 1.2.28, `langchain-community` 0.3.27).\n\n- **Dependencies**\n  - Core libraries: `Pillow` -\u003e 12.2.0, `requests` -\u003e 2.33.0, `lxml_html_clean` -\u003e 0.4.4, `browser-use` -\u003e 0.1.45, `composio` -\u003e 0.8.0.\n  - LangChain stack: `langgraph` -\u003e 1.0.10rc1, `langchain-core` -\u003e 1.2.28, `langchain-community` -\u003e 0.3.27.\n\n- **Migration**\n  - `browser-use`: replace `BrowserWindowContextSize(...)` with flat `BrowserContextConfig(window_width=..., window_height=...)`.\n  - LangChain v1: verify imports and graph/node APIs; test flows after `langgraph`/`langchain-core` upgrades.\n  - Environments: ensure supported Python versions (e.g., `requests` 2.33.0 drops Python 3.9); reinstall deps.\n\n\u003csup\u003eWritten for commit 50c3002e7ef0414cdafc9d78ba45849544c9e1e8. Summary will update on new commits.\u003c/sup\u003e\n\n\u003c!-- End of auto-generated description by cubic. --\u003e\n\n\n\n\u003cdiv id='description'\u003e\n\u003ca href=\"https://bito.ai#summarystart\"\u003e\u003c/a\u003e\u003ch3\u003eSummary by Bito\u003c/h3\u003e\u003cul\u003e\u003cli\u003eUpdated Pillow library to version 12.2.0 in data visualisation, medical imaging, and multimodal design agent tutorials.\u003c/li\u003e\n\u003cli\u003eBumped composio to version 0.8.0 in lead generation and teaching agent tutorials.\u003c/li\u003e\n\u003cli\u003eUpdated browser-use to 0.1.45 in meme generator agent.\u003c/li\u003e\n\u003cli\u003eChanged requests to 2.33.0 and lxml_html_clean to 0.4.4 in recruitment and startup trend analysis agents respectively.\u003c/li\u003e\n\u003cli\u003eUpdated LangChain packages (langgraph, langchain-community, langchain-core) to newer versions in corrective RAG, gemini agentic RAG, RAG agent Cohere, and RAG database routing tutorials.\u003c/li\u003e\n\u003c/ul\u003e\u003c/div\u003e","html_url":"https://github.com/RemyLoveLogicAI/awesome-llm-apps/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RemyLoveLogicAI%2Fawesome-llm-apps/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"0.4.1","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-04-13T21:11:59.000Z","version_change":"0.4.1 → 0.4.4","issue":{"uuid":"4257919550","node_id":"PR_kwDON0wAss7SHoeg","number":6,"state":"closed","title":"Bump the pip group across 12 directories with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-17T01:35:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:11:59.000Z","updated_at":"2026-04-17T01:35:55.000Z","time_to_close":275035,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":8,"packages":[{"name":"pillow","old_version":"10.4.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"10.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"11.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /ai_agent_tutorials/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_lead_generation_agent directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_recruitment_agent_team directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_teaching_agent_team directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/multimodal_design_agent_team directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 3 updates in the /rag_tutorials/corrective_rag directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain-community).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_database_routing directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain-community) and [langchain-core](https://github.com/langchain-ai/langchain).\n\nUpdates `pillow` from 10.4.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23-beta.199\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: bearer token connections \u0026amp; credential patching by \u003ca href=\"https://github.com/dhawal1\"\u003e\u003ccode\u003e@​dhawal1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3151\"\u003eComposioHQ/composio#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: multi-account mode \u0026amp; connection aliases by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3160\"\u003eComposioHQ/composio#3160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3144\"\u003eComposioHQ/composio#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify bearer token self-managed OAuth responsibility by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3180\"\u003eComposioHQ/composio#3180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable multi-account by default in stable CLI by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3163\"\u003eComposioHQ/composio#3163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/anthropic@0.6.10...@composio/cli@0.2.23-beta.199\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ccode\u003e@​0.6.10...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.199\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22-beta.198\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add alias to ToolRouterAuthorizeFn type by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3167\"\u003eComposioHQ/composio#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3168\"\u003eComposioHQ/composio#3168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.21...@composio/cli@0.2.22-beta.198\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.21...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.22-beta.198\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.23-beta.199\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: bearer token connections \u0026amp; credential patching by \u003ca href=\"https://github.com/dhawal1\"\u003e\u003ccode\u003e@​dhawal1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3151\"\u003eComposioHQ/composio#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: multi-account mode \u0026amp; connection aliases by \u003ca href=\"https://github.com/abir-taheer\"\u003e\u003ccode\u003e@​abir-taheer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3160\"\u003eComposioHQ/composio#3160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update toolkits, API spec, and meta tools data 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/ComposioHQ/composio/pull/3144\"\u003eComposioHQ/composio#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: clarify bearer token self-managed OAuth responsibility by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3180\"\u003eComposioHQ/composio#3180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable multi-account by default in stable CLI by \u003ca href=\"https://github.com/CryogenicPlanet\"\u003e\u003ccode\u003e@​CryogenicPlanet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3163\"\u003eComposioHQ/composio#3163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/anthropic@0.6.10...@composio/cli@0.2.23-beta.199\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ccode\u003e@​0.6.10...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.23-beta.199\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eCLI Beta \u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22-beta.198\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: add alias to ToolRouterAuthorizeFn type by \u003ca href=\"https://github.com/zen-agent\"\u003e\u003ccode\u003e@​zen-agent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3167\"\u003eComposioHQ/composio#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: update version by \u003ca href=\"https://github.com/haxzie\"\u003e\u003ccode\u003e@​haxzie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ComposioHQ/composio/pull/3168\"\u003eComposioHQ/composio#3168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ComposioHQ/composio/compare/@composio/cli@0.2.21...@composio/cli@0.2.22-beta.198\"\u003ehttps://github.com/ComposioHQ/composio/compare/\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.21...\u003c/code\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ccode\u003e@​0.2.22-beta.198\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cli\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.2.22\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [670ecc9]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.10\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pill...\n\n_Description has been truncated_","html_url":"https://github.com/vspaswin/awesome-llm-apps/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaswin%2Fawesome-llm-apps/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"0.4.1","new_version":"0.4.4","update_type":"patch","path":"/functions","pr_created_at":"2026-03-30T08:19:42.000Z","version_change":"0.4.1 → 0.4.4","issue":{"uuid":"4168601326","node_id":"PR_kwDOQ1pHjs7OiDKA","number":52,"state":"open","title":"deps(python): bump the python-minor group in /functions with 9 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-30T08:19:42.000Z","updated_at":"2026-03-30T08:21:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(python): bump","group_name":"python-minor","update_count":9,"packages":[{"name":"fastfeedparser","old_version":"0.5.8","new_version":"0.5.9","repository_url":"https://github.com/kagisearch/fastfeedparser"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"regex","old_version":"2026.2.28","new_version":"2026.3.32","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"anthropic","old_version":"0.84.0","new_version":"0.86.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"numpy","old_version":"2.4.2","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.3.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"}],"path":"/functions","ecosystem":"pip"},"body":"Bumps the python-minor group in /functions with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastfeedparser](https://github.com/kagisearch/fastfeedparser) | `0.5.8` | `0.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.3.32` |\n| [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) | `0.4.1` | `0.4.4` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.84.0` | `0.86.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.2` | `2.4.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.3.0` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n\nUpdates `fastfeedparser` from 0.5.8 to 0.5.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kagisearch/fastfeedparser/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.2.28 to 2026.3.32\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRe-uploaded.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.1.14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 596: Specifying {e\u0026lt;=0} causes ca 210× slow-down.\n\u003cp\u003eAdded RISC-V wheels.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2025.11.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 594: Support relative PARNO in recursive subpatterns.\n\u003c/code\u003e\u003c/pre\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/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.3.32\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.84.0 to 0.86.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.86.0\u003c/h2\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.85.0\u003c/h2\u003e\n\u003ch2\u003e0.85.0 (2026-03-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.84.0...v0.85.0\"\u003ev0.84.0...v0.85.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e chore(config): clean up model enum list (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/31\"\u003e#31\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/cce1a5b9e6fce4f269cec42803f37ce5e2ac2f76\"\u003ecce1a5b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e GA thinking-display-setting (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/207340cc621855928f53e8ddd58f216ac0d8150d\"\u003e207340c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e update mock server (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dc86a4ffc9e70533a58065496c78394c6a6e97a\"\u003e7dc86a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add missing 413 and 529 error handlers to async client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1554\"\u003e#1554\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9c2986fb9c046b4cffa1b03ca8762f9c9dea0bab\"\u003e9c2986f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etool runner:\u003c/strong\u003e propagate container_id for programmatic tool calling (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1462\"\u003e#1462\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3ae7ff6ff7af8a881706ae8068b1040a23c96fbd\"\u003e3ae7ff6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etools:\u003c/strong\u003e use filtered messages list in async compaction (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1124\"\u003e#1124\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/710d666f80b7667e3551c1a68d7c0ffaad115de1\"\u003e710d666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e bump uv version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09656acef77fa459d30d811bd51aa780a567182b\"\u003e09656ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c9e9fc240334fc466426646d7acd64904f881a80\"\u003ec9e9fc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/77f77d19b4657a7ad0d31de42504c25cf4ed76ef\"\u003e77f77d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e unskip tests that are now supported in steady (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/827330b527b4af299af084752a7317b0596956af\"\u003e827330b\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/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.85.0 (2026-03-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.84.0...v0.85.0\"\u003ev0.84.0...v0.85.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e chore(config): clean up model enum list (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/31\"\u003e#31\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/cce1a5b9e6fce4f269cec42803f37ce5e2ac2f76\"\u003ecce1a5b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e GA thinking-display-setting (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/207340cc621855928f53e8ddd58f216ac0d8150d\"\u003e207340c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e update mock server (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7dc86a4ffc9e70533a58065496c78394c6a6e97a\"\u003e7dc86a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add missing 413 and 529 error handlers to async client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1554\"\u003e#1554\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9c2986fb9c046b4cffa1b03ca8762f9c9dea0bab\"\u003e9c2986f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etool runner:\u003c/strong\u003e propagate container_id for programmatic tool calling (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1462\"\u003e#1462\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3ae7ff6ff7af8a881706ae8068b1040a23c96fbd\"\u003e3ae7ff6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etools:\u003c/strong\u003e use filtered messages list in async compaction (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1124\"\u003e#1124\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/710d666f80b7667e3551c1a68d7c0ffaad115de1\"\u003e710d666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e bump uv version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09656acef77fa459d30d811bd51aa780a567182b\"\u003e09656ac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c9e9fc240334fc466426646d7acd64904f881a80\"\u003ec9e9fc2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e codegen related update (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/77f77d19b4657a7ad0d31de42504c25cf4ed76ef\"\u003e77f77d1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e unskip tests that are now supported in steady (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/827330b527b4af299af084752a7317b0596956af\"\u003e827330b\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/anthropics/anthropic-sdk-python/commit/d7c0974ce6ab94ca135b10b2a45308203c0e0c7e\"\u003e\u003ccode\u003ed7c0974\u003c/code\u003e\u003c/a\u003e release: 0.86.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c46a3e4708fc7f79a00cc245c6f2b11189dd84c3\"\u003e\u003ccode\u003ec46a3e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/34045e490d9da94274c36f4333545eacb503d59c\"\u003e\u003ccode\u003e34045e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5ccd6b4122c83f5f1ca5bfefe496a6a257a1da21\"\u003e\u003ccode\u003e5ccd6b4\u003c/code\u003e\u003c/a\u003e feat: add support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/206252fcfa60a7d127e76c36d10bec8e47494fa4\"\u003e\u003ccode\u003e206252f\u003c/code\u003e\u003c/a\u003e chore(internal): tweak CI branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c5e5f3e7adf8d60b091116198f29f0b453c18d8d\"\u003e\u003ccode\u003ec5e5f3e\u003c/code\u003e\u003c/a\u003e fix(deps): bump minimum typing-extensions version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8669b920105a717deead3acf5b5085a2e9441b72\"\u003e\u003ccode\u003e8669b92\u003c/code\u003e\u003c/a\u003e fix(pydantic): do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e\u003ccode\u003e05220bc\u003c/code\u003e\u003c/a\u003e fix: AsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/be3dd143f464a6a11a8631b990aabdb348cb53c0\"\u003e\u003ccode\u003ebe3dd14\u003c/code\u003e\u003c/a\u003e release: 0.85.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc9f47e8e4feaaefaef125f80de9e6177d2c3283\"\u003e\u003ccode\u003efc9f47e\u003c/code\u003e\u003c/a\u003e feat(api): GA thinking-display-setting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.84.0...v0.86.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.2 to 2.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.4 (Mar 29, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.4 is a patch release that fixes bugs discovered after the 2.4.3\nrelease. It should finally close issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e, the OpenBLAS threading problem\non ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 8 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eDaniel Haag +\u003c/li\u003e\n\u003cli\u003eDenis Prokopenko +\u003c/li\u003e\n\u003cli\u003eHarshith J +\u003c/li\u003e\n\u003cli\u003eKoki Watanabe\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 7 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30978\"\u003e#30978\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31049\"\u003e#31049\u003c/a\u003e: BUG: Add test to reproduce problem described in \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30818\"\u003e#30818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31052\"\u003e#31052\u003c/a\u003e: BUG: fix FNV-1a 64-bit selection by using NPY_SIZEOF_UINTP (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31035\"\u003e#31035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31053\"\u003e#31053\u003c/a\u003e: BUG: avoid warning on ufunc with where=True and no output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31058\"\u003e#31058\u003c/a\u003e: DOC: document caveats of ndarray.resize on 3.14 and newer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31079\"\u003e#31079\u003c/a\u003e: TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31084\"\u003e#31084\u003c/a\u003e: MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 11 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAntareep Sarkar +\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/numpy/numpy/commit/be93fe2960dbf49b4647f5783c66d967fb2c65b5\"\u003e\u003ccode\u003ebe93fe2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31090\"\u003e#31090\u003c/a\u003e from charris/prepare-2.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f5245dc7ea5c6279c59cb0d5de81113229841290\"\u003e\u003ccode\u003ef5245dc\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/02e838ba270a5ca3dd8afc5a31c090cd34a56615\"\u003e\u003ccode\u003e02e838b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31084\"\u003e#31084\u003c/a\u003e from charris/backport-31056\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fa74b2d05f8f7604bf6635d5280c3216c8ec667f\"\u003e\u003ccode\u003efa74b2d\u003c/code\u003e\u003c/a\u003e MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31056\"\u003e#31056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/533a6db96dfa2556a61102a58c35fd64eaf3fa2b\"\u003e\u003ccode\u003e533a6db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31079\"\u003e#31079\u003c/a\u003e from charris/backport-20801\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9e496cbd0a281195bd779ae1833f2a8f4a1d46a7\"\u003e\u003ccode\u003e9e496cb\u003c/code\u003e\u003c/a\u003e TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8052c4b69ef18e582709af946f93f9e58b848f39\"\u003e\u003ccode\u003e8052c4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31058\"\u003e#31058\u003c/a\u003e from charris/backport-31021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7f13b5ad2b69fd6ea6aa3af7036b2dcf98e96486\"\u003e\u003ccode\u003e7f13b5a\u003c/code\u003e\u003c/a\u003e MAINT: Skip test on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4c5fdd66c8f379a1e2b3f40fa62bd0b87769d1c7\"\u003e\u003ccode\u003e4c5fdd6\u003c/code\u003e\u003c/a\u003e MAINT: Remove unused import of tracemalloc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a3ca5ed354b26e0fd6e35bf29765a24271ed7c3a\"\u003e\u003ccode\u003ea3ca5ed\u003c/code\u003e\u003c/a\u003e Update numpy/_core/src/multiarray/shape.c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.2...v2.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torch` from 2.10.0 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.11.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the \u003ca href=\"https://pytorch.org/blog/pytorch-2-11-release-blog/\"\u003erelease blogpost\u003c/a\u003e. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eRelease Engineering\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/pytorch/pytorch/commit/70d99e998b4955e0049d13a98d77ae1b14db1f45\"\u003e\u003ccode\u003e70d99e9\u003c/code\u003e\u003c/a\u003e [release only] Increase timeout for rocm libtorch and manywheel builds (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/178006\"\u003e#178006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/3e05c5a9ca8aacd0d137541876f8bf4cfca7e940\"\u003e\u003ccode\u003e3e05c5a\u003c/code\u003e\u003c/a\u003e [MPS] Properly handle conjugated tensors in bmm (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/178010\"\u003e#178010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/db741c72097871e384b22ee6fff1d6083adf23cc\"\u003e\u003ccode\u003edb741c7\u003c/code\u003e\u003c/a\u003e [MPS] fix compiling of SDPA producing nan results (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/178009\"\u003e#178009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/483b55d84c74b92b3c2c67be4b9b7c7359ec2bbc\"\u003e\u003ccode\u003e483b55d\u003c/code\u003e\u003c/a\u003e Update pytorch_sphinx_theme2 version to 0.4.6 (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/177616\"\u003e#177616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/7f2cdeb75b76bf07bb73776444bbb94456adbfa0\"\u003e\u003ccode\u003e7f2cdeb\u003c/code\u003e\u003c/a\u003e [windows][smoke test] Add an option to install cuda if required cuda/cudnn on...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/76fd07897dd9126df160e9723d97511b79888087\"\u003e\u003ccode\u003e76fd078\u003c/code\u003e\u003c/a\u003e [release-only] Fix libtorch builds. Fix lint (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/177299\"\u003e#177299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/fa384de31efe6548e694758d47ff295f2c2edb57\"\u003e\u003ccode\u003efa384de\u003c/code\u003e\u003c/a\u003e [Inductor][MPS] Fix half-precision type mismatches in Metal shader codegen (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/036b25f5a29dc58cbc62e7b976efb860ff128c3f\"\u003e\u003ccode\u003e036b25f\u003c/code\u003e\u003c/a\u003e Let stable::from_blob accept a lambda as deleter (cherry-pick) (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/176440\"\u003e#176440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/41f8e3e0381395e1669ca4bc6e36a7872d25cdcd\"\u003e\u003ccode\u003e41f8e3e\u003c/code\u003e\u003c/a\u003e [CI] Stop using G3 runners (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/177161\"\u003e#177161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e2fa2953033020ad7e0f823ec534044fac15a3c7\"\u003e\u003ccode\u003ee2fa295\u003c/code\u003e\u003c/a\u003e [CD] Unpin cuda-bindings dependencies (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/177159\"\u003e#177159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.10.0...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.2.3 to 5.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.0 - Improved Contrastive Learning, New Losses, and Transformers v5 Compatibility\u003c/h2\u003e\n\u003cp\u003eThis minor version brings several improvements to contrastive learning: \u003ccode\u003eMultipleNegativesRankingLoss\u003c/code\u003e now supports alternative InfoNCE formulations (symmetric, GTE-style) and optional hardness weighting for harder negatives. Two new losses are introduced, \u003ccode\u003eGlobalOrthogonalRegularizationLoss\u003c/code\u003e for embedding space regularization and \u003ccode\u003eCachedSpladeLoss\u003c/code\u003e for memory-efficient SPLADE training. The release also adds a faster hashed batch sampler, fixes \u003ccode\u003eGroupByLabelBatchSampler\u003c/code\u003e for triplet losses, and ensures full compatibility with the latest Transformers v5 versions.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\r\npip install sentence-transformers[train]==5.3.0\r\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.3.0\npip install sentence-transformers[onnx-gpu]==5.3.0\npip install sentence-transformers[onnx]==5.3.0\npip install sentence-transformers[openvino]==5.3.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eUpdated MultipleNegativesRankingLoss (a.k.a. InfoNCE)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eMultipleNegativesRankingLoss\u003c/code\u003e received two major upgrades: support for alternative InfoNCE formulations from the literature, and optional hardness weighting to up-weight harder negatives.\u003c/p\u003e\n\u003ch3\u003eSupport other InfoNCE variants (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3607\"\u003e#3607\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eMultipleNegativesRankingLoss\u003c/code\u003e now supports several well-known contrastive loss variants from the literature through new \u003ccode\u003edirections\u003c/code\u003e and \u003ccode\u003epartition_mode\u003c/code\u003e parameters. Previously, this loss only supported the standard forward direction (query → doc). You can now configure which similarity interactions are included in the loss:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;query_to_doc\u0026quot;\u003c/code\u003e (default): For each query, its matched document should score higher than all other documents.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;doc_to_query\u0026quot;\u003c/code\u003e: The symmetric reverse — for each document, its matched query should score higher than all other queries.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;query_to_query\u0026quot;\u003c/code\u003e: For each query, all other queries should score lower than its matched document.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;doc_to_doc\u0026quot;\u003c/code\u003e: For each document, all other documents should score lower than its matched query.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ccode\u003epartition_mode\u003c/code\u003e controls how scores are normalized: \u003ccode\u003e\u0026quot;joint\u0026quot;\u003c/code\u003e computes a single softmax over all directions, while \u003ccode\u003e\u0026quot;per_direction\u0026quot;\u003c/code\u003e computes a separate softmax per direction and averages the losses.\u003c/p\u003e\n\u003cp\u003eThese combine to reproduce several loss formulations from the literature:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eStandard InfoNCE\u003c/strong\u003e (default, unchanged behavior):\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eloss = MultipleNegativesRankingLoss(model)\r\n# equivalent to directions=(\u0026quot;query_to_doc\u0026quot;,), partition_mode=\u0026quot;joint\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eSymmetric InfoNCE\u003c/strong\u003e (\u003ca href=\"https://arxiv.org/abs/2310.19923\"\u003eGünther et al. 2024\u003c/a\u003e) — adds the reverse direction so both queries and documents are trained to find their match:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eloss = MultipleNegativesRankingLoss(\r\n    model,\r\n    directions=(\u0026quot;query_to_doc\u0026quot;, \u0026quot;doc_to_query\u0026quot;),\r\n    partition_mode=\u0026quot;per_direction\u0026quot;,\r\n)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eGTE improved contrastive loss\u003c/strong\u003e (\u003ca href=\"https://arxiv.org/abs/2308.03281\"\u003eLi et al. 2023\u003c/a\u003e) — adds same-type negatives (query \u0026lt;-\u0026gt; query, doc \u0026lt;-\u0026gt; doc) for a stronger training signal, especially useful with pairs-only data:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eloss = MultipleNegativesRankingLoss(\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/sentence-transformers/commit/ce48ecc77f8c7ed97c8fcc3cd99fde6071206680\"\u003e\u003ccode\u003ece48ecc\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.3-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/cec08f89aabaa11a1675529fb7b11618c8255622\"\u003e\u003ccode\u003ecec08f8\u003c/code\u003e\u003c/a\u003e Fix citation for EmbeddingGemma paper (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3687\"\u003e#3687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/c29b3a69f7eca78d613fc2e465989ee880216c8d\"\u003e\u003ccode\u003ec29b3a6\u003c/code\u003e\u003c/a\u003e Release v5.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/55c13de47ea9475b1416a34af36716cc477bd95f\"\u003e\u003ccode\u003e55c13de\u003c/code\u003e\u003c/a\u003e Prep docs main page for v5.3.0 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3686\"\u003e#3686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/72e75f7868700a768f6c57fb16e76b18df250f72\"\u003e\u003ccode\u003e72e75f7\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003etests\u003c/code\u003e] Add slow reproduction tests for most common models (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3681\"\u003e#3681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/237e44151758a9b4eb86b1ecd73152884073549a\"\u003e\u003ccode\u003e237e441\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efix\u003c/code\u003e] Fix model card generation with set_transform with new column names (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/7f180b4b7146af66e2b043cdaa89bf87babe28bc\"\u003e\u003ccode\u003e7f180b4\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003efeat\u003c/code\u003e] Add hardness-weighted contrastive learning to losses (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3667\"\u003e#3667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/58900864d51cde2f918885587709b2466938422c\"\u003e\u003ccode\u003e5890086\u003c/code\u003e\u003c/a\u003e Disallow query_to_query/doc_to_doc with partition_mode=\u0026quot;per_direction\u0026quot; due to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/6518c36671294b2125506f0d382d04102f739c91\"\u003e\u003ccode\u003e6518c36\u003c/code\u003e\u003c/a\u003e CE trainer: Removed IterableDataset from train and eval dataset type hints (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/1e0e84cbfb5483ffe1a5ff7db459c67a61487f3f\"\u003e\u003ccode\u003e1e0e84c\u003c/code\u003e\u003c/a\u003e Add tips for adjusting batch size to improve processing speed (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3672\"\u003e#3672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.2.3...v5.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `spacy` from 3.8.11 to 3.8.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/explosion/spaCy/releases\"\u003espacy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.14: Bug fix for model downloading in environments without pip on PATH\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003espacy download\u003c/code\u003e failing in environments where \u003ccode\u003epip\u003c/code\u003e is not on PATH but is available as a Python module (e.g., some virtual environments and containers)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.8.13: Pin confection to new version\u003c/h2\u003e\n\u003cp\u003eThe v3.8.12 release didn't update the confection pin, which meant that if you did an upgrade-install models wouldn't load.\u003c/p\u003e\n\u003ch2\u003ev3.8.12\u003c/h2\u003e\n\u003cp\u003eUse confection v1.3 and Thinc v8.3.13, which implement custom validation logic in place of Pydantic, allowing us to properly adopt Pydantic v2 and provide full Python 3.14 support.\u003c/p\u003e\n\u003cp\u003eOur dependency tree used Pydantic v1 in unusual ways, and relied on behaviours that Pydantic v2 reformed. In the time since Pydantic v2 was released there were a few attempts to migrate over to it, but the task has been complicated by the fact that the confection library has a fairly tangled implementation and I had reduced availability for open-source work in 2024 and 2025.\u003c/p\u003e\n\u003cp\u003eSpecifically, our library confection provides the extensible configuration system we use in spaCy and Thinc. The config system allows you to refer to values that will be supplied by arbitrary functions, that e.g. define some neural network model or its sublayers. The functionality in confection is complicated because we aggressively prioritised user experience in the specification, even if it required increased implementation complexity.\u003c/p\u003e\n\u003cp\u003eConfection's original implementation built a dynamic Pydantic v1 schema for function-supplied values (\u0026quot;promises\u0026quot;). We validate the schema before calling any promises, and then validate the schema again after calling all the promises and substituting in their values. The variable-interpolation system adds further difficulties to the implementation, and we have to do it all subclassing the Python built-in configparser, which ties us to implementation choices I'd do differently if I had a clean slate.\u003c/p\u003e\n\u003cp\u003eHere's one summary of Pydantic v1-specific behaviours that the migration to v2 particularly difficult for us. This particular summary was produced during a session with Claude Code Opus 4.6, so nuances of it might be wrong. The full history of attempts at doing this spans over different refactors separated by a few months at a time, so I don't have a full record of all the things that I struggled with. It's possible some details of this summary are incorrect though.\u003c/p\u003e\n\u003cp\u003eThe core problem we kept hitting: Pydantic v2 compiles validation schemas upfront and has much stricter immutability. The whole session has been a series of workarounds for this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e 1. Schema mutation — v1 let you mutate __fields__ in place; v2 needs model_rebuild() which loses forward ref namespaces, or create_model subclasses which don't propagate to parent schemas.\r\n 2. model_dump vs dict — v2 converts dataclasses to dicts, breaking resolved objects. Needed a custom _model_to_dict helper.\r\n 3. model_construct drops extras — v2 silently drops fields with extra=\u0026quot;forbid\u0026quot;, needed manual workarounds.\r\n 4. Strict coercion — v2 coerces ndarray to List[Floats1d] via iteration, needed strict=True.\r\n 5. Forward refs — Every schema with TYPE_CHECKING imports needs model_rebuild() with the right namespace, and that breaks when confection re-rebuilds later.\r\nIn order to adjust for behavioural differences like this, I'd refactored confection to build the different versions of the schema in multiple passes, instead of building all the representations together as we'd been doing. However this refactor itself had problems, further complicating the migration.\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eI've now bitten the bullet and rolled back the refactor I'd been attempting of confection, and instead replaced the Pydantic validation with custom logic. This allows Confection to remove Pydantic as a dependency entirely.~ Update: Actually I went back and got the refactor working. All much nicer now.\u003c/p\u003e\n\u003cp\u003eI've taken some lengths to explain this because migrating off a dependency after breaking changes can be a sensitive topic. I want to stress that the changes Pydantic made from v1 to v2 are very good, and I greatly appreciate them as a user of FastAPI in our services. It would be very bad for the ecosystem if Pydantic pinned themselves to exactly matching the behaviours they had in v1 just to avoid breaking support for the sort of thing we'd been doing. Instead users who were relying on those behaviours like us should just find some way to adapt --- either vendor the v1 version we need, or change our behaviours, or implement an alternative. I would have liked to do this sooner but we've ultimately gone with the third option.\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/explosion/spaCy/commit/0069cf99b60023363ba5f47404819f59c8a39b3e\"\u003e\u003ccode\u003e0069cf9\u003c/code\u003e\u003c/a\u003e Set version to 3.8.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/56032260f2d37981682d6685b2a124346b60cca7\"\u003e\u003ccode\u003e5603226\u003c/code\u003e\u003c/a\u003e fix: check pip module availability instead of PATH binary in download (\u003ca href=\"https://redirect.github.com/explosion/spaCy/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/d4bb796b5ed3d0bd65d0af6b1e26ebc181c3aef1\"\u003e\u003ccode\u003ed4bb796\u003c/code\u003e\u003c/a\u003e Add least-privilege permissions to CI workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/9d29209d0486f315773c890c25db34c07a888654\"\u003e\u003ccode\u003e9d29209\u003c/code\u003e\u003c/a\u003e Pass github context via stdin instead of CLI arg\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/4216738cf83719938d5bafc29fb61537d758baf1\"\u003e\u003ccode\u003e4216738\u003c/code\u003e\u003c/a\u003e Pin GitHub Actions to commit SHAs for supply chain security\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/297938e7040d5b4866d65d2d11dd113a1146ba89\"\u003e\u003ccode\u003e297938e\u003c/code\u003e\u003c/a\u003e Add smoke test and upgrade test to release build workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/fdca647b1b07cca7ac36adc78fedaea908b0d168\"\u003e\u003ccode\u003efdca647\u003c/code\u003e\u003c/a\u003e Set version to 3.8.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/0d94a9d66dd6a754fa958db2fd20ce60ff908c94\"\u003e\u003ccode\u003e0d94a9d\u003c/code\u003e\u003c/a\u003e Pin confection\u0026gt;=1.3.2 — older versions crash with pydantic v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/f175a51e2df36f16d473c7b62a0b9b8563ebb773\"\u003e\u003ccode\u003ef175a51\u003c/code\u003e\u003c/a\u003e Fully migrate to Pydantic v2 (\u003ca href=\"https://redirect.github.com/explosion/spaCy/issues/13940\"\u003e#13940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/24255bd1e25c7275553325d989bfcfd3a41fc1d2\"\u003e\u003ccode\u003e24255bd\u003c/code\u003e\u003c/a\u003e Fix import sorting for ruff isort compliance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/explosion/spaCy/compare/release-v3.8.11...release-v3.8.14\"\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/GeorgeA123/todays-news/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgeA123%2Ftodays-news/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"}},{"old_version":"0.4.1","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-03-26T01:53:05.000Z","version_change":"0.4.1 → 0.4.4","issue":{"uuid":"4139809977","node_id":"PR_kwDONzExCc7Ni8XY","number":3,"state":"open","title":"Bump the pip group across 12 directories with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":7,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-26T01:53:05.000Z","updated_at":"2026-03-26T01:57:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":8,"packages":[{"name":"pillow","old_version":"10.4.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"10.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"browser-use","old_version":"0.1.26","new_version":"0.1.45","repository_url":"https://github.com/browser-use/browser-use"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"lxml-html-clean","old_version":"0.4.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"composio","old_version":"0.1.1","new_version":"0.8.0","repository_url":"https://github.com/composiohq/composio"},{"name":"pillow","old_version":"11.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"langgraph","old_version":"0.2.53","new_version":"1.0.10rc1","repository_url":"https://github.com/langchain-ai/langgraph"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 1 update in the /ai_agent_tutorials/ai_data_visualisation_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_lead_generation_agent directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_medical_imaging_agent directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_meme_generator_agent_browseruse directory: [browser-use](https://github.com/browser-use/browser-use).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_recruitment_agent_team directory: [requests](https://github.com/psf/requests).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_startup_trend_analysis_agent directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\nBumps the pip group with 1 update in the /ai_agent_tutorials/ai_teaching_agent_team directory: [composio](https://github.com/composiohq/composio).\nBumps the pip group with 1 update in the /ai_agent_tutorials/multimodal_design_agent_team directory: [pillow](https://github.com/python-pillow/Pillow).\nBumps the pip group with 3 updates in the /rag_tutorials/corrective_rag directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 1 update in the /rag_tutorials/gemini_agentic_rag directory: [langchain-community](https://github.com/langchain-ai/langchain).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_agent_cohere directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain) and [langchain-core](https://github.com/langchain-ai/langchain).\nBumps the pip group with 3 updates in the /rag_tutorials/rag_database_routing directory: [langgraph](https://github.com/langchain-ai/langgraph), [langchain-community](https://github.com/langchain-ai/langchain) and [langchain-core](https://github.com/langchain-ai/langchain).\n\nUpdates `pillow` from 10.4.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/claude-agent-sdk\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e8dc5568: Add \u003ccode\u003eworkbench.enable\u003c/code\u003e option to session config for disabling the workbench entirely. When set to \u003ccode\u003efalse\u003c/code\u003e, code execution tools (COMPOSIO_REMOTE_WORKBENCH, COMPOSIO_REMOTE_BASH_TOOL) are excluded from the session. Defaults to \u003ccode\u003etrue\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/llamaindex\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/mastra\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 10.0.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `browser-use` from 0.1.26 to 0.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/browser-use/browser-use/releases\"\u003ebrowser-use's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e✨Add NEW interactive CLI  like \u003ccode\u003eclaude\u003c/code\u003e code for \u003ccode\u003ebrowser-use\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1559\"\u003ebrowser-use/browser-use#1559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e💔 BREAKING CHANGE: \u003ccode\u003eBrowserWindowContextSize\u003c/code\u003e object removed, switch to flat attrs instead. sorry for the trouble!\nchange: \u003ccode\u003eBrowserContextConfig(window_size=BrowserWindowContextSize(width=1280, height=900)\u003c/code\u003e\nto: flat \u003ccode\u003eBrowserContextConfig(window_width=1280, window_height=900)\u003c/code\u003e, used for viewport as well when \u003ccode\u003eno_viewport=False\u003c/code\u003e\nin \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1557\"\u003ebrowser-use/browser-use#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix security issue with url parsing of \u003ccode\u003eallowed_domains\u003c/code\u003e by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1561\"\u003ebrowser-use/browser-use#1561\u003c/a\u003e\n_ _\u003c/li\u003e\n\u003cli\u003efix(eval): update GOOGLE_API_KEY comment to GEMINI_API_KEY by \u003ca href=\"https://github.com/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Make viewport_expansion=-1 parameter work properly to include all page elements by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1552\"\u003ebrowser-use/browser-use#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add caching for client rects and improve highlight cleanup logic by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add cursor:pointer handling in buildDomTree and update test URLs to handle expander icons by \u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1502\"\u003ebrowser-use/browser-use#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremoving the browser channel from the _setup_browser in browser.py by \u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove anti-bot fingerprint detection, should work with cloudflare sites and google logins now\u003c/li\u003e\n\u003cli\u003eLowering the z-index by \u003ca href=\"https://github.com/os1rix\"\u003e\u003ccode\u003e@​os1rix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1545\"\u003ebrowser-use/browser-use#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Azure OpenAI API GPT-4 by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1532\"\u003ebrowser-use/browser-use#1532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure contenteditable fields are interactable by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1548\"\u003ebrowser-use/browser-use#1548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Google Sheets support directly in main controller by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1550\"\u003ebrowser-use/browser-use#1550\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/morugu\"\u003e\u003ccode\u003e@​morugu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1554\"\u003ebrowser-use/browser-use#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/satya-nutella\"\u003e\u003ccode\u003e@​satya-nutella\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1551\"\u003ebrowser-use/browser-use#1551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmajor74\"\u003e\u003ccode\u003e@​pmajor74\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1538\"\u003ebrowser-use/browser-use#1538\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.43...0.1.45\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.43\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevise README.md to enhance clarity and organization of features, inc… by \u003ca href=\"https://github.com/MagMueller\"\u003e\u003ccode\u003e@​MagMueller\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1540\"\u003ebrowser-use/browser-use#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit tests for controller actions that automatically run on CI by \u003ca href=\"https://github.com/Anirudha619\"\u003e\u003ccode\u003e@​Anirudha619\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1518\"\u003ebrowser-use/browser-use#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade to automatically upgrade python syntax over time by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1544\"\u003ebrowser-use/browser-use#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Terminal reset sequence when exiting with Ctrl+C  by \u003ca href=\"https://github.com/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix faiss-cpu by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1546\"\u003ebrowser-use/browser-use#1546\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/pyoneerC\"\u003e\u003ccode\u003e@​pyoneerC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1534\"\u003ebrowser-use/browser-use#1534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\"\u003ehttps://github.com/browser-use/browser-use/compare/0.1.42...0.1.43\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.1.42\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 0.1.41 officially by \u003ca href=\"https://github.com/pirate\"\u003e\u003ccode\u003e@​pirate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1401\"\u003ebrowser-use/browser-use#1401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: newlines in attribute values by \u003ca href=\"https://github.com/edwardysun\"\u003e\u003ccode\u003e@​edwardysun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1413\"\u003ebrowser-use/browser-use#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Make memory module optional for Python 3.13 compatibility by \u003ca href=\"https://github.com/lynnzc\"\u003e\u003ccode\u003e@​lynnzc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1418\"\u003ebrowser-use/browser-use#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMem0: Embedder config for different LLMs by \u003ca href=\"https://github.com/Dev-Khant\"\u003e\u003ccode\u003e@​Dev-Khant\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/browser-use/browser-use/pull/1388\"\u003ebrowser-use/browser-use#1388\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/browser-use/browser-use/commit/2969f4363714fb4d1336456922f1aeb4b65a1e9b\"\u003e\u003ccode\u003e2969f43\u003c/code\u003e\u003c/a\u003e bump version to 0.1.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/cd2fc9178b20f1a9818bb704f301a043da194ce7\"\u003e\u003ccode\u003ecd2fc91\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1561\"\u003e#1561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/3a1fa0f506ca250990d51a5c46b4b098be098f25\"\u003e\u003ccode\u003e3a1fa0f\u003c/code\u003e\u003c/a\u003e add test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/ebdeb613f7bdcbdc9d32eb1b850b9b8c8f71dfae\"\u003e\u003ccode\u003eebdeb61\u003c/code\u003e\u003c/a\u003e fix security issue with url parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/5a45bf836ca93e3668f5678db0386c1e6d773a1b\"\u003e\u003ccode\u003e5a45bf8\u003c/code\u003e\u003c/a\u003e Add ALPHA browser-use CLI (\u003ca href=\"https://redirect.github.com/browser-use/browser-use/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/24e3ee28e3e79462ac4eff09e1be197fb971332d\"\u003e\u003ccode\u003e24e3ee2\u003c/code\u003e\u003c/a\u003e improve readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/04f55e69a1abeee4a85ba60505f2f6fcc9a553f3\"\u003e\u003ccode\u003e04f55e6\u003c/code\u003e\u003c/a\u003e tweak colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/4b6959fad008ee4b7f235e9c835acd606dc9bd61\"\u003e\u003ccode\u003e4b6959f\u003c/code\u003e\u003c/a\u003e bump package versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/f372410f6bf336c23398b8f63cd2757e345452c0\"\u003e\u003ccode\u003ef372410\u003c/code\u003e\u003c/a\u003e working panes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/browser-use/browser-use/commit/c14807a2ae6ab8e8c3b0f0d5ce89ad49c9d79245\"\u003e\u003ccode\u003ec14807a\u003c/code\u003e\u003c/a\u003e working with multiple panels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/browser-use/browser-use/compare/0.1.26...0.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `composio` from 0.1.1 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/composiohq/composio/releases\"\u003ecomposio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/anthropic\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/claude-agent-sdk\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/cloudflare\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e8dc5568: Add \u003ccode\u003eworkbench.enable\u003c/code\u003e option to session config for disabling the workbench entirely. When set to \u003ccode\u003efalse\u003c/code\u003e, code execution tools (COMPOSIO_REMOTE_WORKBENCH, COMPOSIO_REMOTE_BASH_TOOL) are excluded from the session. Defaults to \u003ccode\u003etrue\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/google\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/langchain\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/llamaindex\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/mastra\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies [8dc5568]\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​composio/core\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e@​composio/openai-agents\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.6.7\u003c/h2\u003e\n\u003ch3\u003ePatch Changes\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\u003eSee full diff in \u003ca href=\"https://github.com/composiohq/composio/commits/v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.0.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\u003e\n\u003ch2\u003e11.1.0 and newer\u003c/h2\u003e\n\u003cp\u003eSee GitHub Releases:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003ehttps://github.com/python-pillow/Pillow/releases\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e11.0.0 (2024-10-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate licence to MIT-CMU \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8460\"\u003e#8460\u003c/a\u003e\n[hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConditionally define ImageCms type hint to avoid requiring core \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8197\"\u003e#8197\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport writing LONG8 offsets in AppendingTiffWriter \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8417\"\u003e#8417\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImageFile.MAXBLOCK when saving TIFF images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8461\"\u003e#8461\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not close provided file handles with libtiff when saving \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8458\"\u003e#8458\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport ImageFilter.BuiltinFilter for I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8438\"\u003e#8438\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse ImagingCore.ptr instead of ImagingCore.id \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8341\"\u003e#8341\u003c/a\u003e\n[homm, radarhere, hugovk]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated EPS mode when opening images without transparency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8281\"\u003e#8281\u003c/a\u003e\n[Yay295, radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse transparency when combining P frames from APNGs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8443\"\u003e#8443\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport all resampling filters when resizing I;16* images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8422\"\u003e#8422\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFree memory on early return \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8413\"\u003e#8413\u003c/a\u003e\n[radarhere]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCast int before potentially exceeding INT_MAX \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8402\"\u003e#8402\u003c/a\u003e\n[radarhere]\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/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/10.4.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langgraph` from 0.2.53 to 1.0.10rc1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langgraph/releases\"\u003elanggraph's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elanggraph==1.0.10rc1\u003c/h2\u003e\n\u003cp\u003eChanges since 1.0.9\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease: Candidate (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6947\"\u003e#6947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMerge commit from fork\u003c/li\u003e\n\u003cli\u003echore: add tests to confirm expected subgraph persistence behavior (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6943\"\u003e#6943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(langgraph): correct ParentCommand bubbling when checkpoint_ns includes numeric task segments  (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6864\"\u003e#6864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: add \u003ccode\u003emake type\u003c/code\u003e target for type checking (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6748\"\u003e#6748\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003elanggraph==1.0.9\u003c/h2\u003e\n\u003cp\u003eChanges since 1.0.8\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease: langgraph + prebuilt (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6875\"\u003e#6875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: sequential interrupt handling w/ functional API (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6863\"\u003e#6863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: state_updated_at sort by (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6857\"\u003e#6857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: bump orjson (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6852\"\u003e#6852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: conformance testing (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6842\"\u003e#6842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump the all-dependencies group in /libs/langgraph with 6 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6815\"\u003e#6815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump protobuf from 6.33.4 to 6.33.5 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6833\"\u003e#6833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump cryptography from 46.0.3 to 46.0.5 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6837\"\u003e#6837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): bump nbconvert from 7.16.6 to 7.17.0 in /libs/langgraph (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6832\"\u003e#6832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: server runtime type (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6774\"\u003e#6774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefactor: replace bare except with BaseException in AsyncQueue (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6765\"\u003e#6765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003elanggraph==1.0.8\u003c/h2\u003e\n\u003cp\u003eChanges since 1.0.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease(langgraph): 1.0.8 (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6757\"\u003e#6757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: shallow copy futures (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6755\"\u003e#6755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: pydantic messages double streaming (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6753\"\u003e#6753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump ruff from 0.14.7 to 0.14.11 in /libs/sdk-py (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6673\"\u003e#6673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Omit lock when using connection pool (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6734\"\u003e#6734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: enhance \u003ccode\u003eRuntime\u003c/code\u003e and \u003ccode\u003eToolRuntime\u003c/code\u003e class descriptions for clarity (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6689\"\u003e#6689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: add clarity to use of \u003ccode\u003ethread_id\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langgraph/issues/6515\"\u003e#6515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: add docstrings to \u003ccode\u003eadd_n...\n\n_Description has been truncated_\n\n\u003cdiv id='description'\u003e\n\u003ca href=\"https://bito.ai#summarystart\"\u003e\u003c/a\u003e\u003ch3\u003eSummary by Bito\u003c/h3\u003e\u003cul\u003e\u003cli\u003eUpdated Pillow versions across multiple AI agent tutorials (ai_data_visualisation_agent, ai_medical_imaging_agent, multimodal_design_agent_team) from various 10.x and 11.x versions to 12.1.1.\u003c/li\u003e\n\u003cli\u003eUpgraded composio package in ai_lead_generation_agent and ai_teaching_agent_team from 0.1.1 to 0.8.0.\u003c/li\u003e\n\u003cli\u003eBumped browser-use in ai_meme_generator_agent_browseruse from 0.1.26 to 0.1.45.\u003c/li\u003e\n\u003cli\u003eUpdated requests in ai_recruitment_agent_team from 2.32.3 to 2.33.0 and lxml_html_clean in ai_startup_trend_analysis_agent from 0.4.1 to 0.4.4.\u003c/li\u003e\n\u003cli\u003eModified langchain-related packages in RAG tutorials (corrective_rag, gemini_agentic_rag, rag_agent_cohere, rag_database_routing): langgraph to 1.0.10rc1, langchain-community to 0.3.27, and langchain-core to 1.2.11.\u003c/li\u003e\n\u003c/ul\u003e\u003c/div\u003e","html_url":"https://github.com/RemyLoveLogicAI/awesome-llm-apps/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/RemyLoveLogicAI%2Fawesome-llm-apps/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"0.3.1","new_version":"0.4.4","update_type":"minor","path":null,"pr_created_at":"2026-03-18T14:12:46.000Z","version_change":"0.3.1 → 0.4.4","issue":{"uuid":"4095412869","node_id":"PR_kwDOPGSG_s7LjrAf","number":46,"state":"closed","title":"Bump the pip group across 23 directories with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-18T22:36:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-18T14:12:46.000Z","updated_at":"2026-03-18T22:36:23.000Z","time_to_close":30215,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":10,"packages":[{"name":"fastmcp","old_version":"2.3.4","new_version":"2.14.2","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"lxml-html-clean","old_version":"0.3.1","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"pypdf","old_version":"4.3.1","new_version":"6.8.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"keras","old_version":"3.5.0","new_version":"3.13.2","repository_url":"https://github.com/keras-team/keras"},{"name":"black","old_version":"24.3.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"pypdf","old_version":"5.0.0","new_version":"6.8.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"authlib","old_version":"1.3.1","new_version":"1.6.9","repository_url":"https://github.com/authlib/authlib"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 3 updates in the /integrations/a0ml directory: [fastmcp](https://github.com/PrefectHQ/fastmcp), [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) and [pypdf](https://github.com/py-pdf/pypdf).\nBumps the pip group with 1 update in the /integrations/ggml-org-central/ggml directory: [keras](https://github.com/keras-team/keras).\nBumps the pip group with 1 update in the /integrations/kokkos-central/llvm-project/llvm/utils/git directory: [black](https://github.com/psf/black).\nBumps the pip group with 3 updates in the /integrations/mem0/embedchain directory: [pypdf](https://github.com/py-pdf/pypdf), [authlib](https://github.com/authlib/authlib) and [pyasn1](https://github.com/pyasn1/pyasn1).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/embedchain/deployment/gradio.app directory: [gradio](https://github.com/gradio-app/gradio).\nBumps the pip group with 2 updates in the /integrations/mem0/embedchain/examples/api_server directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/examples/full_stack/backend directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /integrations/mem0/embedchain/examples/rest-api directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/examples/slack_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/examples/telegram_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /integrations/mem0/embedchain/examples/whatsapp_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 3 updates in the /integrations/mem0/mem0_temp/embedchain directory: [pypdf](https://github.com/py-pdf/pypdf), [authlib](https://github.com/authlib/authlib) and [pyasn1](https://github.com/pyasn1/pyasn1).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/embedchain/deployment/gradio.app directory: [gradio](https://github.com/gradio-app/gradio).\nBumps the pip group with 2 updates in the /integrations/mem0/mem0_temp/embedchain/examples/api_server directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/examples/full_stack/backend directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /integrations/mem0/mem0_temp/embedchain/examples/rest-api directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/examples/slack_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/examples/telegram_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 1 update in the /integrations/mem0/mem0_temp/embedchain/examples/whatsapp_bot directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 3 updates in the /integrations/mem0_temp/embedchain directory: [pypdf](https://github.com/py-pdf/pypdf), [authlib](https://github.com/authlib/authlib) and [pyasn1](https://github.com/pyasn1/pyasn1).\nBumps the pip group with 1 update in the /integrations/mem0_temp/embedchain/examples/full_stack/backend directory: [flask](https://github.com/pallets/flask).\nBumps the pip group with 2 updates in the /integrations/mem0_temp/embedchain/examples/rest-api directory: [flask](https://github.com/pallets/flask) and [yt-dlp](https://github.com/yt-dlp/yt-dlp).\nBumps the pip group with 1 update in the /integrations/mem0_temp/embedchain/examples/telegram_bot directory: [flask](https://github.com/pallets/flask).\n\nUpdates `fastmcp` from 2.3.4 to 2.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases\"\u003efastmcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.2: Port Authority\u003c/h2\u003e\n\u003cp\u003eFastMCP 2.14.2 brings a wave of community contributions safely into the 2.x line. A variety of important fixes backported from 3.0 work improve OpenAPI 3.1 compatibility, MCP spec compliance for output schemas and elicitation, and correct a subtle base_url fallback issue. The CLI now gently reminds you that FastMCP 3.0 is on the horizon.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancements 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePin MCP under 2.x by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2709\"\u003ejlowin/fastmcp#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auth_route parameter to SupabaseProvider by \u003ca href=\"https://github.com/EloiZalczer\"\u003e\u003ccode\u003e@​EloiZalczer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2760\"\u003ejlowin/fastmcp#2760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CLI banner with FastMCP 3.0 notice by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2765\"\u003ejlowin/fastmcp#2765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLet FastMCPError propagate unchanged from managers by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2697\"\u003ejlowin/fastmcp#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test cleanup for uvicorn 0.39+ context isolation by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2696\"\u003ejlowin/fastmcp#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pydocket to 0.16.3 to fix worker cleanup race condition by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2700\"\u003ejlowin/fastmcp#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Prefect website URL in docs footer by \u003ca href=\"https://github.com/mgoldsborough\"\u003e\u003ccode\u003e@​mgoldsborough\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2705\"\u003ejlowin/fastmcp#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: resolve root-level $ref in outputSchema for MCP spec compliance by \u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2727\"\u003ejlowin/fastmcp#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OAuth Proxy resource parameter validation by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2763\"\u003ejlowin/fastmcp#2763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix openapi_version check to include 3.1 by \u003ca href=\"https://github.com/deeleeramone\"\u003e\u003ccode\u003e@​deeleeramone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2769\"\u003ejlowin/fastmcp#2769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix titled enum elicitation schema to comply with MCP spec by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2774\"\u003ejlowin/fastmcp#2774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix base_url fallback when url is not set by \u003ca href=\"https://github.com/bhbs\"\u003e\u003ccode\u003e@​bhbs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2782\"\u003ejlowin/fastmcp#2782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazy import DiskStore to avoid sqlite3 dependency on import by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2785\"\u003ejlowin/fastmcp#2785\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd v3 breaking changes notice to README and docs by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2713\"\u003ejlowin/fastmcp#2713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd changelog entries for v2.13.1 through v2.14.1 by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2724\"\u003ejlowin/fastmcp#2724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econference to 2.x branch by \u003ca href=\"https://github.com/aaazzam\"\u003e\u003ccode\u003e@​aaazzam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2787\"\u003ejlowin/fastmcp#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jlowin/fastmcp/compare/v2.14.1...v2.14.2\"\u003ehttps://github.com/jlowin/fastmcp/compare/v2.14.1...v2.14.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.1: 'Tis a Gift to Be Sample\u003c/h2\u003e\n\u003cp\u003eFastMCP 2.14.1 adds support for sampling with tools (SEP-1577). This exciting new feature lets servers pass tools to \u003ccode\u003ectx.sample()\u003c/code\u003e, enabling agentic workflows where the server borrows the client's LLM and controls tool execution automatically. Pass any callable as a tool and FastMCP handles the loop: calling the LLM, executing tools, and feeding results back until a final response is produced. For fine-grained control, \u003ccode\u003ectx.sample_step()\u003c/code\u003e makes a single LLM call and returns a \u003ccode\u003eSampleStep\u003c/code\u003e, letting you inspect tool calls, add custom logic, or build your own execution loop. Structured output via \u003ccode\u003eresult_type\u003c/code\u003e returns validated Pydantic models instead of raw text. This release also adds \u003ccode\u003eAnthropicSamplingHandler\u003c/code\u003e alongside the existing \u003ccode\u003eOpenAI\u003c/code\u003e handler (newly promoted out of the \u003ccode\u003eexperimental\u003c/code\u003e module), so clients \u003cem\u003eand\u003c/em\u003e servers can provide sampling capability across major providers with ease.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eNew Features 🎉\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSEP-1577: Sampling with tools by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2551\"\u003ejlowin/fastmcp#2551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AnthropicSamplingHandler by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2617\"\u003ejlowin/fastmcp#2617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 to Ubuntu CI tests by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2606\"\u003ejlowin/fastmcp#2606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy _task_capable_initialize() workaround by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2612\"\u003ejlowin/fastmcp#2612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsolidate session state reset logic and improve cancellation cleanup by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2615\"\u003ejlowin/fastmcp#2615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnify SamplingHandler and promote OpenAI handler by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2616\"\u003ejlowin/fastmcp#2616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tool_names parameter to mount() for name overrides by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2619\"\u003ejlowin/fastmcp#2619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt streamable_http_client API from MCP SDK by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2620\"\u003ejlowin/fastmcp#2620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate exclude_args in favor of Depends() by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2621\"\u003ejlowin/fastmcp#2621\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: prompt tasks returning mcp.types.PromptMessage now work by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2603\"\u003ejlowin/fastmcp#2603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WindowsSelectorEventLoopPolicy to fix Windows test warnings by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2607\"\u003ejlowin/fastmcp#2607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up cancelled connection startup by \u003ca href=\"https://github.com/shawnthapa\"\u003e\u003ccode\u003e@​shawnthapa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jlowin/fastmcp/pull/2614\"\u003ejlowin/fastmcp#2614\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/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx\"\u003efastmcp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003chr /\u003e\n\u003ch2\u003etitle: \u0026quot;Changelog\u0026quot;\nicon: \u0026quot;list-check\u0026quot;\nrss: true\ntag: NEW\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases/tag/v3.0.2\"\u003ev3.0.2: Threecovery Mode II\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eTwo community-contributed fixes: auth headers from MCP transport no longer leak through to downstream OpenAPI APIs, and background task workers now correctly receive the originating request ID. Plus a new docs example for context-aware tool factories.\u003c/p\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: prevent MCP transport auth header from leaking to downstream OpenAPI APIs by \u003ca href=\"https://github.com/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3262\"\u003e#3262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: propagate origin_request_id to background task workers by \u003ca href=\"https://github.com/gfortaine\"\u003e\u003ccode\u003e@​gfortaine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3175\"\u003e#3175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd v3.0.1 release notes by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3259\"\u003e#3259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add context-aware tool factory example by \u003ca href=\"https://github.com/machov\"\u003e\u003ccode\u003e@​machov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3264\"\u003e#3264\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v3.0.1...v3.0.2\"\u003ev3.0.1...v3.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/releases/tag/v3.0.1\"\u003ev3.0.1: Three-covery Mode\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eFirst patch after 3.0 — mostly smoothing out rough edges discovered in the wild. The big ones: middleware state that wasn't surviving the trip to tool handlers now does, \u003ccode\u003eTool.from_tool()\u003c/code\u003e accepts callables again, OpenAPI schemas with circular references no longer crash discovery, and decorator overloads now return the correct types in function mode. Also adds \u003ccode\u003everify_id_token\u003c/code\u003e to OIDCProxy for providers (like some Azure AD configs) that issue opaque access tokens but standard JWT id_tokens.\u003c/p\u003e\n\u003ch3\u003eEnhancements 🔧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd verify_id_token option to OIDCProxy by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3248\"\u003e#3248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes 🐞\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix v3.0.0 changelog compare link by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3223\"\u003e#3223\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MDX parse error in upgrade guide prompts by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3227\"\u003e#3227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix non-serializable state lost between middleware and tools by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3234\"\u003e#3234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept callables in Tool.from_tool() by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3235\"\u003e#3235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve skill metadata through provider wrapping by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3237\"\u003e#3237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix circular reference crash in OpenAPI schemas by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3245\"\u003e#3245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix NameError with future annotations and Context/Depends parameters by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3243\"\u003e#3243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ty ignore syntax in OpenAPI provider by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3253\"\u003e#3253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse max_completion_tokens instead of deprecated max_tokens in OpenAI handler by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3254\"\u003e#3254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ty compatibility with upgraded deps by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3257\"\u003e#3257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix decorator overload return types for function mode by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3258\"\u003e#3258\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSync README with welcome.mdx, fix install count by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3224\"\u003e#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument dict-to-Message prompt migration in upgrade guides by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3225\"\u003e#3225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix v2 upgrade guide: remove incorrect v1 import advice by \u003ca href=\"https://github.com/jlowin\"\u003e\u003ccode\u003e@​jlowin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/pull/3226\"\u003e#3226\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/PrefectHQ/fastmcp/commit/99832a9fafe742dcfa747bc6b829b386c25c243b\"\u003e\u003ccode\u003e99832a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2787\"\u003e#2787\u003c/a\u003e from jlowin/confernece-to-2.x-branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/7fd365c8680b2c747bd23360662eebfaa0c1fb27\"\u003e\u003ccode\u003e7fd365c\u003c/code\u003e\u003c/a\u003e Update docs.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/9cf9aa9b37dcbbe917d43b7a3a06540fe6bfd65e\"\u003e\u003ccode\u003e9cf9aa9\u003c/code\u003e\u003c/a\u003e Lazy import DiskStore to avoid sqlite3 dependency on import (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2785\"\u003e#2785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/1b637522d166d40ad41346997d2fda74bc886934\"\u003e\u003ccode\u003e1b63752\u003c/code\u003e\u003c/a\u003e Fix base_url fallback when url is not set (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2776\"\u003e#2776\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2782\"\u003e#2782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/33ff356c0f08bbbc22a369e0fc789f4b086e2767\"\u003e\u003ccode\u003e33ff356\u003c/code\u003e\u003c/a\u003e Fix titled enum elicitation schema to comply with MCP spec (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2774\"\u003e#2774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/820f74e8ed7c49fc5c53c02f8cb92f8b3121a265\"\u003e\u003ccode\u003e820f74e\u003c/code\u003e\u003c/a\u003e [BugFix] Fix \u003ccode\u003eopenapi_version\u003c/code\u003e Check So 3.1 Is Included (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2768\"\u003e#2768\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/bbf6c200eeda0a9a946dd8f650a5fa35864ab36f\"\u003e\u003ccode\u003ebbf6c20\u003c/code\u003e\u003c/a\u003e Update CLI banner with FastMCP 3.0 notice (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2765\"\u003e#2765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/97327893bba11bc837aa1883e39cf8ffea8af479\"\u003e\u003ccode\u003e9732789\u003c/code\u003e\u003c/a\u003e Fix OAuth Proxy resource parameter validation (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/6bade1cbd973cbbbca26a84ed7c4cc58ecfda5b3\"\u003e\u003ccode\u003e6bade1c\u003c/code\u003e\u003c/a\u003e Add auth_route parameter to SupabaseProvider (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/fastmcp/commit/4963b516c285bcfe6440a44996dfe06d604af3bd\"\u003e\u003ccode\u003e4963b51\u003c/code\u003e\u003c/a\u003e Fix: resolve root-level $ref in outputSchema for MCP spec compliance (\u003ca href=\"https://redirect.github.com/PrefectHQ/fastmcp/issues/2720\"\u003e#2720\u003c/a\u003e) ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/fastmcp/compare/v2.3.4...v2.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.3.1 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.1 (2024-11-15)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved superfluous debug prints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.0 (2024-11-12)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eCleaner()\u003c/code\u003e now scans for hidden JavaScript code embedded\nwithin CSS comments. In certain contexts, such as within \u003ccode\u003e\u0026lt;svg\u0026gt;\u003c/code\u003e or \u003ccode\u003e\u0026lt;math\u0026gt;\u003c/code\u003e tags,\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.3.1...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 4.3.1 to 6.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.8.0, 2026-03-09\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e) by \u003ca href=\"https://github.com/costajohnt\"\u003e\u003ccode\u003e@​costajohnt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to disable jbig2dec calls by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.5...6.8.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.8.0, 2026-03-09\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument how to disable jbig2dec calls\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.5...6.8.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\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/py-pdf/pypdf/commit/a869eceb57e1f98d118e8b73c6169bdc519cbc57\"\u003e\u003ccode\u003ea869ece\u003c/code\u003e\u003c/a\u003e REL: 6.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/3c550b3196adeba1506a26e57c09c09fac75e9aa\"\u003e\u003ccode\u003e3c550b3\u003c/code\u003e\u003c/a\u003e SEC: Limit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/5dae0e28bec83a5c9a3df2ace26dc77c633b4f72\"\u003e\u003ccode\u003e5dae0e2\u003c/code\u003e\u003c/a\u003e MAINT: Document and test XMP security (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/b9f66ab4338ce14e5f07a73f51f09ed08fa1fe7a\"\u003e\u003ccode\u003eb9f66ab\u003c/code\u003e\u003c/a\u003e DEV: Change to \u003ccode\u003eloadfile\u003c/code\u003e strategy for PyPy in CI (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/071118b08286bed057bb1608cc507d76722cc6f9\"\u003e\u003ccode\u003e071118b\u003c/code\u003e\u003c/a\u003e MAINT: Remove excessive logging in extract_links while not clear (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/43add641726c2819a465cd0d5c05818aa697f81e\"\u003e\u003ccode\u003e43add64\u003c/code\u003e\u003c/a\u003e DEV: Timeout PyPy tests after one minute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/4228dd2f52e5f70b95c8058c4fc8c6ac291ebbc1\"\u003e\u003ccode\u003e4228dd2\u003c/code\u003e\u003c/a\u003e DOC: Avoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/0e9792df262f782884ea5e1b75ea1138655a1fe7\"\u003e\u003ccode\u003e0e9792d\u003c/code\u003e\u003c/a\u003e ENH: Add /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/ede6db99d007f27540e62867c762746df7a6ed0e\"\u003e\u003ccode\u003eede6db9\u003c/code\u003e\u003c/a\u003e DOC: Document how to disable jbig2dec calls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/6d0fa2fc0b6e54d9d6f61ffa52d057c8b5ff032f\"\u003e\u003ccode\u003e6d0fa2f\u003c/code\u003e\u003c/a\u003e MAINT: Move and rename _xobj_image_helpers.py (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3661\"\u003e#3661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/4.3.1...6.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `keras` from 3.5.0 to 3.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/keras-team/keras/releases\"\u003ekeras's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.13.2\u003c/h2\u003e\n\u003ch2\u003eSecurity Fixes \u0026amp; Hardening\u003c/h2\u003e\n\u003cp\u003eThis release introduces critical security hardening for model loading and saving, alongside improvements to the JAX backend metadata handling.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDisallow \u003ccode\u003eTFSMLayer\u003c/code\u003e deserialization in \u003ccode\u003esafe_mode\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/22035\"\u003e#22035\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously, \u003ccode\u003eTFSMLayer\u003c/code\u003e could load external TensorFlow SavedModels during deserialization without respecting Keras \u003ccode\u003esafe_mode\u003c/code\u003e. This could allow the execution of attacker-controlled graphs during model invocation.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTFSMLayer\u003c/code\u003e now enforces \u003ccode\u003esafe_mode\u003c/code\u003e by default. Deserialization via \u003ccode\u003efrom_config()\u003c/code\u003e will raise a \u003ccode\u003eValueError\u003c/code\u003e unless \u003ccode\u003esafe_mode=False\u003c/code\u003e is explicitly passed or \u003ccode\u003ekeras.config.enable_unsafe_deserialization()\u003c/code\u003e is called.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFix Denial of Service (DoS) in \u003ccode\u003eKerasFileEditor\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/21880\"\u003e#21880\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduces validation for HDF5 dataset metadata to prevent \u0026quot;shape bomb\u0026quot; attacks.\u003c/li\u003e\n\u003cli\u003eHardens the \u003ccode\u003e.keras\u003c/code\u003e file editor against malicious metadata that could cause dimension overflows or unbounded memory allocation (unbounded numpy allocation of multi-gigabyte tensors).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eBlock External Links in HDF5 files (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/22057\"\u003e#22057\u003c/a\u003e)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eKeras now explicitly disallows external links within HDF5 files during loading. This prevents potential security risks where a weight file could point to external system datasets.\u003c/li\u003e\n\u003cli\u003eIncludes improved verification for H5 Groups and Datasets to ensure they are local and valid.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBackend-specific Improvements (JAX)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSet \u003ccode\u003emutable=True\u003c/code\u003e by default in \u003ccode\u003ennx_metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/22074\"\u003e#22074\u003c/a\u003e)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the JAX backend logic to ensure that variables are treated as mutable by default in \u003ccode\u003ennx_metadata\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThis makes Keras 3.13.2 compatible with Flax 0.12.3 when the Keras NNX integration is enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSaving \u0026amp; Serialization\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImproved H5IOStore Integrity (\u003ca href=\"https://redirect.github.com/keras-team/keras/pull/22057\"\u003e#22057\u003c/a\u003e)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eRefactored \u003ccode\u003eH5IOStore\u003c/code\u003e and \u003ccode\u003eShardedH5IOStore\u003c/code\u003e to remove unused, unverified methods.\u003c/li\u003e\n\u003cli\u003eFixed key-ordering logic in sharded HDF5 stores to ensure consistent state loading across different environments.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cp\u003eWe would like to thank the following contributors for their security reports and code improvements:\n\u003ca href=\"https://github.com/0xManan\"\u003e\u003ccode\u003e@​0xManan\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/HyperPS\"\u003e\u003ccode\u003e@​HyperPS\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hertschuh\"\u003e\u003ccode\u003e@​hertschuh\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/divyashreepathihalli\"\u003e\u003ccode\u003e@​divyashreepathihalli\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/keras-team/keras/compare/v3.13.1...v3.13.2\"\u003ehttps://github.com/keras-team/keras/compare/v3.13.1...v3.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.13.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes \u0026amp; Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGeneral\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved a persistent warning triggered during \u003ccode\u003eimport keras\u003c/code\u003e when using NumPy 2.0 or higher. (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21949\"\u003e#21949\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBackends\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJAX:\u003c/strong\u003e Fixed an issue where CUDNN flash attention was broken when using JAX versions greater than 0.6.2. (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21970\"\u003e#21970\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExport \u0026amp; Serialization\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eResolved a regression in the export pipeline that incorrectly forced batch sizes to be dynamic. The export process now correctly respects static batch sizes when defined. (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21944\"\u003e#21944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/keras-team/keras/compare/v3.13.0...v3.13.1\"\u003ehttps://github.com/keras-team/keras/compare/v3.13.0...v3.13.1\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/keras-team/keras/commit/e29d0efbefe21b80c041849bd73cc3e54c872de3\"\u003e\u003ccode\u003ee29d0ef\u003c/code\u003e\u003c/a\u003e Version bump and cherry picks for 3.13.2 (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/22080\"\u003e#22080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/8914427b7fa9d90f3c476cb2ee65d55d4f808e65\"\u003e\u003ccode\u003e8914427\u003c/code\u003e\u003c/a\u003e Patch release commits for 3.13.1 (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/22005\"\u003e#22005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/986ff971d98e216a89fba38d48a337ed09d6dc44\"\u003e\u003ccode\u003e986ff97\u003c/code\u003e\u003c/a\u003e Update release version and comment orbax checkpoint (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21934\"\u003e#21934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/ca23fceb51f7de40dba51908a0a5297f1f425651\"\u003e\u003ccode\u003eca23fce\u003c/code\u003e\u003c/a\u003e Refactors AbsMaxQuantizer to accept axis in \u003cstrong\u003ecall\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21931\"\u003e#21931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/1a9893f04e081ba7f233f59b0669bbde2d83143f\"\u003e\u003ccode\u003e1a9893f\u003c/code\u003e\u003c/a\u003e Adds Serialization Support for QuantizationConfig based quantized models (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21\"\u003e#21\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/86bfab4375d17ed41e56dc25ab1fdb6e324377a8\"\u003e\u003ccode\u003e86bfab4\u003c/code\u003e\u003c/a\u003e More OpenVINO Numpy Operations (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21925\"\u003e#21925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/f48f4805fd462893f68e5f6cc632d320d4198a52\"\u003e\u003ccode\u003ef48f480\u003c/code\u003e\u003c/a\u003e Add adaptive pooling (1D, 2D, 3D) support across JAX, NumPy, TensorFlow, and ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/0771c8044a5c183e3cd8c1c4e8756a607579d4a0\"\u003e\u003ccode\u003e0771c80\u003c/code\u003e\u003c/a\u003e Fix ops.tile shape inference issue on TensorFlow backend (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21860\"\u003e#21860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/024c96db1705f2d4fc0c03fde9158e33554b5304\"\u003e\u003ccode\u003e024c96d\u003c/code\u003e\u003c/a\u003e Extended fix OOM Issue \u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21634\"\u003e#21634\u003c/a\u003e on Keras side (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21755\"\u003e#21755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/keras-team/keras/commit/71f499735f543871d296474c48f56a2e9758a73c\"\u003e\u003ccode\u003e71f4997\u003c/code\u003e\u003c/a\u003e Introduces QuantizationConfig for fine-grained quantization control (\u003ca href=\"https://redirect.github.com/keras-team/keras/issues/21896\"\u003e#21896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/keras-team/keras/compare/v3.5.0...v3.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 24.3.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\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/psf/black/commit/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/24.3.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 5.0.0 to 6.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.8.0, 2026-03-09\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e) by \u003ca href=\"https://github.com/costajohnt\"\u003e\u003ccode\u003e@​costajohnt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to disable jbig2dec calls by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.5...6.8.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.8.0, 2026-03-09\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation (DOC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument how to disable jbig2dec calls\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.5...6.8.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\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/py-pdf/pypdf/commit/a869eceb57e1f98d118e8b73c6169bdc519cbc57\"\u003e\u003ccode\u003ea869ece\u003c/code\u003e\u003c/a\u003e REL: 6.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/3c550b3196adeba1506a26e57c09c09fac75e9aa\"\u003e\u003ccode\u003e3c550b3\u003c/code\u003e\u003c/a\u003e SEC: Limit allowed \u003ccode\u003e/Length\u003c/code\u003e value of stream  (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3675\"\u003e#3675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/5dae0e28bec83a5c9a3df2ace26dc77c633b4f72\"\u003e\u003ccode\u003e5dae0e2\u003c/code\u003e\u003c/a\u003e MAINT: Document and test XMP security (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/b9f66ab4338ce14e5f07a73f51f09ed08fa1fe7a\"\u003e\u003ccode\u003eb9f66ab\u003c/code\u003e\u003c/a\u003e DEV: Change to \u003ccode\u003eloadfile\u003c/code\u003e strategy for PyPy in CI (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/071118b08286bed057bb1608cc507d76722cc6f9\"\u003e\u003ccode\u003e071118b\u003c/code\u003e\u003c/a\u003e MAINT: Remove excessive logging in extract_links while not clear (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/43add641726c2819a465cd0d5c05818aa697f81e\"\u003e\u003ccode\u003e43add64\u003c/code\u003e\u003c/a\u003e DEV: Timeout PyPy tests after one minute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/4228dd2f52e5f70b95c8058c4fc8c6ac291ebbc1\"\u003e\u003ccode\u003e4228dd2\u003c/code\u003e\u003c/a\u003e DOC: Avoid using \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e on PdfReader (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/0e9792df262f782884ea5e1b75ea1138655a1fe7\"\u003e\u003ccode\u003e0e9792d\u003c/code\u003e\u003c/a\u003e ENH: Add /IRT (in-reply-to) support for markup annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/ede6db99d007f27540e62867c762746df7a6ed0e\"\u003e\u003ccode\u003eede6db9\u003c/code\u003e\u003c/a\u003e DOC: Document how to disable jbig2dec calls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/6d0fa2fc0b6e54d9d6f61ffa52d057c8b5ff032f\"\u003e\u003ccode\u003e6d0fa2f\u003c/code\u003e\u003c/a\u003e MAINT: Move and rename _xobj_image_helpers.py (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3661\"\u003e#3661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/4.3.1...6.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.3.1 to 1.6.9\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.6.9\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eChanges in \u003ccode\u003ejose\u003c/code\u003e module\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNot using header's \u003ccode\u003ejwk\u003c/code\u003e automatically\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eES256K\u003c/code\u003e into default jwt algorithms\u003c/li\u003e\n\u003cli\u003eRemove deprecated algorithm from default registry\u003c/li\u003e\n\u003cli\u003eGenerate random \u003ccode\u003ecek\u003c/code\u003e when \u003ccode\u003ecek\u003c/code\u003e length doesn't match\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.8\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.7...v1.6.8\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.7...v1.6.8\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eEdDSA\u003c/code\u003e to default \u003ccode\u003ejwt\u003c/code\u003e instance.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSet supported algorithms for the default \u003ccode\u003ejwt\u003c/code\u003e instance.\u003c/p\u003e\n\u003ch2\u003ev1.6.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(ClientAuth): fix incorrect signature when Content-Type is x-www-form-urlencoded by \u003ca href=\"https://github.com/shc261392\"\u003e\u003ccode\u003e@​shc261392\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/778\"\u003eauthlib/authlib#778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Use \u003ccode\u003eexpires_in\u003c/code\u003e when \u003ccode\u003eexpires_at\u003c/code\u003e is unparsable by \u003ca href=\"https://github.com/bendavis78\"\u003e\u003ccode\u003e@​bendavis78\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/842\"\u003eauthlib/authlib#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_jwt_config\u003c/code\u003e takes a \u003ccode\u003eclient\u003c/code\u003e parameter. 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/844\"\u003eauthlib/authlib#844\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/shc261392\"\u003e\u003ccode\u003e@​shc261392\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/778\"\u003eauthlib/authlib#778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bendavis78\"\u003e\u003ccode\u003e@​bendavis78\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/842\"\u003eauthlib/authlib#842\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.6.5...v1.6.6\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.5...v1.6.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a \u003ccode\u003erequest\u003c/code\u003e param to RFC7591 \u003ccode\u003egenerate_client_info\u003c/code\u003e and \u003ccode\u003egenerate_client_secret\u003c/code\u003e methods 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/825\"\u003eauthlib/authlib#825\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support list params in prepare_grant_uri by \u003ca href=\"https://github.com/lisongmin\"\u003e\u003ccode\u003e@​lisongmin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/827\"\u003eauthlib/authlib#827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump SonarSource/sonarqube-scan-action from 5 to 6 in /.github/workflows 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/authlib/authlib/pull/828\"\u003eauthlib/authlib#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(jose): add max size for JWE zip=DEF decompression by \u003ca href=\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/830\"\u003eauthlib/authlib#830\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/lisongmin\"\u003e\u003ccode\u003e@​lisongmin\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/827\"\u003eauthlib/authlib#827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/828\"\u003eauthlib/authlib#828\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.6.4...v1.6.5\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.4...v1.6.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(jose): prevent public/unprotected header overwriting protected header by \u003ca href=\"https://github.com/lepture\"\u003e\u003ccode\u003e@​lepture\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/authlib/authlib/pull/809\"\u003eauthlib/authlib#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eInsecureTransportError\u003c/code\u003e raising 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/810\"\u003eauthlib/authlib#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd conventional-commits pre-commit hook 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/811\"\u003eauthlib/authlib#811\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/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e.. meta::\n:description: The full list of changes between each Authlib release.\u003c/p\u003e\n\u003cp\u003eHere you can see the full list of changes between each Authlib release.\u003c/p\u003e\n\u003ch2\u003eVersion 1.7.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eUnreleased\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eOpenID Connect RP-Initiated Logout 1.0 \u0026lt;https://openid.net/specs/openid-connect-rpinitiated-1_0.html\u0026gt;\u003c/code\u003e_.\nSee :ref:\u003ccode\u003especs/rpinitiated\u003c/code\u003e for details. :issue:\u003ccode\u003e500\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePer RFC 6749 Section 3.3, the \u003ccode\u003escope\u003c/code\u003e parameter is now optional at both\nauthorization and token endpoints. \u003ccode\u003eclient.get_allowed_scope()\u003c/code\u003e is called\nto determine the default scope when omitted. :issue:\u003ccode\u003e845\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.9, start support Python 3.14. :pr:\u003ccode\u003e850\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eAuthorizationServerMetadata.validate()\u003c/code\u003e to compose with RFC extension classes.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eexpires_at=0\u003c/code\u003e being incorrectly treated as \u003ccode\u003eNone\u003c/code\u003e. :issue:\u003ccode\u003e530\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eResourceProtector\u003c/code\u003e decorator to be used without parentheses. :issue:\u003ccode\u003e604\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eImplement RFC9700 PKCE downgrade countermeasure.\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eUser-Agent\u003c/code\u003e header when fetching server metadata and JWKs. :issue:\u003ccode\u003e704\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRFC7523 accepts the issuer URL as a valid audience. :issue:\u003ccode\u003e730\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUpgrade Guide: :ref:\u003ccode\u003ejoserfc_upgrade\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 1.6.6\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Dec 12, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_jwt_config\u003c/code\u003e takes a \u003ccode\u003eclient\u003c/code\u003e parameter, :pr:\u003ccode\u003e844\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix incorrect signature when \u003ccode\u003eContent-Type\u003c/code\u003e is x-www-form-urlencoded for OAuth 1.0 Client, :pr:\u003ccode\u003e778\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eexpires_in\u003c/code\u003e in \u003ccode\u003eOAuth2Token\u003c/code\u003e when \u003ccode\u003eexpires_at\u003c/code\u003e is unparsable, :pr:\u003ccode\u003e842\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAlways track \u003ccode\u003estate\u003c/code\u003e in session for OAuth client integrations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.6.5\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eReleased on Oct 2, 2025\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRFC7591 \u003ccode\u003egenerate_client_info\u003c/code\u003e and \u003ccode\u003egenerate_client_secret\u003c/code\u003e take a \u003ccode\u003erequest\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAdd size limitation when decode JWS/JWE to prevent DoS.\u003c/li\u003e\n\u003cli\u003eAdd size limitation for \u003ccode\u003eDEF\u003c/code\u003e JWE zip algorithm.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.6.4\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/authlib/authlib/commit/9266eaa2227ad7e21dc731b2a4a01909aabd934b\"\u003e\u003ccode\u003e9266eaa\u003c/code\u003e\u003c/a\u003e chore: release 1.6.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b9bb2b25bf8b7e01512d847a95c1749646eaa72b\"\u003e\u003ccode\u003eb9bb2b2\u003c/code\u003e\u003c/a\u003e fix(oidc): fail close at validating c_h...\n\n_Description has been truncated_","html_url":"https://github.com/OzCog/co9priml/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OzCog%2Fco9priml/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"}},{"old_version":"0.4.3","new_version":"0.4.4","update_type":"patch","path":"/backend","pr_created_at":"2026-03-08T08:34:30.000Z","version_change":"0.4.3 → 0.4.4","issue":{"uuid":"4040852703","node_id":"PR_kwDORhWs7M7I1ji-","number":9,"state":"open","title":"chore(deps): bump lxml-html-clean from 0.4.3 to 0.4.4 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-08T08:34:30.000Z","updated_at":"2026-03-08T08:37:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=pip\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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/glnarayanan/arivu/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/glnarayanan%2Farivu/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"0.4.0","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-03-05T22:34:08.000Z","version_change":"0.4.0 → 0.4.4","issue":{"uuid":"4031033168","node_id":"PR_kwDOPzxB4M7IV-El","number":330,"state":"closed","title":"chore(deps): bump the pip group across 2 directories with 4 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-10T20:47:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-05T22:34:08.000Z","updated_at":"2026-03-10T20:47:55.000Z","time_to_close":425626,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip","update_count":4,"packages":[{"name":"langchain-core","old_version":"0.3.81","new_version":"1.2.11","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"lxml-html-clean","old_version":"0.4.0","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"},{"name":"pypdf","old_version":"6.6.2","new_version":"6.7.5","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"protobuf","old_version":"6.33.4","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"protobuf","old_version":"6.33.4","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 4 updates in the /backend/apps/agent-zero directory: [langchain-core](https://github.com/langchain-ai/langchain), [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean), [pypdf](https://github.com/py-pdf/pypdf) and [protobuf](https://github.com/protocolbuffers/protobuf).\nBumps the pip group with 1 update in the /backend/apps/automations/scraper directory: [protobuf](https://github.com/protocolbuffers/protobuf).\n\nUpdates `langchain-core` from 0.3.81 to 1.2.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==1.2.11\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.10\u003c/p\u003e\n\u003cp\u003erelease(core): 1.2.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35144\"\u003e#35144\u003c/a\u003e)\nfix(openai): sanitize urls when counting tokens in images (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35143\"\u003e#35143\u003c/a\u003e)\nchore(core): clean up docstring mismatch and redundant logic in langchain-core (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35064\"\u003e#35064\u003c/a\u003e)\nfix(core): replace bare except with Exception in tracer (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35138\"\u003e#35138\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.2.10\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.9\u003c/p\u003e\n\u003cp\u003erelease(core): 1.2.10 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35136\"\u003e#35136\u003c/a\u003e)\nchore(deps): bump the langchain-deps group across 3 directories with 40 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35129\"\u003e#35129\u003c/a\u003e)\nchore(deps): bump the langchain-deps group across 3 directories with 11 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35121\"\u003e#35121\u003c/a\u003e)\nfeat(core): add ContextOverflowError, raise in anthropic and openai (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35099\"\u003e#35099\u003c/a\u003e)\nfeat(model-profiles): add \u003ccode\u003etext_inputs\u003c/code\u003e and \u003ccode\u003etext_outputs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35084\"\u003e#35084\u003c/a\u003e)\nfeat(core): count tokens from tool schemas in \u003ccode\u003ecount_tokens_approximately\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35098\"\u003e#35098\u003c/a\u003e)\ndocs(core): add missing \u003ccode\u003ename\u003c/code\u003e docstring for \u003ccode\u003eRunnableSerializable\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35088\"\u003e#35088\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.2.9\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.8\u003c/p\u003e\n\u003cp\u003erelease(core): 1.2.9 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35025\"\u003e#35025\u003c/a\u003e)\nfix(core): adjust cap when scaling approximate token counts (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35017\"\u003e#35017\u003c/a\u003e)\nrevert: precompile hex color regex pattern at module level (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35016\"\u003e#35016\u003c/a\u003e)\nchore: add \u003ccode\u003emake type\u003c/code\u003e target (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35015\"\u003e#35015\u003c/a\u003e)\nrevert: \u0026quot;chore: add typing target in \u003ccode\u003eMakefile\u003c/code\u003e\u0026quot; (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35013\"\u003e#35013\u003c/a\u003e)\nchore: add typing target in \u003ccode\u003eMakefile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35012\"\u003e#35012\u003c/a\u003e)\nfix(core): apply cap when scaling approximate token counts (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35005\"\u003e#35005\u003c/a\u003e)\nfeat(core): allow scaling by reported usage when counting tokens approximately (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34996\"\u003e#34996\u003c/a\u003e)\ntest(core): increase \u003ccode\u003edelta_time\u003c/code\u003e for flaky test (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34982\"\u003e#34982\u003c/a\u003e)\nchore: enrich \u003ccode\u003epyproject.toml\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34980\"\u003e#34980\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==1.2.8\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==1.2.7\u003c/p\u003e\n\u003cp\u003erelease(core): 1.2.8 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34975\"\u003e#34975\u003c/a\u003e)\ndocs(core): add examples for \u003ccode\u003epretty_repr\u003c/code\u003e, \u003ccode\u003epretty_print\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34968\"\u003e#34968\u003c/a\u003e)\ndocs(core): use proper admonition for \u003ccode\u003eget_buffer_string\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34967\"\u003e#34967\u003c/a\u003e)\ndocs: add usage examples to core classes (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34841\"\u003e#34841\u003c/a\u003e)\nchore(core): fix docstring format (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34966\"\u003e#34966\u003c/a\u003e)\nchore(deps): bump the uv group across 20 directories with 3 updates (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34941\"\u003e#34941\u003c/a\u003e)\ndocs: add example to create_message function docstring (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34851\"\u003e#34851\u003c/a\u003e)\ndocs(core): clarify \u003ca href=\"https://github.com/tool\"\u003e\u003ccode\u003e@​tool\u003c/code\u003e\u003c/a\u003e decorator argument and return type requirements (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34860\"\u003e#34860\u003c/a\u003e)\nfix(core): fix nested mustache variable extraction and update docs (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34872\"\u003e#34872\u003c/a\u003e)\nfix(core): allow base model annotations for empty model (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34932\"\u003e#34932\u003c/a\u003e)\nchore: upgrade urllib3 to 2.6.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34940\"\u003e#34940\u003c/a\u003e)\nfix(core): prevent crash in ParrotFakeChatModel when messages list is empty (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34943\"\u003e#34943\u003c/a\u003e)\nfix(core): google docstring parsing with no arguments/reserved arguments (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34861\"\u003e#34861\u003c/a\u003e)\ntest(core): add tests for approximate token counting with multimodal messages (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34898\"\u003e#34898\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/langchain-ai/langchain/commit/524e1dab5e7c8229bd78be3c13ab38ac93a6216b\"\u003e\u003ccode\u003e524e1da\u003c/code\u003e\u003c/a\u003e release(core): 1.2.11 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35144\"\u003e#35144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/2b4b1dc29a833d4053deba4c2b77a3848c834565\"\u003e\u003ccode\u003e2b4b1dc\u003c/code\u003e\u003c/a\u003e fix(openai): sanitize urls when counting tokens in images (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35143\"\u003e#35143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/0493b276e0be31d4f48d9d0ba5fcbce7fdded38f\"\u003e\u003ccode\u003e0493b27\u003c/code\u003e\u003c/a\u003e fix(anthropic): support effort=\u0026quot;max\u0026quot; and remove beta headers (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35141\"\u003e#35141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a5f22e7cb18a05ed057028797a7d0d79cd509b0d\"\u003e\u003ccode\u003ea5f22e7\u003c/code\u003e\u003c/a\u003e chore(core): clean up docstring mismatch and redundant logic in langchain-cor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/97ee14c179f703473a6ec6ee24179ea756a5698f\"\u003e\u003ccode\u003e97ee14c\u003c/code\u003e\u003c/a\u003e fix(core): replace bare except with Exception in tracer (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35138\"\u003e#35138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/990e8076e1d61a0c8ced4d83607685bd71e23687\"\u003e\u003ccode\u003e990e807\u003c/code\u003e\u003c/a\u003e release(standard-tests): release 1.1.5 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35139\"\u003e#35139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/74dffca3d89effdb62da567d1ff6d160c9ad5354\"\u003e\u003ccode\u003e74dffca\u003c/code\u003e\u003c/a\u003e release(langchain): 1.2.10 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35137\"\u003e#35137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f41e0493336698e9a3e25e6e238786dfc8af91ba\"\u003e\u003ccode\u003ef41e049\u003c/code\u003e\u003c/a\u003e release(core): 1.2.10 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/35136\"\u003e#35136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/de05838fca46eb6c2f67064da3a59f5e84818e9a\"\u003e\u003ccode\u003ede05838\u003c/code\u003e\u003c/a\u003e chore(deps): bump the langchain-deps group across 3 directories with 40 updat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d6e86aa748ae173857732ee1f7114a06ff8f4231\"\u003e\u003ccode\u003ed6e86aa\u003c/code\u003e\u003c/a\u003e chore(deps): bump the other-deps group across 3 directories with 12 updates (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.81...langchain-core==1.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml-html-clean` from 0.4.0 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.1 (2024-11-15)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved superfluous debug prints.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.0...0.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.6.2 to 6.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e) by \u003ca href=\"https://github.com/John-Sharp\"\u003e\u003ccode\u003e@​John-Sharp\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid divison by zero when decoding FlateDecode PNG prediction (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3641\"\u003e#3641\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.0...6.7.1\"\u003eFull Changelog\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/py-pdf/pypdf/commit/7c2bcddd8e3c64903e23398d12b60ef432ff4531\"\u003e\u003ccode\u003e7c2bcdd\u003c/code\u003e\u003c/a\u003e REL: 6.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/648c627d2657447dfb1773412af05a0a5103b98f\"\u003e\u003ccode\u003e648c627\u003c/code\u003e\u003c/a\u003e SEC: Improve the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/1aef6fbbf4f138e40e9b68e11089393ea5b64421\"\u003e\u003ccode\u003e1aef6fb\u003c/code\u003e\u003c/a\u003e DEV: Update cache key handling in CI (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/1650bc31e807d8091464c228b7eabd6fef4c6c2a\"\u003e\u003ccode\u003e1650bc3\u003c/code\u003e\u003c/a\u003e REL: 6.7.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/f309c6003746414dc7b5048c19e6d879ff2dc858\"\u003e\u003ccode\u003ef309c60\u003c/code\u003e\u003c/a\u003e SEC: Allow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/993f052748ad7ce0a16d738260f43aa0a9c06872\"\u003e\u003ccode\u003e993f052\u003c/code\u003e\u003c/a\u003e DEV: Bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3662\"\u003e#3662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/a3c996bffcb03a49e790e540e9229c8d75ff3da5\"\u003e\u003ccode\u003ea3c996b\u003c/code\u003e\u003c/a\u003e DEV: Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3663\"\u003e#3663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/37de32022e76018a48523795669e95432ba6191e\"\u003e\u003ccode\u003e37de320\u003c/code\u003e\u003c/a\u003e ROB: Deal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/05e6d3c03deaec6b16b53825465537ac9e7a1a14\"\u003e\u003ccode\u003e05e6d3c\u003c/code\u003e\u003c/a\u003e REL: 6.7.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/7a4c8246ed48d9d328fb596942271da47b6d109c\"\u003e\u003ccode\u003e7a4c824\u003c/code\u003e\u003c/a\u003e SEC: Use zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.6.2...6.7.5\"\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.4 to 6.33.5\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\u003cli\u003e[Python] 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[Python] Remove deprecated FieldDescriptor.label (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] 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\u003ca href=\"https://protobuf.dev/news/\"\u003eProtobuf News\u003c/a\u003e may include additional announcements or pre-announcements for upcoming changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/support/migration/\"\u003eMigration Guide\u003c/a\u003e may include additional guidance for breaking changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBazel\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/25168\"\u003e#25168\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBreaking change: 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\u003eFeat(bazel): wire up prebuilt protoc toolchain (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/24115\"\u003e#24115\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eproto_descriptor_set\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/23369\"\u003e#23369\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCompiler\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRuby codegen: support generation of rbs files (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/15633\"\u003e#15633\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid collision name problems between a message named \u003ccode\u003eXyz\u003c/code\u003e and a direct sibling enum named \u003ccode\u003eXyzView\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGeneralizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug with custom features outside of the \u003ccode\u003epb\u003c/code\u003e package. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix import option handling when include_imports isn't set. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent accidental stripping of \u003ccode\u003edebug_redact\u003c/code\u003e options via import option. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd EnumerateEnumValues function. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\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\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\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.4 to 6.33.5\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\u003cli\u003e[Python] 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[Python] Remove deprecated FieldDescriptor.label (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] 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\u003ca href=\"https://protobuf.dev/news/\"\u003eProtobuf News\u003c/a\u003e may include additional announcements or pre-announcements for upcoming changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/support/migration/\"\u003eMigration Guide\u003c/a\u003e may include additional guidance for breaking changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBazel\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/25168\"\u003e#25168\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBreaking change: 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\u003eFeat(bazel): wire up prebuilt protoc toolchain (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/24115\"\u003e#24115\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eproto_descriptor_set\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/23369\"\u003e#23369\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCompiler\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRuby codegen: support generation of rbs files (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/15633\"\u003e#15633\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid collision name problems between a message named \u003ccode\u003eXyz\u003c/code\u003e and a direct sibling enum named \u003ccode\u003eXyzView\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGeneralizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug with custom features outside of the \u003ccode\u003epb\u003c/code\u003e package. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix import option handling when include_imports isn't set. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent accidental stripping of \u003ccode\u003edebug_redact\u003c/code\u003e options via import option. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd EnumerateEnumValues function. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\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\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/jubenitogarcia/skincos/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/jubenitogarcia/skincos/pull/330","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubenitogarcia%2Fskincos/issues/330","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/330/packages"}},{"old_version":"0.4.3","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-03-03T21:48:44.000Z","version_change":"0.4.3 → 0.4.4","issue":{"uuid":"4018873089","node_id":"PR_kwDOIiF_387HuGcx","number":99,"state":"closed","title":"Bump lxml-html-clean from 0.4.3 to 0.4.4","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-03T21:53:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T21:48:44.000Z","updated_at":"2026-03-03T21:53:32.000Z","time_to_close":278,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ExtensityAI/symbolicai/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/ExtensityAI/symbolicai/pull/99","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExtensityAI%2Fsymbolicai/issues/99","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/99/packages"}},{"old_version":"0.4.2","new_version":"0.4.4","update_type":"patch","path":"the uv group across 1 directory","pr_created_at":"2026-03-03T20:22:14.000Z","version_change":"0.4.2 → 0.4.4","issue":{"uuid":"4018535405","node_id":"PR_kwDOQFGng87HtBIo","number":46,"state":"open","title":"Bump lxml-html-clean from 0.4.2 to 0.4.4 in the uv group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-03T20:22:14.000Z","updated_at":"2026-03-03T20:24:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"lxml-html-clean","old_version":"0.4.2","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":"the uv group across 1 directory","ecosystem":"pip"},"body":"Bumps the uv group with 1 update in the / directory: [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean).\n\nUpdates `lxml-html-clean` from 0.4.2 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.2...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.2\u0026new-version=0.4.4)](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 \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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/support371/Gem-Assist/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/support371/Gem-Assist/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/support371%2FGem-Assist/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"}},{"old_version":"0.4.3","new_version":"0.4.4","update_type":"patch","path":"/requirements","pr_created_at":"2026-03-03T20:19:22.000Z","version_change":"0.4.3 → 0.4.4","issue":{"uuid":"4018524366","node_id":"PR_kwDOClICWs7Hs-ye","number":417,"state":"closed","title":"build(deps): bump lxml-html-clean from 0.4.3 to 0.4.4 in /requirements","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-13T14:20:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T20:19:22.000Z","updated_at":"2026-03-13T14:20:47.000Z","time_to_close":842483,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=pip\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/openedx/edx-rbac/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/openedx/edx-rbac/pull/417","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-rbac/issues/417","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/417/packages"}},{"old_version":"0.4.3","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-03-03T18:01:44.000Z","version_change":"0.4.3 → 0.4.4","issue":{"uuid":"4018021249","node_id":"PR_kwDOD1J7zM7HrVm4","number":17,"state":"closed","title":"Bump lxml-html-clean from 0.4.3 to 0.4.4","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-03T23:25:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T18:01:44.000Z","updated_at":"2026-03-03T23:25:42.000Z","time_to_close":19430,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/markusritschel/oceanpack/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/markusritschel/oceanpack/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/markusritschel%2Foceanpack/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"0.4.3","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-03-03T17:54:08.000Z","version_change":"0.4.3 → 0.4.4","issue":{"uuid":"4017982662","node_id":"PR_kwDONOQNsM7HrNZh","number":33,"state":"open","title":"Bump lxml-html-clean from 0.4.3 to 0.4.4","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-03-03T17:54:08.000Z","updated_at":"2026-03-03T17:54:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/front-matter/rogue-scholar/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/front-matter/rogue-scholar/pull/33","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/front-matter%2Frogue-scholar/issues/33","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/33/packages"}},{"old_version":"0.4.3","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-03-03T13:39:09.000Z","version_change":"0.4.3 → 0.4.4","issue":{"uuid":"4016728979","node_id":"PR_kwDOOMEdyc7HnFmt","number":457,"state":"closed","title":"chore(deps): bump lxml-html-clean from 0.4.3 to 0.4.4","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-05T08:20:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T13:39:09.000Z","updated_at":"2026-03-05T08:20:44.000Z","time_to_close":153694,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/aignostics/python-sdk/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/aignostics/python-sdk/pull/457","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aignostics%2Fpython-sdk/issues/457","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/457/packages"}},{"old_version":"0.4.3","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-03-03T12:03:56.000Z","version_change":"0.4.3 → 0.4.4","issue":{"uuid":"4016305241","node_id":"PR_kwDORUZdw87Hlsch","number":73,"state":"open","title":"chore(deps): bump lxml-html-clean from 0.4.3 to 0.4.4","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-03-03T12:03:56.000Z","updated_at":"2026-03-03T12:05:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.3","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.3 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.3...0.4.4\"\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=lxml-html-clean\u0026package-manager=uv\u0026previous-version=0.4.3\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/brettbergin/angie/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/brettbergin/angie/pull/73","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/brettbergin%2Fangie/issues/73","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/73/packages"}},{"old_version":"0.4.0","new_version":"0.4.4","update_type":"patch","path":null,"pr_created_at":"2026-03-03T10:22:51.000Z","version_change":"0.4.0 → 0.4.4","issue":{"uuid":"4015875961","node_id":"PR_kwDOC3t2Ec7HkSBn","number":9508,"state":"closed","title":"chore(deps): bump lxml-html-clean from 0.4.0 to 0.4.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-03-03T10:24:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T10:22:51.000Z","updated_at":"2026-03-03T10:24:38.000Z","time_to_close":99,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"lxml-html-clean","old_version":"0.4.0","new_version":"0.4.4","repository_url":"https://github.com/fedora-python/lxml_html_clean"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lxml-html-clean](https://github.com/fedora-python/lxml_html_clean) from 0.4.0 to 0.4.4.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/blob/main/CHANGES.rst\"\u003elxml-html-clean's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.4.4 (2026-02-26)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where Unicode escapes in CSS were not properly decoded\nbefore security checks. This prevents attackers from bypassing filters\nusing escape sequences. (CVE-2026-28348)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tags could be used for URL\nhijacking attacks. The \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e tag is now automatically removed\nwhenever the \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e tag is removed (via \u003ccode\u003epage_structure=True\u003c/code\u003e\nor manual configuration), as \u003ccode\u003e\u0026lt;base\u0026gt;\u003c/code\u003e must be inside \u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003e\naccording to HTML specifications. (CVE-2026-28350)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.3 (2025-10-02)\u003c/h1\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTests updated to work correctly with new lxml and libxml2 releases.\u003c/li\u003e\n\u003cli\u003ePython 3.6 and 3.7 are no longer tested.\u003c/li\u003e\n\u003cli\u003eImproved documentation about CSS removal behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.2 (2025-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elxml_html_clean\u003c/code\u003e now correctly handles HTML input as bytes\nas it did before the 0.2.0 release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e0.4.1 (2024-11-15)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved superfluous debug prints.\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/fedora-python/lxml_html_clean/commit/fd10d79cf8a4d4a962e139aee6d02dec02b2de7c\"\u003e\u003ccode\u003efd10d79\u003c/code\u003e\u003c/a\u003e Add more tests for different combinations of backslashes and unicode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/5b7e2288d9e5bda81d1fcf6a4feaed362534899e\"\u003e\u003ccode\u003e5b7e228\u003c/code\u003e\u003c/a\u003e Restore the removal of all backslashes from styles after decoding of unicode ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/88da8f9e679190ae06f1238106dd9fbd1d87bfbb\"\u003e\u003ccode\u003e88da8f9\u003c/code\u003e\u003c/a\u003e Prepare release 0.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/9c5612ca33b941eec4178abf8a5294b103403f34\"\u003e\u003ccode\u003e9c5612c\u003c/code\u003e\u003c/a\u003e Remove \u0026lt;base\u0026gt; tags to prevent URL hijacking attacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/2ef732667ddbc74ea59847bcf24b75809aaeed3b\"\u003e\u003ccode\u003e2ef7326\u003c/code\u003e\u003c/a\u003e Implement unicode escape decoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/7c854afd949ff82cc6e81a666962e07b739706cf\"\u003e\u003ccode\u003e7c854af\u003c/code\u003e\u003c/a\u003e Add missing Python 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/80cebf7156449bd48d2d6106a70c7442874fa1f9\"\u003e\u003ccode\u003e80cebf7\u003c/code\u003e\u003c/a\u003e Continue using the package link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/1cef82e0647549b901452f45396ded8e6b2bceab\"\u003e\u003ccode\u003e1cef82e\u003c/code\u003e\u003c/a\u003e Update safe sanitizer recommendation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/79f35f4b7542bf87286b45764a7b0bdf6830bb36\"\u003e\u003ccode\u003e79f35f4\u003c/code\u003e\u003c/a\u003e CI: Drop Python 3.8, add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/commit/fab1dd4a23cbad1cdd4f2cebd2d6cae1130565bd\"\u003e\u003ccode\u003efab1dd4\u003c/code\u003e\u003c/a\u003e Release 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fedora-python/lxml_html_clean/compare/0.4.0...0.4.4\"\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=lxml-html-clean\u0026package-manager=pip\u0026previous-version=0.4.0\u0026new-version=0.4.4)](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)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/HumanSignal/label-studio/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/HumanSignal/label-studio/pull/9508","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio/issues/9508","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9508/packages"}}]}