{"id":76362,"name":"zensical","ecosystem":"pip","repository_url":"https://github.com/zensical/zensical","issues_count":123,"created_at":"2025-11-13T05:01:44.044Z","updated_at":"2025-11-13T05:01:44.044Z","purl":"pkg:pypi/zensical","metadata":{"id":11081862,"name":"zensical","ecosystem":"pypi","description":"A modern static site generator built by the creators of Material for MkDocs","homepage":"https://github.com/zensical/zensical","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/zensical/zensical","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2024-11-25T08:52:19.000Z","latest_release_published_at":"2025-11-12T20:03:58.000Z","latest_release_number":"0.0.7","last_synced_at":"2025-11-12T20:18:02.384Z","created_at":"2024-11-25T09:02:44.351Z","updated_at":"2025-11-12T20:42:16.990Z","registry_url":"https://pypi.org/project/zensical/","install_command":"pip install zensical --index-url https://pypi.org/simple","documentation_url":"https://zensical.org/docs/","metadata":{"funding":null,"documentation":"https://zensical.org/docs/","classifiers":["Development Status :: 3 - Alpha","Environment :: Web Environment","License :: OSI Approved :: MIT License","Programming Language :: Python","Programming Language :: Rust","Topic :: Documentation","Topic :: Software Development :: Documentation","Topic :: Text Processing :: Markup :: HTML","Topic :: Text Processing :: Markup :: Markdown"],"normalized_name":"zensical","project_status":null},"repo_metadata":{"id":300986810,"uuid":"985664957","full_name":"zensical/zensical","owner":"zensical","description":"A modern static site generator by the creators of Material for MkDocs","archived":false,"fork":false,"pushed_at":"2025-11-07T18:43:14.000Z","size":1239,"stargazers_count":715,"open_issues_count":20,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-11-10T05:17:32.105Z","etag":null,"topics":["documentation","static-site-generator"],"latest_commit_sha":null,"homepage":"https://zensical.org/docs/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zensical.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-18T09:07:43.000Z","updated_at":"2025-11-10T05:05:42.000Z","dependencies_parsed_at":"2025-06-24T15:58:43.885Z","dependency_job_id":"82a8e118-7cb7-4435-8272-1a5c48465a5c","html_url":"https://github.com/zensical/zensical","commit_stats":null,"previous_names":["zensical/zensical"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/zensical/zensical","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zensical","download_url":"https://codeload.github.com/zensical/zensical/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284108227,"owners_count":26948652,"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","status":"online","status_checked_at":"2025-11-12T02:00:06.336Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"zensical","name":"Zensical","uuid":"152389683","kind":"organization","description":"Adaptive systems for evolving ideas","email":null,"website":"https://zensical.org","location":null,"twitter":"zensical","company":null,"icon_url":"https://avatars.githubusercontent.com/u/152389683?v=4","repositories_count":1,"last_synced_at":"2025-05-16T19:39:08.917Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/zensical","funding_links":[],"total_stars":0,"followers":9,"following":0,"created_at":"2025-05-16T19:39:08.939Z","updated_at":"2025-05-16T19:39:08.939Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zensical","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zensical/repositories"},"tags":[{"name":"0.0.5","sha":"874867e894672342f1f102b0e193c1561fa8b4a4","kind":"commit","published_at":"2025-11-07T18:42:50.000Z","download_url":"https://codeload.github.com/zensical/zensical/tar.gz/0.0.5","html_url":"https://github.com/zensical/zensical/releases/tag/0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zensical/zensical@0.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/tags/0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/tags/0.0.5/manifests"},{"name":"0.0.4","sha":"c22cfbc33ebc2756000401a0b939a42bb2aa59c2","kind":"commit","published_at":"2025-11-06T12:47:45.000Z","download_url":"https://codeload.github.com/zensical/zensical/tar.gz/0.0.4","html_url":"https://github.com/zensical/zensical/releases/tag/0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zensical/zensical@0.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/tags/0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/tags/0.0.4/manifests"},{"name":"0.0.3","sha":"11bd8c006868bd5ae3e961ca388dec7cd20f26ee","kind":"commit","published_at":"2025-11-05T09:01:53.000Z","download_url":"https://codeload.github.com/zensical/zensical/tar.gz/0.0.3","html_url":"https://github.com/zensical/zensical/releases/tag/0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zensical/zensical@0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/tags/0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/tags/0.0.3/manifests"}]},"repo_metadata_updated_at":"2025-11-12T20:42:16.990Z","dependent_packages_count":0,"downloads":6494,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":56.19752659399856,"dependent_packages_count":9.985379906258457,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":33.09145325012851},"purl":"pkg:pypi/zensical","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/zensical","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/zensical","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/zensical/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-11-06T10:07:49.173Z","issues_count":0,"pull_requests_count":2,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":440.0,"issues_closed_count":0,"pull_requests_closed_count":2,"pull_request_authors_count":2,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":2,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":440.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/zensical%2Fzensical/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/zensical/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/zensical/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/zensical/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/zensical/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/zensical/codemeta","maintainers":[{"uuid":"zensical","login":"zensical","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/zensical/","role":"Owner","created_at":"2025-03-29T08:17:15.645Z","updated_at":"2025-03-29T08:17:15.645Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/zensical/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":751606,"maintainers_count":319247,"namespaces_count":0,"keywords_count":247375,"github":"pypi","metadata":{"funded_packages_count":52341},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-11-12T06:41:04.796Z","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":62,"unique_repositories_count_past_30_days":25,"recent_issues":[{"uuid":"4606024721","node_id":"PR_kwDOSzP2N87jj32O","number":6,"state":"open","title":"Bump zensical from 0.0.43 to 0.0.44","user":"dependabot[bot]","labels":["dependencies","frontend","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-07T03:21:22.000Z","updated_at":"2026-06-07T03:22:04.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.43","new_version":"0.0.44","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.43 to 0.0.44.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes several bugs related to link validation and macros, and ensures that dotfiles are not removed from the site directory during generation.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eeb72115 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003ec40f649 \u003cstrong\u003ecompat\u003c/strong\u003e – brackets in indented code blocks recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e93cc869 \u003cstrong\u003ecompat\u003c/strong\u003e – snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea212c59 \u003cstrong\u003ezensical\u003c/strong\u003e – don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edb1f19c \u003cstrong\u003ecompat\u003c/strong\u003e – provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e9b452cb \u003cstrong\u003ezensical\u003c/strong\u003e – improve error message when missing icon is used (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed7ccbe6 \u003cstrong\u003ezensical\u003c/strong\u003e, \u003cstrong\u003ecompat\u003c/strong\u003e – anchors with escaped chars not matched during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8b7e29e \u003cstrong\u003ecompat\u003c/strong\u003e – empty footnote ref classified as link ref (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/702\"\u003e#702\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/zensical/zensical/commit/c7fe3e78a5bc243d373fe017febf8704b59a6413\"\u003e\u003ccode\u003ec7fe3e7\u003c/code\u003e\u003c/a\u003e chore: release v0.0.44\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/033da3cb024f8f615accce6e7ee886999dc8bada\"\u003e\u003ccode\u003e033da3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/731\"\u003e#731\u003c/a\u003e from zensical/fix/validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/fe04446967d5eb060440498b21afe09cfad37bb7\"\u003e\u003ccode\u003efe04446\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/eb7211503c56e2a97f9e7313f7c7d7b54b2b8794\"\u003e\u003ccode\u003eeb72115\u003c/code\u003e\u003c/a\u003e fix: ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a4866d0fa60bf27064353c3a8d781b961a430b96\"\u003e\u003ccode\u003ea4866d0\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/c40f649f7bb3be56e15b52b2daa4af2558485777\"\u003e\u003ccode\u003ec40f649\u003c/code\u003e\u003c/a\u003e fix: brackets in indented code blocks recognized as unresolved link reference...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/93cc8699789f86f6b0b60033c95a706066818d83\"\u003e\u003ccode\u003e93cc869\u003c/code\u003e\u003c/a\u003e fix: snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a212c5957882f17d544dfc60b01b52126a67a26c\"\u003e\u003ccode\u003ea212c59\u003c/code\u003e\u003c/a\u003e fix: don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/db1f19c4ae3bce8ec21362b79c170f7637c0c8b5\"\u003e\u003ccode\u003edb1f19c\u003c/code\u003e\u003c/a\u003e fix: provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/76222a8b2a8b6868b407403e6157e4a743e3d30a\"\u003e\u003ccode\u003e76222a8\u003c/code\u003e\u003c/a\u003e chore: fix agent doctests, run cargo test in CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.43...v0.0.44\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.43\u0026new-version=0.0.44)](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/SecuredNodeDynamics/Downtify/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SecuredNodeDynamics%2FDowntify/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4600220266","node_id":"PR_kwDOAKu6j87jRQLV","number":30,"state":"open","title":"Bump zensical from 0.0.43 to 0.0.44","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-05T21:24:03.000Z","updated_at":"2026-06-05T21:25:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.43","new_version":"0.0.44","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.43 to 0.0.44.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes several bugs related to link validation and macros, and ensures that dotfiles are not removed from the site directory during generation.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eeb72115 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003ec40f649 \u003cstrong\u003ecompat\u003c/strong\u003e – brackets in indented code blocks recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e93cc869 \u003cstrong\u003ecompat\u003c/strong\u003e – snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea212c59 \u003cstrong\u003ezensical\u003c/strong\u003e – don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edb1f19c \u003cstrong\u003ecompat\u003c/strong\u003e – provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e9b452cb \u003cstrong\u003ezensical\u003c/strong\u003e – improve error message when missing icon is used (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed7ccbe6 \u003cstrong\u003ezensical\u003c/strong\u003e, \u003cstrong\u003ecompat\u003c/strong\u003e – anchors with escaped chars not matched during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8b7e29e \u003cstrong\u003ecompat\u003c/strong\u003e – empty footnote ref classified as link ref (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/702\"\u003e#702\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/zensical/zensical/commit/c7fe3e78a5bc243d373fe017febf8704b59a6413\"\u003e\u003ccode\u003ec7fe3e7\u003c/code\u003e\u003c/a\u003e chore: release v0.0.44\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/033da3cb024f8f615accce6e7ee886999dc8bada\"\u003e\u003ccode\u003e033da3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/731\"\u003e#731\u003c/a\u003e from zensical/fix/validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/fe04446967d5eb060440498b21afe09cfad37bb7\"\u003e\u003ccode\u003efe04446\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/eb7211503c56e2a97f9e7313f7c7d7b54b2b8794\"\u003e\u003ccode\u003eeb72115\u003c/code\u003e\u003c/a\u003e fix: ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a4866d0fa60bf27064353c3a8d781b961a430b96\"\u003e\u003ccode\u003ea4866d0\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/c40f649f7bb3be56e15b52b2daa4af2558485777\"\u003e\u003ccode\u003ec40f649\u003c/code\u003e\u003c/a\u003e fix: brackets in indented code blocks recognized as unresolved link reference...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/93cc8699789f86f6b0b60033c95a706066818d83\"\u003e\u003ccode\u003e93cc869\u003c/code\u003e\u003c/a\u003e fix: snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a212c5957882f17d544dfc60b01b52126a67a26c\"\u003e\u003ccode\u003ea212c59\u003c/code\u003e\u003c/a\u003e fix: don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/db1f19c4ae3bce8ec21362b79c170f7637c0c8b5\"\u003e\u003ccode\u003edb1f19c\u003c/code\u003e\u003c/a\u003e fix: provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/76222a8b2a8b6868b407403e6157e4a743e3d30a\"\u003e\u003ccode\u003e76222a8\u003c/code\u003e\u003c/a\u003e chore: fix agent doctests, run cargo test in CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.43...v0.0.44\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.43\u0026new-version=0.0.44)](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/eggzec/soerp/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggzec%2Fsoerp/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"},{"uuid":"4598659619","node_id":"PR_kwDONC8Qws7jMAnR","number":522,"state":"open","title":"⬆️ Update zensical requirement from \u003c0.0.44,\u003e=0.0.32 to \u003e=0.0.32,\u003c0.0.45 in the dependencies group","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":12,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-05T17:03:21.000Z","updated_at":"2026-06-05T17:05:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆️ Update","packages":[{"name":"zensical","old_version":"\u003c0.0.44,\u003e=0.0.32","new_version":"\u003e=0.0.32,\u003c0.0.45","repository_url":"https://github.com/zensical/zensical"}],"path":"the dependencies group","ecosystem":"pip"},"body":"Updates the requirements on [zensical](https://github.com/zensical/zensical) to permit the latest version.\nUpdates `zensical` to 0.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes several bugs related to link validation and macros, and ensures that dotfiles are not removed from the site directory during generation.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eeb72115 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003ec40f649 \u003cstrong\u003ecompat\u003c/strong\u003e – brackets in indented code blocks recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e93cc869 \u003cstrong\u003ecompat\u003c/strong\u003e – snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea212c59 \u003cstrong\u003ezensical\u003c/strong\u003e – don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edb1f19c \u003cstrong\u003ecompat\u003c/strong\u003e – provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e9b452cb \u003cstrong\u003ezensical\u003c/strong\u003e – improve error message when missing icon is used (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed7ccbe6 \u003cstrong\u003ezensical\u003c/strong\u003e, \u003cstrong\u003ecompat\u003c/strong\u003e – anchors with escaped chars not matched during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8b7e29e \u003cstrong\u003ecompat\u003c/strong\u003e – empty footnote ref classified as link ref (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/702\"\u003e#702\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/zensical/zensical/commit/c7fe3e78a5bc243d373fe017febf8704b59a6413\"\u003e\u003ccode\u003ec7fe3e7\u003c/code\u003e\u003c/a\u003e chore: release v0.0.44\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/033da3cb024f8f615accce6e7ee886999dc8bada\"\u003e\u003ccode\u003e033da3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/731\"\u003e#731\u003c/a\u003e from zensical/fix/validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/fe04446967d5eb060440498b21afe09cfad37bb7\"\u003e\u003ccode\u003efe04446\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/eb7211503c56e2a97f9e7313f7c7d7b54b2b8794\"\u003e\u003ccode\u003eeb72115\u003c/code\u003e\u003c/a\u003e fix: ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a4866d0fa60bf27064353c3a8d781b961a430b96\"\u003e\u003ccode\u003ea4866d0\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/c40f649f7bb3be56e15b52b2daa4af2558485777\"\u003e\u003ccode\u003ec40f649\u003c/code\u003e\u003c/a\u003e fix: brackets in indented code blocks recognized as unresolved link reference...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/93cc8699789f86f6b0b60033c95a706066818d83\"\u003e\u003ccode\u003e93cc869\u003c/code\u003e\u003c/a\u003e fix: snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a212c5957882f17d544dfc60b01b52126a67a26c\"\u003e\u003ccode\u003ea212c59\u003c/code\u003e\u003c/a\u003e fix: don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/db1f19c4ae3bce8ec21362b79c170f7637c0c8b5\"\u003e\u003ccode\u003edb1f19c\u003c/code\u003e\u003c/a\u003e fix: provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/76222a8b2a8b6868b407403e6157e4a743e3d30a\"\u003e\u003ccode\u003e76222a8\u003c/code\u003e\u003c/a\u003e chore: fix agent doctests, run cargo test in CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.32...v0.0.44\"\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/7rikazhexde/json2vars-setter/pull/522","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rikazhexde%2Fjson2vars-setter/issues/522","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/522/packages"},{"uuid":"4594453148","node_id":"PR_kwDOSxqrEc7i-MuI","number":3,"state":"open","title":"Bump zensical from 0.0.43 to 0.0.44","user":"dependabot[bot]","labels":["dependencies","frontend","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-05T05:27:55.000Z","updated_at":"2026-06-05T05:28:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.43","new_version":"0.0.44","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.43 to 0.0.44.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes several bugs related to link validation and macros, and ensures that dotfiles are not removed from the site directory during generation.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eeb72115 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003ec40f649 \u003cstrong\u003ecompat\u003c/strong\u003e – brackets in indented code blocks recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e93cc869 \u003cstrong\u003ecompat\u003c/strong\u003e – snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea212c59 \u003cstrong\u003ezensical\u003c/strong\u003e – don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edb1f19c \u003cstrong\u003ecompat\u003c/strong\u003e – provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e9b452cb \u003cstrong\u003ezensical\u003c/strong\u003e – improve error message when missing icon is used (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed7ccbe6 \u003cstrong\u003ezensical\u003c/strong\u003e, \u003cstrong\u003ecompat\u003c/strong\u003e – anchors with escaped chars not matched during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8b7e29e \u003cstrong\u003ecompat\u003c/strong\u003e – empty footnote ref classified as link ref (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/702\"\u003e#702\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/zensical/zensical/commit/c7fe3e78a5bc243d373fe017febf8704b59a6413\"\u003e\u003ccode\u003ec7fe3e7\u003c/code\u003e\u003c/a\u003e chore: release v0.0.44\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/033da3cb024f8f615accce6e7ee886999dc8bada\"\u003e\u003ccode\u003e033da3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/731\"\u003e#731\u003c/a\u003e from zensical/fix/validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/fe04446967d5eb060440498b21afe09cfad37bb7\"\u003e\u003ccode\u003efe04446\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/eb7211503c56e2a97f9e7313f7c7d7b54b2b8794\"\u003e\u003ccode\u003eeb72115\u003c/code\u003e\u003c/a\u003e fix: ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a4866d0fa60bf27064353c3a8d781b961a430b96\"\u003e\u003ccode\u003ea4866d0\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/c40f649f7bb3be56e15b52b2daa4af2558485777\"\u003e\u003ccode\u003ec40f649\u003c/code\u003e\u003c/a\u003e fix: brackets in indented code blocks recognized as unresolved link reference...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/93cc8699789f86f6b0b60033c95a706066818d83\"\u003e\u003ccode\u003e93cc869\u003c/code\u003e\u003c/a\u003e fix: snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a212c5957882f17d544dfc60b01b52126a67a26c\"\u003e\u003ccode\u003ea212c59\u003c/code\u003e\u003c/a\u003e fix: don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/db1f19c4ae3bce8ec21362b79c170f7637c0c8b5\"\u003e\u003ccode\u003edb1f19c\u003c/code\u003e\u003c/a\u003e fix: provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/76222a8b2a8b6868b407403e6157e4a743e3d30a\"\u003e\u003ccode\u003e76222a8\u003c/code\u003e\u003c/a\u003e chore: fix agent doctests, run cargo test in CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.43...v0.0.44\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.43\u0026new-version=0.0.44)](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/AmitHaina/Downtify/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmitHaina%2FDowntify/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"4584137023","node_id":"PR_kwDOG1Zs187icNPd","number":12931,"state":"open","title":"Chore(deps): Bump the utilities-patch group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["non-trivial","backend","dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-03T22:29:41.000Z","updated_at":"2026-06-03T22:45:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"utilities-patch","update_count":4,"packages":[{"name":"llama-index-core","old_version":"0.14.21","new_version":"0.14.22","repository_url":"https://github.com/run-llama/llama_index"},{"name":"psycopg-pool","old_version":"3.3","new_version":"3.3.1","repository_url":"https://github.com/psycopg/psycopg"},{"name":"zensical","old_version":"0.0.36","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"},{"name":"ruff","old_version":"0.15.12","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the utilities-patch group with 4 updates in the / directory: [llama-index-core](https://github.com/run-llama/llama_index), [psycopg-pool](https://github.com/psycopg/psycopg), [zensical](https://github.com/zensical/zensical) and [ruff](https://github.com/astral-sh/ruff).\n\nUpdates `llama-index-core` from 0.14.21 to 0.14.22\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/run-llama/llama_index/releases\"\u003ellama-index-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.22\u003c/h2\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003ch2\u003e[2026-05-14]\u003c/h2\u003e\n\u003ch3\u003ellama-index-agent-agentmesh [0.2.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-agentops [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-aim [0.4.1]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-argilla [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-arize-phoenix [0.7.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-honeyhive [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-langfuse [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-literalai [1.4.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-openinference [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-opik [1.3.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\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/run-llama/llama_index/blob/main/CHANGELOG.md\"\u003ellama-index-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ellama-index-core [0.14.22]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(instrumentation): let SparseEmbeddingStartEvent inherit EmbeddingStartEvent (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21119\"\u003e#21119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: remove stale exports from public \u003cstrong\u003eall\u003c/strong\u003e lists (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21133\"\u003e#21133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve cache writes from multiprocessing workers in IngestionPipeline (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21301\"\u003e#21301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(core): Multimodal synthesis (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: avoid mutating response.raw in LLM event model_dump methods (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21424\"\u003e#21424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(memory): handle DocumentBlock in Memory._estimate_token_count (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21529\"\u003e#21529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: propagate contextvars in sync_to_async for FunctionTool (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21558\"\u003e#21558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-adapter [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-alephalpha [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-alibabacloud-aisearch [0.4.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-anyscale [0.5.1]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-autoembeddings [0.3.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-azure-inference [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-azure-openai [0.5.2]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-baseten [0.2.1]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\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/run-llama/llama_index/commit/77b78b507b975d9caa9e035df76a19ee4f76b0c5\"\u003e\u003ccode\u003e77b78b5\u003c/code\u003e\u003c/a\u003e Release 0.14.22 (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21667\"\u003e#21667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/462d9400dfe28d63fb92886dda4b5d92b4038546\"\u003e\u003ccode\u003e462d940\u003c/code\u003e\u003c/a\u003e vbump google genai (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21649\"\u003e#21649\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/87ef084425b3d159e16ebef691f6c3410898b313\"\u003e\u003ccode\u003e87ef084\u003c/code\u003e\u003c/a\u003e Google LLMs: Error earlier if file is too large with vertexai client (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21642\"\u003e#21642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/fd50076917af265aaed82d77de14ff31871506e9\"\u003e\u003ccode\u003efd50076\u003c/code\u003e\u003c/a\u003e mass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/5ef6504c70a5d052b625d1fc636b69b9af93c71f\"\u003e\u003ccode\u003e5ef6504\u003c/code\u003e\u003c/a\u003e fix(google-genai): pass DocumentBlock.title as display_name to File API (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21641\"\u003e#21641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/0f70eb5ccd723f7a8581977dd4b32056c5b8f1d2\"\u003e\u003ccode\u003e0f70eb5\u003c/code\u003e\u003c/a\u003e fix: propagate contextvars in sync_to_async for FunctionTool (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21558\"\u003e#21558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/b4a235dec21e5a08bc0f08f617318f417da4e6a8\"\u003e\u003ccode\u003eb4a235d\u003c/code\u003e\u003c/a\u003e feat(bedrock-converse): add async_client param to reuse a shared aioboto3 cli...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/10a2d84a8a97a9d07816bed16a0eeb1df4ee0a97\"\u003e\u003ccode\u003e10a2d84\u003c/code\u003e\u003c/a\u003e fix(azure-openai): use deployment name in AzureOpenAIResponses structured pre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/90839b36be724602ea32801c0a3175857d09c715\"\u003e\u003ccode\u003e90839b3\u003c/code\u003e\u003c/a\u003e fix(memory): handle DocumentBlock in Memory._estimate_token_count (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21529\"\u003e#21529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/79cddb5725a763d6b77d8ad381ee2c88b61cce84\"\u003e\u003ccode\u003e79cddb5\u003c/code\u003e\u003c/a\u003e Fix OTel context detach noise (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21587\"\u003e#21587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/run-llama/llama_index/compare/v0.14.21...v0.14.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg-pool` from 3.3 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg-pool's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.5 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDiscard prepared statements upon :sql:\u003ccode\u003eALTER *\u003c/code\u003e or \u003ccode\u003eDISCARD *\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1307](https://github.com/psycopg/psycopg/issues/1307)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.4\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix possible spurious connection timeout in systems with very long uptimes\nin C extension (:ticket:\u003ccode\u003e[#1280](https://github.com/psycopg/psycopg/issues/1280)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix client-side adaptation of enums whose name require quotes\n(:ticket:\u003ccode\u003e[#1298](https://github.com/psycopg/psycopg/issues/1298)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eConsistently populate \u003ccode\u003e~Cursor.statusmessage\u003c/code\u003e after \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1302](https://github.com/psycopg/psycopg/issues/1302)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\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/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a\"\u003e\u003ccode\u003e9bdd78c\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa\"\u003e\u003ccode\u003e4d27426\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/server-cursor-iter'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449\"\u003e\u003ccode\u003eb9b82e8\u003c/code\u003e\u003c/a\u003e fix: fix iteration on server-side cursor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf\"\u003e\u003ccode\u003e2a75357\u003c/code\u003e\u003c/a\u003e fix: add test to verify iteration in server-side cursor broken\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/25ebaa3946bc0912e645dbf4d490a29865a2fc3f\"\u003e\u003ccode\u003e25ebaa3\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.1.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/754282246e04c7ea32643de763fabd7fca7169d4\"\u003e\u003ccode\u003e7542822\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/380ccceb57ef44452a4c3e851e5e6dee09eb9eaf\"\u003e\u003ccode\u003e380ccce\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.0...3.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.36 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.36...v0.0.43\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.12 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.12...0.15.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/paperless-ngx/paperless-ngx/pull/12931","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/paperless-ngx%2Fpaperless-ngx/issues/12931","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12931/packages"},{"uuid":"4555529108","node_id":"PR_kwDOF8_QEs7g_sBJ","number":1989,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","internal","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-30T19:59:46.000Z","updated_at":"2026-05-31T06:06:01.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":9,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"ruff","old_version":"0.15.13","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"ty","old_version":"0.0.35","new_version":"0.0.39","repository_url":"https://github.com/astral-sh/ty"},{"name":"prek","old_version":"0.3.13","new_version":"0.4.1","repository_url":"https://github.com/j178/prek"},{"name":"zizmor","old_version":"1.24.1","new_version":"1.25.2","repository_url":"https://github.com/zizmorcore/zizmor"},{"name":"pygithub","old_version":"2.9.0","new_version":"2.9.1","repository_url":"https://github.com/pygithub/pygithub"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.42` | `0.0.43` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.13` | `0.15.14` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.35` | `0.0.39` |\n| [prek](https://github.com/j178/prek) | `0.3.13` | `0.4.1` |\n| [zizmor](https://github.com/zizmorcore/zizmor) | `1.24.1` | `1.25.2` |\n| [pygithub](https://github.com/pygithub/pygithub) | `2.9.0` | `2.9.1` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.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.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\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\u003eVersion 26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\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/87928e6d6761a4a6d22250e1fee5601b3998086e\"\u003e\u003ccode\u003e87928e6\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5140\"\u003e#5140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c970a49702488739add6c728122deb3a99900803\"\u003e\u003ccode\u003ec970a49\u003c/code\u003e\u003c/a\u003e Preserve comments before fmt: skip lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5809338fd5f92d50e80c2ad312292ae6d428a480\"\u003e\u003ccode\u003e5809338\u003c/code\u003e\u003c/a\u003e Preserve inline comments inside annotation subscripts (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/61361b71995f6ea44ce01915bacd3ecc50642507\"\u003e\u003ccode\u003e61361b7\u003c/code\u003e\u003c/a\u003e docs: add Neovim integration guide and fix http link (\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ebe6018e3254629788376e619207719fbe34a849\"\u003e\u003ccode\u003eebe6018\u003c/code\u003e\u003c/a\u003e CI Hotfixes (\u003ca href=\"https://redirect.github.com/psf/black/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9cbd95f80e97c1ab4d690d1d41b81579a13bf75c\"\u003e\u003ccode\u003e9cbd95f\u003c/code\u003e\u003c/a\u003e Fix publish binaries again on Windows (\u003ca href=\"https://redirect.github.com/psf/black/issues/5134\"\u003e#5134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/3dc8e6c41911bdaedb4bac8d633979c34a112b78\"\u003e\u003ccode\u003e3dc8e6c\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6d0fff0d5a965b9d0d3dbd7c5738d835fd574130\"\u003e\u003ccode\u003e6d0fff0\u003c/code\u003e\u003c/a\u003e Fix publish binaries workflow (\u003ca href=\"https://redirect.github.com/psf/black/issues/5133\"\u003e#5133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.42 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 to 0.136.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🍱 Update sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.13 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.13...0.15.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.35 to 0.0.39\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.39\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-22.\u003c/p\u003e\n\u003cp\u003eThis release removes the Python 3.9 branches from our vendored standard library stubs. ty now only has \u0026quot;full\u0026quot; support for\nPython 3.10 and later, but will still report version-specific syntax errors and other diagnostics when \u003ccode\u003e--python-version 3.9\u003c/code\u003e\nis provided via the CLI.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid panicking on \u003ccode\u003e__new__\u003c/code\u003e assignments to classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve declaration order when synthesizing class fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25249\"\u003e#25249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003edict\u003c/code\u003e-compatible fallbacks in TypedDict unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25242\"\u003e#25242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Quick Fix to remove redundant cast (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25211\"\u003e#25211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClassify property declaration semantic tokens (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25322\"\u003e#25322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEscape HTML syntax in docstring rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25247\"\u003e#25247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer symbols from standard library over those of the same name from third party libraries for import completions. (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25108\"\u003e#25108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type aliases in document symbols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25302\"\u003e#25302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostics\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd error context for extra callable parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25269\"\u003e#25269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid exponential blow-up in fall-through narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25278\"\u003e#25278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up include filtering for projects with many literal include patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25266\"\u003e#25266\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a diagnostic for subclassing with \u003ccode\u003eorder=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21704\"\u003e#21704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFull-scope bidirectional inference for unconstrained container literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25279\"\u003e#25279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer \u003ccode\u003edict(TypedDict)\u003c/code\u003e as \u003ccode\u003edict[str, object]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24852\"\u003e#24852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject incompatible explicit variance in generic base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25327\"\u003e#25327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport multi-inference through type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25245\"\u003e#25245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25271\"\u003e#25271\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25172\"\u003e#25172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sqqueak\"\u003e\u003ccode\u003e@​sqqueak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.39\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-22.\u003c/p\u003e\n\u003cp\u003eThis release removes the Python 3.9 branches from our vendored standard library stubs. ty now only has \u0026quot;full\u0026quot; support for\nPython 3.10 and later, but will still report version-specific syntax errors and other diagnostics when \u003ccode\u003e--python-version 3.9\u003c/code\u003e\nis provided via the CLI.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid panicking on \u003ccode\u003e__new__\u003c/code\u003e assignments to classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve declaration order when synthesizing class fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25249\"\u003e#25249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003edict\u003c/code\u003e-compatible fallbacks in TypedDict unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25242\"\u003e#25242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Quick Fix to remove redundant cast (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25211\"\u003e#25211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClassify property declaration semantic tokens (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25322\"\u003e#25322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEscape HTML syntax in docstring rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25247\"\u003e#25247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer symbols from standard library over those of the same name from third party libraries for import completions. (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25108\"\u003e#25108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type aliases in document symbols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25302\"\u003e#25302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostics\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd error context for extra callable parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25269\"\u003e#25269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid exponential blow-up in fall-through narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25278\"\u003e#25278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up include filtering for projects with many literal include patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25266\"\u003e#25266\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a diagnostic for subclassing with \u003ccode\u003eorder=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21704\"\u003e#21704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFull-scope bidirectional inference for unconstrained container literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25279\"\u003e#25279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer \u003ccode\u003edict(TypedDict)\u003c/code\u003e as \u003ccode\u003edict[str, object]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24852\"\u003e#24852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject incompatible explicit variance in generic base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25327\"\u003e#25327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport multi-inference through type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25245\"\u003e#25245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25271\"\u003e#25271\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25172\"\u003e#25172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sqqueak\"\u003e\u003ccode\u003e@​sqqueak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/0205125174c135d6fc4014244dee374678b61c72\"\u003e\u003ccode\u003e0205125\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.39 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3516\"\u003e#3516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/ae8058d40e641b545bbad046c487e964206a2286\"\u003e\u003ccode\u003eae8058d\u003c/code\u003e\u003c/a\u003e Update maturin to v1.13.3 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3494\"\u003e#3494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/33b60f8ad0f2da648b867831548a4b8c7985647d\"\u003e\u003ccode\u003e33b60f8\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/1d3efc1d68e36a8f982fa73b1f8c2a5ebc50fcde\"\u003e\u003ccode\u003e1d3efc1\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.38 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3492\"\u003e#3492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f5100ccde50ff577fa311add5232ae6074ed68f9\"\u003e\u003ccode\u003ef5100cc\u003c/code\u003e\u003c/a\u003e scripts/update_schemastore: use -C to allow re-running schema update on exist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f18aed6430c781ff3bc4fe41d9b5c2a7161657c4\"\u003e\u003ccode\u003ef18aed6\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.37 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/a63e55929645f8eeaa6f28117afda8d2ed39d1a4\"\u003e\u003ccode\u003ea63e559\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.36 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3463\"\u003e#3463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/94370d5b43c48d01720a9e65d8d8d5286b6697b1\"\u003e\u003ccode\u003e94370d5\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3449\"\u003e#3449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.35...0.0.39\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.3.13 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-20.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-push range after rebase (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2089\"\u003e#2089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer extensions over loose filename tags (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2092\"\u003e#2092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce run filtering allocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.4.1\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.1/prek-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.4.1/prek-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload prek 0.4.1\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-apple-darwin.tar.gz\"\u003eprek-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-apple-darwin.tar.gz\"\u003eprek-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-pc-windows-msvc.zip\"\u003eprek-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-i686-pc-windows-msvc.zip\"\u003eprek-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-pc-windows-msvc.zip\"\u003eprek-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-unknown-linux-gnu.tar.gz\"\u003eprek-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-20.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-push range after rebase (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2089\"\u003e#2089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer extensions over loose filename tags (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2092\"\u003e#2092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce run filtering allocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cp\u003eThese are narrow cleanup breaks in behavior that was either temporary or never worked correctly. Most users should not need to change anything.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated hook scripts no longer preserve \u003ccode\u003e-q\u003c/code\u003e, \u003ccode\u003e-v\u003c/code\u003e, or \u003ccode\u003e--no-progress\u003c/code\u003e passed to \u003ccode\u003eprek install\u003c/code\u003e. This only affects users who expected those global flags to be baked into installed hooks. (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1966\"\u003e#1966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage_version\u003c/code\u003e no longer accepts direct executable paths. Use \u003ccode\u003elanguage_version: system\u003c/code\u003e for a system toolchain, or use a supported version request instead. This path form did not work reliably before, so existing working configs should be unaffected. (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1831\"\u003e#1831\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpand tilde in \u003ccode\u003e--config\u003c/code\u003e, \u003ccode\u003e--cd\u003c/code\u003e, \u003ccode\u003e--log-file\u003c/code\u003e and \u003ccode\u003e--git-dir\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2063\"\u003e#2063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent auto-update cooldown downgrades (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse managed npm cache for node hooks (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2075\"\u003e#2075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix npm config env overrides for node hooks (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2074\"\u003e#2074\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd cookbook page for enabling Git 2.54 config-based global hooks (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2061\"\u003e#2061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/871b9edb65b7978c2c53d94f60a433cb9e120132\"\u003e\u003ccode\u003e871b9ed\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.1 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2107\"\u003e#2107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/3c26faf5be0c9ad0e61309650479e063b8cb0037\"\u003e\u003ccode\u003e3c26faf\u003c/code\u003e\u003c/a\u003e Optimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/7780f1149565ff430b86be1f688dce7f680c6760\"\u003e\u003ccode\u003e7780f11\u003c/code\u003e\u003c/a\u003e Clean up run hook installation flow (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2105\"\u003e#2105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/c5dc885bcbc3d293d6c20ffb43b7be970b55b60d\"\u003e\u003ccode\u003ec5dc885\u003c/code\u003e\u003c/a\u003e Refine hook install filtering (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2104\"\u003e#2104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/9db879e92760cfa3c6da748672237a1b1d81ce12\"\u003e\u003ccode\u003e9db879e\u003c/code\u003e\u003c/a\u003e Skip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/2a0da57faddae03fd6d8985776ab2ec33d0b99e5\"\u003e\u003ccode\u003e2a0da57\u003c/code\u003e\u003c/a\u003e Simplify workspace file handling (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/33ca06054451602a7988b64ac6cf12b1cf5fddad\"\u003e\u003ccode\u003e33ca060\u003c/code\u003e\u003c/a\u003e Lock file maintenance (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2072\"\u003e#2072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/03f11c00b169b9beea59253fc5a0c7efe6dc9fa6\"\u003e\u003ccode\u003e03f11c0\u003c/code\u003e\u003c/a\u003e Update GitHub Actions (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2101\"\u003e#2101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/354f431c3c0420d5be83e6c59f3b644c907793e6\"\u003e\u003ccode\u003e354f431\u003c/code\u003e\u003c/a\u003e Update dependency uv to v0.11.13 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2094\"\u003e#2094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/4a41828a33efaccccaba76e96942314ac3309e75\"\u003e\u003ccode\u003e4a41828\u003c/code\u003e\u003c/a\u003e Update Rust crate quick-xml to v0.39.4 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2098\"\u003e#2098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.3.13...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zizmor` from 1.24.1 to 1.25.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zizmorcore/zizmor/releases\"\u003ezizmor's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.25.2\u003c/h2\u003e\n\u003ch2\u003eBug Fixes 🐛\u003ca href=\"https://docs.zizmor.sh/release-notes/#bug-fixes\"\u003e🔗\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where the \u003ca href=\"https://docs.zizmor.sh/audits/#unpinned-tools\"\u003eunpinned-tools\u003c/a\u003e audit would incorrectly flag the \u003ca href=\"https://github.com/aquasecurity/trivy-action\"\u003eaquasecurity/trivy-action\u003c/a\u003e action as installing an unpinned tool version, rather than \u003ca href=\"https://github.com/aquasecurity/setup-trivy\"\u003eaquasecurity/setup-trivy\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2018\"\u003e#2018\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes 🐛\u003ca href=\"https://docs.zizmor.sh/release-notes/#bug-fixes\"\u003e🔗\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug where the \u003ca href=\"https://docs.zizmor.sh/audits/#cache-poisoning\"\u003ecache-poisoning\u003c/a\u003e audit would fail to consider release events as exempt from cache usage findings when filtered by a tag condition (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2004\"\u003e#2004\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a typo when suggesting --fix flags for findings (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2010\"\u003e#2010\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/0xdea\"\u003e\u003ccode\u003e@​0xdea\u003c/code\u003e\u003c/a\u003e for implementing this fix!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a typo in \u003ca href=\"https://docs.zizmor.sh/audits/#unpinned-tools\"\u003eunpinned-tools\u003c/a\u003e annotations (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2008\"\u003e#2008\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/martincostello\"\u003e\u003ccode\u003e@​martincostello\u003c/code\u003e\u003c/a\u003e for implementing this fix!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug where the \u003ca href=\"https://docs.zizmor.sh/audits/#github-app\"\u003egithub-app\u003c/a\u003e audit would incorrectly flag some safe uses of \u003ca href=\"https://github.com/actions/create-github-app-token\"\u003eactions/create-github-app-token\u003c/a\u003e as unsafe (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2011\"\u003e#2011\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eNew Features 🌈\u003ca href=\"https://docs.zizmor.sh/release-notes/#new-features\"\u003e🔗\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ezizmor's finding severities can now be remapped on a per-audit basis. See \u003ca href=\"https://docs.zizmor.sh/configuration/#rules-id-remap\"\u003ethe configuration\u003c/a\u003e for details (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/Proximyst\"\u003e\u003ccode\u003e@​Proximyst\u003c/code\u003e\u003c/a\u003e for proposing and implementing this improvement!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew audit: \u003ca href=\"https://docs.zizmor.sh/audits/#github-app\"\u003egithub-app\u003c/a\u003e detects dangerous usages of GitHub App installation tokens (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1926\"\u003e#1926\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew audit: [unpinned-tools] detects actions that install tools without pinning to a specific version (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1820\"\u003e#1820\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ezizmor now accepts the --no-ignores flag to disable all ignore comments and configurations when reporting findings (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1935\"\u003e#1935\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ezizmor's LSP now honors the --persona flag on the CLI (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1943\"\u003e#1943\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ezizmor is now aware of Docker-based action definitions, in addition to the pre-existing support for \u0026quot;composite\u0026quot; actions (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1965\"\u003e#1965\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003ca href=\"https://docs.zizmor.sh/release-notes/#enhancements\"\u003e🔗\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend gh issue edit --add-label / gh pr edit --add-label as a replacement for \u003ca href=\"https://github.com/actions-ecosystem/action-add-labels\"\u003eactions-ecosystem/action-add-labels\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend gh issue edit --remove-label / gh pr edit --remove-label as a replacement for \u003ca href=\"https://github.com/actions-ecosystem/action-remove-labels\"\u003eactions-ecosystem/action-remove-labels\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend jq as a replacement for \u003ca href=\"https://github.com/sergeysova/jq-action\"\u003esergeysova/jq-action\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend git add, git commit, and git push as a replacement for \u003ca href=\"https://github.com/stefanzweifel/git-auto-commit-action\"\u003estefanzweifel/git-auto-commit-action\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend git add, git commit, and git push as a replacement for \u003ca href=\"https://github.com/EndBug/add-and-commit\"\u003eEndBug/add-and-commit\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tibdex/github-app-token\"\u003etibdex/github-app-token\u003c/a\u003e is now recognized as an archived action by \u003ca href=...\n\n_Description has been truncated_","html_url":"https://github.com/fastapi/sqlmodel/pull/1989","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastapi%2Fsqlmodel/issues/1989","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1989/packages"},{"uuid":"4521367121","node_id":"PR_kwDOH77cZc7fQ5pW","number":71,"state":"open","title":"Bump zensical from 0.0.38 to 0.0.43","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T04:29:37.000Z","updated_at":"2026-05-26T04:29:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.38","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.38 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.38...v0.0.43\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.38\u0026new-version=0.0.43)](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/Software-Hardware-Integration-Lab/Documentation/pull/71","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Software-Hardware-Integration-Lab%2FDocumentation/issues/71","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/71/packages"},{"uuid":"4520151224","node_id":"PR_kwDOL0EOiM7fM7iV","number":91,"state":"open","title":"Bump zensical from 0.0.42 to 0.0.43","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-25T23:42:50.000Z","updated_at":"2026-05-25T23:44:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.42 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.42\u0026new-version=0.0.43)](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/licyk/SDNote/pull/91","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/licyk%2FSDNote/issues/91","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/91/packages"},{"uuid":"4516725637","node_id":"PR_kwDOCELT_M7fB4sy","number":3292,"state":"closed","title":"chore(deps): bump the python-packages group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-30T23:55:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T11:58:41.000Z","updated_at":"2026-05-30T23:55:21.000Z","time_to_close":474998,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-packages","update_count":6,"packages":[{"name":"python-multipart","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.16.1","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.15.12","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"zensical","old_version":"0.0.39","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.27` | `0.0.29` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `2.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.15.13` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.39` | `0.0.43` |\n\n\nUpdates `python-multipart` from 0.0.27 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e by \u003ca href=\"https://github.com/manunio\"\u003e\u003ccode\u003e@​manunio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003eKludex/python-multipart#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.28\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003eKludex/python-multipart#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003eKludex/python-multipart#282\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.29 (2026-05-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003e#270\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.28 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003e#281\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003e#282\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/e3d6853978b91b77e9739d47389124d633894c39\"\u003e\u003ccode\u003ee3d6853\u003c/code\u003e\u003c/a\u003e Version 0.0.29 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a60dcdcb34d55b396ced6f5bdb1d1e6df84832ae\"\u003e\u003ccode\u003ea60dcdc\u003c/code\u003e\u003c/a\u003e Handle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/75c33b24d91f1e3c65b597832984d6c46d1a38df\"\u003e\u003ccode\u003e75c33b2\u003c/code\u003e\u003c/a\u003e Add 7-day cooldown for dependency resolution via uv exclude-newer (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a078b8ef00474c3f3a6cf750cd092cf880354a11\"\u003e\u003ccode\u003ea078b8e\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7d8d28b210ac6cb055399562b0dc0e5cf9aef14a\"\u003e\u003ccode\u003e7d8d28b\u003c/code\u003e\u003c/a\u003e Version 0.0.28 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b0dd125457d0f98de23bf2f894aedb1a54639d4e\"\u003e\u003ccode\u003eb0dd125\u003c/code\u003e\u003c/a\u003e Cap multipart boundary length at 256 bytes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d1b57392cf7d0c19235ba454eb5686fd27dc2384\"\u003e\u003ccode\u003ed1b5739\u003c/code\u003e\u003c/a\u003e Speed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/09cb8c3da7638d45ecdf7c154832303214bba829\"\u003e\u003ccode\u003e09cb8c3\u003c/code\u003e\u003c/a\u003e Make the long_boundary benchmark dominated by the patched code path (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a6467c93c14aa4b09ef65450ead8011c45e5c7a0\"\u003e\u003ccode\u003ea6467c9\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Switch CodSpeed benchmarks to walltime mode\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a9690035a956fbdcca06f98461244cf790375a7\"\u003e\u003ccode\u003e9a96900\u003c/code\u003e\u003c/a\u003e Switch CodSpeed benchmarks to walltime mode (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.5 to 7.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.14.0 — 2026-05-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: now when running one of the reporting commands, if there are\nparallel data files that need combining, they will be implicitly combined\nbefore creating the report. There is no option to avoid the combination; let\nus know if you have a use case that requires it.  Thanks, \u003ccode\u003eTim Hatch \u0026lt;pull 2162_\u0026gt;\u003c/code\u003e\u003cem\u003e. Closes \u003ccode\u003eissue 1781\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the output from \u003ccode\u003ecombine\u003c/code\u003e was too verbose, listing each file\nconsidered. Now it shows a single line with the counts of files combined,\nfiles skipped, and files with errors. The \u003ccode\u003e-q\u003c/code\u003e flag suppresses this line.\nThe old detailed lines are available with the new \u003ccode\u003e--debug=combine\u003c/code\u003e option.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: running a Python file through a symlink now sets the sys.path correctly,\nmatching regular Python behavior. Fixes \u003ccode\u003eissue 2157\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eCollector.flush_data\u003c/code\u003e could fail with \u0026quot;RuntimeError: Set changed\nsize during iteration\u0026quot; when a tracer in another thread added a line to the\nper-file set that \u003ccode\u003eadd_lines\u003c/code\u003e (or \u003ccode\u003eadd_arcs\u003c/code\u003e) was iterating. The values\npassed to \u003ccode\u003eCoverageData\u003c/code\u003e are now snapshotted via \u003ccode\u003edict.copy()\u003c/code\u003e and\n\u003ccode\u003eset.copy()\u003c/code\u003e, which are atomic under the GIL. Thanks, \u003ccode\u003eAlex Vandiver \u0026lt;pull 2165_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the soft keyword \u003ccode\u003elazy\u003c/code\u003e is now bolded in HTML reports.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe are no longer testing eventlet support. Eventlet started issuing stern\ndeprecation warnings that break our tests. Our support code is still there.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1781: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1781\"\u003ecoveragepy/coveragepy#1781\u003c/a\u003e\n.. _issue 2157: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2157\"\u003ecoveragepy/coveragepy#2157\u003c/a\u003e\n.. _pull 2162: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2162\"\u003ecoveragepy/coveragepy#2162\u003c/a\u003e\n.. _pull 2165: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2165\"\u003ecoveragepy/coveragepy#2165\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-5:\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/coveragepy/coveragepy/commit/646351b60429f1b5760af6c1b97b28483244a955\"\u003e\u003ccode\u003e646351b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/39cd015505c8b04369c5b06e34fc22449a697370\"\u003e\u003ccode\u003e39cd015\u003c/code\u003e\u003c/a\u003e docs: prep for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/649e8aa34af7d80c386ae82e8a3a6c9a3acb0dab\"\u003e\u003ccode\u003e649e8aa\u003c/code\u003e\u003c/a\u003e docs: thanks Alex Vandiver for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8cd392e3b5c4bc15d534aaec0c21714f9f518469\"\u003e\u003ccode\u003e8cd392e\u003c/code\u003e\u003c/a\u003e fix: snapshot data in Collector.flush_data to avoid threading race (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c48e0edc2ebe44621b0053176e90f77b0c79bec1\"\u003e\u003ccode\u003ec48e0ed\u003c/code\u003e\u003c/a\u003e fix: less output for combining\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c2a3a284078556c911e0d9b6c6af1b7082a363ea\"\u003e\u003ccode\u003ec2a3a28\u003c/code\u003e\u003c/a\u003e docs: explain the change from \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1cd47aa6ac1da4e150da44055295d4e4f3a014e8\"\u003e\u003ccode\u003e1cd47aa\u003c/code\u003e\u003c/a\u003e fix: implicit combine-during-report now removes the combined data files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2d99fd7696e0bccec8037479a4e45c1ecccb8058\"\u003e\u003ccode\u003e2d99fd7\u003c/code\u003e\u003c/a\u003e feat: automatically combine coverage in report, thanks Tim Hatch (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9fbdcdfee1c122fac43f1bf9a5e2d1f4d835f21c\"\u003e\u003ccode\u003e9fbdcdf\u003c/code\u003e\u003c/a\u003e fix: lazy soft keywords are bolded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/5de7d0267b9466d59995aaae1a7e707c8c6f66e7\"\u003e\u003ccode\u003e5de7d02\u003c/code\u003e\u003c/a\u003e build: oops, misplaced quote\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.5...7.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.1 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 2.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 2.1.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003elibrt.vecs: Fast Growable Array Type for Mypyc\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.vecs\u003c/code\u003e module provides an efficient growable array type \u003ccode\u003evec\u003c/code\u003e that is\noptimized for mypyc use. It provides fast, packed arrays with integer and floating point\nvalue types, which can be \u003cstrong\u003eseveral times faster\u003c/strong\u003e than \u003ccode\u003elist\u003c/code\u003e, and tens of times faster\nthan \u003ccode\u003earray.array\u003c/code\u003e in code compiled using mypyc. It also supports nested \u003ccode\u003evec\u003c/code\u003e objects and\nnon-value-type items, such as \u003ccode\u003evec[vec[str]]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_vecs.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo.\u003c/p\u003e\n\u003ch3\u003elibrt.random: Fast Pseudo-Random Number Generation\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.random\u003c/code\u003e module provides fast pseudo-random number generation that is\noptimized for code compiled using mypyc. It can be 3x to 10x faster than the stdlib\n\u003ccode\u003erandom\u003c/code\u003e module in compiled code.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_random.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21433\"\u003e21433\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMypyc Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake compilation order with multiple files consistent (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21419\"\u003e21419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on accessing \u003ccode\u003eStopAsyncIteration\u003c/code\u003e (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21406\"\u003e21406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incremental compilation with \u003ccode\u003eseparate\u003c/code\u003e flag (Vaggelis Danias, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21299\"\u003e21299\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes to Crashes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on partial type with \u003ccode\u003e--allow-redefinition\u003c/code\u003e and \u003ccode\u003eglobal\u003c/code\u003e declaration (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21428\"\u003e21428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix broken awaitable generator patching (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21435\"\u003e21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to Messages\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c1c336d7e34eb313080c79b156518c58d27c7234\"\u003e\u003ccode\u003ec1c336d\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/74df14b7cbf08140236aa45bbb7f42219b0b1df7\"\u003e\u003ccode\u003e74df14b\u003c/code\u003e\u003c/a\u003e Add changelog for mypy 2.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/022d9bc96f86c40f338a5cf150f1806cc8f300ff\"\u003e\u003ccode\u003e022d9bc\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;TypeForm: Enable by default (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21262\"\u003e#21262\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8826288214f1cb31496e610667481221e025359c\"\u003e\u003ccode\u003e8826288\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt.random (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21463\"\u003e#21463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3f4067b699dbe52d08e42ef3b3ebfdebdc06bd96\"\u003e\u003ccode\u003e3f4067b\u003c/code\u003e\u003c/a\u003e Bump librt version to 0.11.0 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21458\"\u003e#21458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b1eb58a250c5f1eb4ef5fb1f312ff528c5a1d4e\"\u003e\u003ccode\u003e2b1eb58\u003c/code\u003e\u003c/a\u003e [mypyc] Enable incremental self-compilation (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8152f4af3f6c03beaf2660026240f0fdce7feecc\"\u003e\u003ccode\u003e8152f4a\u003c/code\u003e\u003c/a\u003e Respect file config comments for stale modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21444\"\u003e#21444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/116d60bdd3fdfe8d97c6afe99370910db56f1b92\"\u003e\u003ccode\u003e116d60b\u003c/code\u003e\u003c/a\u003e Fix nondeterminism from nonassociativity of overload joins (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21455\"\u003e#21455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6c4af8e42110cea3f84bc02add2ca7b89c268210\"\u003e\u003ccode\u003e6c4af8e\u003c/code\u003e\u003c/a\u003e Fix function call message change for small number of args (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21432\"\u003e#21432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4b8fdcaf24032592510e8f15421fb32d82a71800\"\u003e\u003ccode\u003e4b8fdca\u003c/code\u003e\u003c/a\u003e [mypyc] Add librt.random module (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21433\"\u003e#21433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.12 to 0.15.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2afb467ce397e4a89c13a0a814c62cfecb0e9e49\"\u003e\u003ccode\u003e2afb467\u003c/code\u003e\u003c/a\u003e Bump 0.15.13 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25157\"\u003e#25157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b\"\u003e\u003ccode\u003e3008796\u003c/code\u003e\u003c/a\u003e [ty] classify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8\"\u003e\u003ccode\u003e79470e3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0\"\u003e\u003ccode\u003e2522549\u003c/code\u003e\u003c/a\u003e Remove shellcheck from prek (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25154\"\u003e#25154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06\"\u003e\u003ccode\u003e7db7170\u003c/code\u003e\u003c/a\u003e [ty] Support TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25\"\u003e#25\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0\"\u003e\u003ccode\u003ebb3dd53\u003c/code\u003e\u003c/a\u003e [ty] Run full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a\"\u003e\u003ccode\u003e828cdb7\u003c/code\u003e\u003c/a\u003e [ty] Isolate file-watching test environment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25151\"\u003e#25151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d\"\u003e\u003ccode\u003e89e1d86\u003c/code\u003e\u003c/a\u003e [ty] Preserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da\"\u003e\u003ccode\u003e86f3064\u003c/code\u003e\u003c/a\u003e [ty] Avoid accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a\"\u003e\u003ccode\u003eed819f9\u003c/code\u003e\u003c/a\u003e [ty] Treat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.12...0.15.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.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.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\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\u003eVersion 26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\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/87928e6d6761a4a6d22250e1fee5601b3998086e\"\u003e\u003ccode\u003e87928e6\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5140\"\u003e#5140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c970a49702488739add6c728122deb3a99900803\"\u003e\u003ccode\u003ec970a49\u003c/code\u003e\u003c/a\u003e Preserve comments before fmt: skip lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5809338fd5f92d50e80c2ad312292ae6d428a480\"\u003e\u003ccode\u003e5809338\u003c/code\u003e\u003c/a\u003e Preserve inline comments inside annotation subscripts (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/61361b71995f6ea44ce01915bacd3ecc50642507\"\u003e\u003ccode\u003e61361b7\u003c/code\u003e\u003c/a\u003e docs: add Neovim integration guide and fix http link (\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ebe6018e3254629788376e619207719fbe34a849\"\u003e\u003ccode\u003eebe6018\u003c/code\u003e\u003c/a\u003e CI Hotfixes (\u003ca href=\"https://redirect.github.com/psf/black/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9cbd95f80e97c1ab4d690d1d41b81579a13bf75c\"\u003e\u003ccode\u003e9cbd95f\u003c/code\u003e\u003c/a\u003e Fix publish binaries again on Windows (\u003ca href=\"https://redirect.github.com/psf/black/issues/5134\"\u003e#5134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/3dc8e6c41911bdaedb4bac8d633979c34a112b78\"\u003e\u003ccode\u003e3dc8e6c\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6d0fff0d5a965b9d0d3dbd7c5738d835fd574130\"\u003e\u003ccode\u003e6d0fff0\u003c/code\u003e\u003c/a\u003e Fix publish binaries workflow (\u003ca href=\"https://redirect.github.com/psf/black/issues/5133\"\u003e#5133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.39 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.39...v0.0.43\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/Kludex/starlette/pull/3292","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kludex%2Fstarlette/issues/3292","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3292/packages"},{"uuid":"4512719141","node_id":"PR_kwDORz44is7e1I3V","number":20,"state":"open","title":"chore(deps): bump the uv-minor-patch group with 7 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-24T19:45:30.000Z","updated_at":"2026-05-28T04:00:15.044Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-minor-patch","update_count":7,"packages":[{"name":"litestar","old_version":"2.21.1","new_version":"2.22.0","repository_url":"https://github.com/litestar-org/litestar"},{"name":"advanced-alchemy","old_version":"1.9.3","new_version":"1.10.0","repository_url":"https://github.com/litestar-org/advanced-alchemy"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"ruff","old_version":"0.15.13","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"ty","old_version":"0.0.37","new_version":"0.0.39","repository_url":"https://github.com/astral-sh/ty"},{"name":"prek","old_version":"0.4.0","new_version":"0.4.1","repository_url":"https://github.com/j178/prek"},{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-minor-patch group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [litestar](https://github.com/litestar-org/litestar) | `2.21.1` | `2.22.0` |\n| [advanced-alchemy](https://github.com/litestar-org/advanced-alchemy) | `1.9.3` | `1.10.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.13` | `0.15.14` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.37` | `0.0.39` |\n| [prek](https://github.com/j178/prek) | `0.4.0` | `0.4.1` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.42` | `0.0.43` |\n\nUpdates `litestar` from 2.21.1 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/litestar-org/litestar/releases\"\u003elitestar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003ch2\u003eSponsors 🌟\u003c/h2\u003e\n\u003cp\u003eThanks to these incredible business sponsors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://scalar.com/\"\u003eScalar\u003c/a\u003e (\u003ca href=\"https://github.com/scalar\"\u003e\u003ccode\u003e@​scalar\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://telemetrysports.com/\"\u003eTelemetry Sports\u003c/a\u003e (via \u003ca href=\"https://github.com/chris-telemetry\"\u003e\u003ccode\u003e@​chris-telemetry\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to these incredible personal sponsors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://polar.sh/\"\u003ePolar.sh\u003c/a\u003e: \u003ca href=\"https://github.com/Nozavi\"\u003e\u003ccode\u003e@​Nozavi\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cemrehancavdar\"\u003e\u003ccode\u003e@​cemrehancavdar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/thomastu\"\u003e\u003ccode\u003e@​thomastu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/litestar-org/\"\u003eGitHub Sponsors\u003c/a\u003e: \u003ca href=\"https://github.com/ddahan\"\u003e\u003ccode\u003e@​ddahan\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/roboflow\"\u003e\u003ccode\u003e@​roboflow\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cbscsm\"\u003e\u003ccode\u003e@​cbscsm\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/scalar\"\u003e\u003ccode\u003e@​scalar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/benjamin-kirkbride\"\u003e\u003ccode\u003e@​benjamin-kirkbride\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/litestar\"\u003eOpenCollective\u003c/a\u003e: Christian Y, Shaun Wah, Jordan Russel\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/maksimzayats\"\u003e\u003ccode\u003e@​maksimzayats\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4636\"\u003elitestar-org/litestar#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4605\"\u003elitestar-org/litestar#4605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavdwest\"\u003e\u003ccode\u003e@​pavdwest\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4676\"\u003elitestar-org/litestar#4676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/infraAnchor\"\u003e\u003ccode\u003e@​infraAnchor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4659\"\u003elitestar-org/litestar#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.litestar.dev/2/release-notes/changelog.html#2.22.0\"\u003ehttps://docs.litestar.dev/2/release-notes/changelog.html#2.22.0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.0\"\u003ehttps://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.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/litestar-org/litestar/commit/2f80070e237bde0a5c8035efde1ffebb1b949271\"\u003e\u003ccode\u003e2f80070\u003c/code\u003e\u003c/a\u003e fix: 3.9 typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/6930a20ceb543912cd651b42deae5b9f3637a262\"\u003e\u003ccode\u003e6930a20\u003c/code\u003e\u003c/a\u003e fix: ignore x-allowed-hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/299a5845d2e9a067ed7fb716fecf518cfed8b67b\"\u003e\u003ccode\u003e299a584\u003c/code\u003e\u003c/a\u003e fix: Ensure 'csrf_input' is properly escaped before rendering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/a1d51b95a08fc71545ad5861c47dc9ede075ec1b\"\u003e\u003ccode\u003ea1d51b9\u003c/code\u003e\u003c/a\u003e feat(core): Introduce explicit parameter declarations with generics (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/a8095beb8e78418189ce3bdd803596733833e0f3\"\u003e\u003ccode\u003ea8095be\u003c/code\u003e\u003c/a\u003e chore: Typing fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/2d9f742ccf7077c7b5c31256cb68c299423cf31c\"\u003e\u003ccode\u003e2d9f742\u003c/code\u003e\u003c/a\u003e chore: add Python 3.14 classifier to pyproject.toml (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4776\"\u003e#4776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/45c0ef9b3aa340d365269fc5425f7e1558c61db5\"\u003e\u003ccode\u003e45c0ef9\u003c/code\u003e\u003c/a\u003e fix(request): content-length check incompatible with decompression middleware...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/693649e962dd77b0ec9eda3ecb36afe92299dc04\"\u003e\u003ccode\u003e693649e\u003c/code\u003e\u003c/a\u003e ci: Remove codeql (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4706\"\u003e#4706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/bf891515be12f03bb122319c2cb9b716c4aa2118\"\u003e\u003ccode\u003ebf89151\u003c/code\u003e\u003c/a\u003e test: Remove deprecated \u003ccode\u003easyncio.WindowsSelectorEventLoopPolicy\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4704\"\u003e#4704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/f17780a00542959231322da01049b7157329aad8\"\u003e\u003ccode\u003ef17780a\u003c/code\u003e\u003c/a\u003e docs(usage/excluding-and-including-endpoints): fix misleading regex examples ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `advanced-alchemy` from 1.9.3 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/litestar-org/advanced-alchemy/releases\"\u003eadvanced-alchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003ch3\u003eNew features 🚀\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: configurable serialization with Protocol-based architecture by \u003ca href=\"https://github.com/cofin\"\u003e\u003ccode\u003e@​cofin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/716\"\u003elitestar-org/advanced-alchemy#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(litestar): Update to new-style parameter markers by \u003ca href=\"https://github.com/provinzkraut\"\u003e\u003ccode\u003e@​provinzkraut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/736\"\u003elitestar-org/advanced-alchemy#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add support for UUID6 and UUID7 based on Python version by \u003ca href=\"https://github.com/lajxw\"\u003e\u003ccode\u003e@​lajxw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/714\"\u003elitestar-org/advanced-alchemy#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: deprecate \u003ccode\u003elist()\u003c/code\u003e/\u003ccode\u003elist_and_count()\u003c/code\u003e by \u003ca href=\"https://github.com/cofin\"\u003e\u003ccode\u003e@​cofin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/706\"\u003elitestar-org/advanced-alchemy#706\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: register session listeners in framework extension configs by \u003ca href=\"https://github.com/hasansezertasan\"\u003e\u003ccode\u003e@​hasansezertasan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/712\"\u003elitestar-org/advanced-alchemy#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs preview workflow by \u003ca href=\"https://github.com/Harshal6927\"\u003e\u003ccode\u003e@​Harshal6927\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/718\"\u003elitestar-org/advanced-alchemy#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(config): add cache_config field to SQLAlchemy configs by \u003ca href=\"https://github.com/hasansezertasan\"\u003e\u003ccode\u003e@​hasansezertasan\u003c/code\u003e\u003c/a\u003e  in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/731\"\u003elitestar-org/advanced-alchemy#731\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/lajxw\"\u003e\u003ccode\u003e@​lajxw\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/714\"\u003elitestar-org/advanced-alchemy#714\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003etest: migrate object storage tests to rustfs by \u003ca href=\"https://github.com/cofin\"\u003e\u003ccode\u003e@​cofin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/732\"\u003elitestar-org/advanced-alchemy#732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: centralize optional-dependency typing shims by \u003ca href=\"https://github.com/cofin\"\u003e\u003ccode\u003e@​cofin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/719\"\u003elitestar-org/advanced-alchemy#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e\n\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/compare/v1.9.3...v1.10.0\"\u003ehttps://github.com/litestar-org/advanced-alchemy/compare/v1.9.3...v1.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/litestar-org/advanced-alchemy/blob/main/docs/changelog.rst\"\u003eadvanced-alchemy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e:orphan:\u003c/p\u003e\n\u003ch1\u003e1.x Changelog\u003c/h1\u003e\n\u003cp\u003e.. changelog:: 1.10.0\n:date: 2026-05-23\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e.. change:: configurable serialization with Protocol-based architecture\n    :type: feature\n    :pr: 716\n\u003cpre\u003e\u003ccode\u003eAdds ``advanced_alchemy.utils.serialization`` as the canonical home for\nJSON serialization, schema dumping, and schema/type guards. JSON\nencoding can now use msgspec, orjson, or the standard library with\nconfigurable type encoders, reversible complex-type markers, and\nLitestar encoder/decoder integration.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.. change:: update Litestar integrations to new-style parameter markers\u003cbr /\u003e\n:type: feature\u003cbr /\u003e\n:pr: 736\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdates the Litestar extension and examples to use Litestar's new\nparameter marker style for generated dependency and filter parameters.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.. change:: add UUID6 and UUID7 support based on Python version\u003cbr /\u003e\n:type: feature\u003cbr /\u003e\n:pr: 714\u003cbr /\u003e\n:issue: 713\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdds UUID6 and UUID7 primary-key support, using the standard library\nimplementation when available and falling back to the existing\ncompatibility dependency on older Python versions.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.. change:: deprecate \u003ccode\u003elist()\u003c/code\u003e/\u003ccode\u003elist_and_count()\u003c/code\u003e\u003cbr /\u003e\n:type: feature\u003cbr /\u003e\n:pr: 706\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdds ``get_many()`` and ``get_many_and_count()`` as the preferred APIs\nacross repositories, services, memory repositories, query repositories,\nand cache managers. The older ``list()`` and ``list_and_count()`` names\nremain available as deprecation wrappers until 2.0.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.. change:: configure repository caching from SQLAlchemy configs\u003cbr /\u003e\n:type: feature\u003cbr /\u003e\n:pr: 731\u003cbr /\u003e\n:issue: 730\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdds ``cache_config`` and ``cache_manager`` support to SQLAlchemy config\nobjects. Configured cache managers are stored in ``session.info`` so\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\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/litestar-org/advanced-alchemy/commit/83ec1175f1d5fa933a6df7a0003172279086f2d1\"\u003e\u003ccode\u003e83ec117\u003c/code\u003e\u003c/a\u003e fix(config): add cache_config field to SQLAlchemy configs (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/ed8c46b8b351975a7deb7a4be24e5ed6fd06a2ee\"\u003e\u003ccode\u003eed8c46b\u003c/code\u003e\u003c/a\u003e chore: updated changelog (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/e87371b1bea495562d02609cb2f187603798db24\"\u003e\u003ccode\u003ee87371b\u003c/code\u003e\u003c/a\u003e feat: configurable serialization with Protocol-based architecture (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/0d84a85e7ad38456b61dd5c7e6fd84f3873d9620\"\u003e\u003ccode\u003e0d84a85\u003c/code\u003e\u003c/a\u003e feat(litestar): Update to new-style parameter markers (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/955df1dd154dd0e69b02c62541abf1200b408189\"\u003e\u003ccode\u003e955df1d\u003c/code\u003e\u003c/a\u003e test: migrate object storage tests to rustfs (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/a6e275d889ec376d1cc942193fc56cf356a8fddf\"\u003e\u003ccode\u003ea6e275d\u003c/code\u003e\u003c/a\u003e feat: Add support for UUID6 and UUID7 based on Python version (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/c3d3e2eb5653d14abc870e3471d7c6add56f58ff\"\u003e\u003ccode\u003ec3d3e2e\u003c/code\u003e\u003c/a\u003e chore(deps): bump urllib3 from 1.26.20 to 2.6.3 in the uv group across 1 dire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/f2b90e9bd6d19a782f8b4ac13e00d1656cd11847\"\u003e\u003ccode\u003ef2b90e9\u003c/code\u003e\u003c/a\u003e fix: register session listeners in framework extension configs (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/f4c409ee21687025eeea8446ec007300d1fe60a5\"\u003e\u003ccode\u003ef4c409e\u003c/code\u003e\u003c/a\u003e refactor: centralize optional-dependency typing shims (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/437d56efc5c5664d6f0acc2fb7417bb9766942df\"\u003e\u003ccode\u003e437d56e\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/litestar-org/advanced-alchemy/compare/v1.9.3...v1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.12.1 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.13.0\u003c/h2\u003e\n\u003ch1\u003ePyJWT 2.13.0 — Security Release\u003c/h1\u003e\n\u003cp\u003eThis release bundles five security fixes plus three additional hardening / spec-compliance changes. We recommend all users upgrade.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx\"\u003e\u003ccode\u003eGHSA-xgmm-8j9v-c9wx\u003c/code\u003e\u003c/a\u003e — JWK JSON accepted as HMAC secret (algorithm confusion).\u003c/strong\u003e \u003ccode\u003eHMACAlgorithm.prepare_key\u003c/code\u003e previously rejected PEM- and SSH-formatted asymmetric keys but did not catch a JWK passed as a raw JSON string. In a verifier configured with both symmetric and asymmetric algorithms in \u003ccode\u003ealgorithms=[…]\u003c/code\u003e and a raw-JSON JWK as the key, an attacker could forge HS256 tokens using the JWK text as the HMAC secret. The guard has been extended to reject any JWK-shaped JSON. \u003cem\u003eReported by \u003ca href=\"https://github.com/aradona91\"\u003e\u003ccode\u003e@​aradona91\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-jq35-7prp-9v3f\"\u003e\u003ccode\u003eGHSA-jq35-7prp-9v3f\u003c/code\u003e\u003c/a\u003e — Algorithm allow-list bypass with \u003ccode\u003ePyJWK\u003c/code\u003e / \u003ccode\u003ePyJWKClient\u003c/code\u003e.\u003c/strong\u003e When verifying with a \u003ccode\u003ePyJWK\u003c/code\u003e, the caller's \u003ccode\u003ealgorithms=[…]\u003c/code\u003e allow-list was checked against the token header \u003ccode\u003ealg\u003c/code\u003e as a string only; actual verification used the algorithm bound to the \u003ccode\u003ePyJWK\u003c/code\u003e. An attacker who controlled a registered JWKS key could sign with one algorithm and advertise another on the header. PyJWT now requires the token header \u003ccode\u003ealg\u003c/code\u003e to match the \u003ccode\u003ePyJWK\u003c/code\u003e's algorithm before verification. \u003cem\u003eReported by \u003ca href=\"https://github.com/sushi-gif\"\u003e\u003ccode\u003e@​sushi-gif\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w7vc-732c-9m39\"\u003e\u003ccode\u003eGHSA-w7vc-732c-9m39\u003c/code\u003e\u003c/a\u003e — DoS via base64 decode of unused payload segment when \u003ccode\u003eb64=false\u003c/code\u003e.\u003c/strong\u003e For detached-payload JWS (\u003ccode\u003eb64=false\u003c/code\u003e), the compact-form payload segment was base64-decoded before being discarded in favor of the caller-supplied \u003ccode\u003edetached_payload\u003c/code\u003e. An attacker could inflate the unused segment to force CPU + memory cost without holding a valid signature. The segment is now required to be empty per RFC 7515 Appendix F, and is no longer decoded. \u003cem\u003eReported by \u003ca href=\"https://github.com/thesmartshadow\"\u003e\u003ccode\u003e@​thesmartshadow\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-993g-76c3-p5m4\"\u003e\u003ccode\u003eGHSA-993g-76c3-p5m4\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003ePyJWKClient\u003c/code\u003e accepts non-HTTP(S) URIs.\u003c/strong\u003e \u003ccode\u003ePyJWKClient.fetch_data\u003c/code\u003e passed its URI to \u003ccode\u003eurllib.request.urlopen\u003c/code\u003e, which by default also handles \u003ccode\u003efile://\u003c/code\u003e, \u003ccode\u003eftp://\u003c/code\u003e, and \u003ccode\u003edata:\u003c/code\u003e schemes. An application that fed an attacker-influenced URI into \u003ccode\u003ePyJWKClient\u003c/code\u003e could be coerced into reading local files or reaching other unintended schemes. \u003ccode\u003ePyJWKClient\u003c/code\u003e now rejects any URI whose scheme isn't \u003ccode\u003ehttp\u003c/code\u003e or \u003ccode\u003ehttps\u003c/code\u003e. \u003cem\u003eReported by \u003ca href=\"https://github.com/KEIJOT\"\u003e\u003ccode\u003e@​KEIJOT\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8\"\u003e\u003ccode\u003eGHSA-fhv5-28vv-h8m8\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003ePyJWKClient\u003c/code\u003e cache wiped on fetch error.\u003c/strong\u003e A \u003ccode\u003efinally\u003c/code\u003e-block \u003ccode\u003eput(jwk_set=None)\u003c/code\u003e cleared the JWK Set cache whenever a fetch raised, turning a transient JWKS-endpoint outage into application-wide auth failure. The cache write was moved into the success path; transient errors no longer evict valid cached keys. \u003cem\u003eReported by \u003ca href=\"https://github.com/eddieran\"\u003e\u003ccode\u003e@​eddieran\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject empty HMAC keys outright in \u003ccode\u003eHMACAlgorithm.prepare_key\u003c/code\u003e with \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead of accepting them with only a warning. Defends against the \u003ccode\u003eos.getenv(\u0026quot;JWT_SECRET\u0026quot;, \u0026quot;\u0026quot;)\u003c/code\u003e footgun. \u003cem\u003eThanks to \u003ca href=\"https://github.com/SnailSploit\"\u003e\u003ccode\u003e@​SnailSploit\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/spartan8806\"\u003e\u003ccode\u003e@​spartan8806\u003c/code\u003e\u003c/a\u003e for the reports.\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003eForward per-call \u003ccode\u003eoptions\u003c/code\u003e (including \u003ccode\u003eenforce_minimum_key_length\u003c/code\u003e) from \u003ccode\u003ePyJWT.decode\u003c/code\u003e through to \u003ccode\u003ePyJWS._verify_signature\u003c/code\u003e. The option was previously silently dropped between the two layers, so it only took effect when set on the \u003ccode\u003ePyJWT\u003c/code\u003e instance. \u003cem\u003eThanks to \u003ca href=\"https://github.com/WLUB\"\u003e\u003ccode\u003e@​WLUB\u003c/code\u003e\u003c/a\u003e for the report.\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRFC 7797 §3 compliance for \u003ccode\u003eb64=false\u003c/code\u003e:\u003c/strong\u003e the encoder now auto-adds \u003ccode\u003e\u0026quot;b64\u0026quot;\u003c/code\u003e to \u003ccode\u003ecrit\u003c/code\u003e, and the decoder rejects tokens that set \u003ccode\u003eb64=false\u003c/code\u003e without listing it in \u003ccode\u003ecrit\u003c/code\u003e. \u003cem\u003eThanks to \u003ca href=\"https://github.com/MachineLearning-Nerd\"\u003e\u003ccode\u003e@​MachineLearning-Nerd\u003c/code\u003e\u003c/a\u003e for the report.\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the \u003ccode\u003edev\u003c/code\u003e, \u003ccode\u003edocs\u003c/code\u003e, and \u003ccode\u003etests\u003c/code\u003e package extras to dependency groups, by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1152\"\u003e#1152\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cp\u003eMost fixes are invisible to correctly-configured callers. A few behavioral changes you may encounter:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEmpty HMAC keys now raise.\u003c/strong\u003e If your app passed \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e or \u003ccode\u003eb\u0026quot;\u0026quot;\u003c/code\u003e as a secret (often via a missing env var, e.g. \u003ccode\u003eos.getenv(\u0026quot;JWT_SECRET\u0026quot;, \u0026quot;\u0026quot;)\u003c/code\u003e), \u003ccode\u003eencode\u003c/code\u003e/\u003ccode\u003edecode\u003c/code\u003e will now raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e. This is the intended behavior — fix the configuration.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ePyJWK\u003c/code\u003e decoding now requires the token's \u003ccode\u003ealg\u003c/code\u003e to match the JWK's algorithm.\u003c/strong\u003e Previously a mismatch was silently honored if the header \u003ccode\u003ealg\u003c/code\u003e appeared in the allow-list. Tokens that relied on this mismatch will now fail with \u003ccode\u003eInvalidAlgorithmError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ePyJWKClient\u003c/code\u003e now rejects non-HTTP(S) URIs at construction time.\u003c/strong\u003e Tests or dev environments that fetched JWKS from \u003ccode\u003efile://\u003c/code\u003e URIs need to switch to a local HTTP server or load the JWKS by other means (e.g. construct \u003ccode\u003ePyJWKSet.from_dict(...)\u003c/code\u003e directly).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eb64=false\u003c/code\u003e tokens are now strictly RFC 7515 / 7797 compliant.\u003c/strong\u003e Tokens with a non-empty compact-form payload segment, or that omit \u003ccode\u003e\u0026quot;b64\u0026quot;\u003c/code\u003e from \u003ccode\u003ecrit\u003c/code\u003e, will be rejected. PyJWT-produced tokens always satisfy both invariants, so round-trips through PyJWT are unaffected.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eenforce_minimum_key_length\u003c/code\u003e set per-call now takes effect.\u003c/strong\u003e Callers who passed \u003ccode\u003eoptions={\u0026quot;enforce_minimum_key_length\u0026quot;: True}\u003c/code\u003e to \u003ccode\u003ejwt.decode()\u003c/code\u003e previously got no enforcement; they will now get \u003ccode\u003eInvalidKeyError\u003c/code\u003e on undersized keys, as documented.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.13.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eSecurity\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Reject JWK JSON documents passed as raw HMAC secrets in\n  ``HMACAlgorithm.prepare_key`` to close an algorithm-confusion gap that\n  the existing PEM/SSH guard did not cover. Reported by @aradona91 in\n  `GHSA-xgmm-8j9v-c9wx \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx\u0026gt;`__.\n- Bind the JWT header ``alg`` to ``PyJWK.algorithm_name`` during\n  verification so the caller's ``algorithms=[...]`` allow-list cannot be\n  bypassed when decoding with a ``PyJWK`` / ``PyJWKClient`` key. Reported\n  by @sushi-gif in `GHSA-jq35-7prp-9v3f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-jq35-7prp-9v3f\u0026gt;`__.\n- Reject non-``http(s)`` URI schemes in ``PyJWKClient`` so attacker-\n  influenced URIs cannot read local files or reach unintended schemes via\n  urllib's default ``file://`` / ``ftp://`` / ``data:`` handlers. Reported\n  by @KEIJOT in `GHSA-993g-76c3-p5m4 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-993g-76c3-p5m4\u0026gt;`__.\n- Preserve the cached JWK Set on fetch errors in ``PyJWKClient.fetch_data``.\n  The previous ``finally``-block ``put(None)`` pattern cleared the cache\n  on any transient outage, turning one bad JWKS request into application-\n  wide auth failure. Reported by @eddieran in `GHSA-fhv5-28vv-h8m8 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8\u0026gt;`__.\n- Skip the unconditional base64 decode of the compact-form payload segment\n  when ``b64=false`` is set in the protected header, and require that\n  segment to be empty (RFC 7515 Appendix F detached form). Closes an\n  unauthenticated DoS amplifier. Reported by @thesmartshadow in\n  `GHSA-w7vc-732c-9m39 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w7vc-732c-9m39\u0026gt;`__.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Reject empty HMAC keys outright in ``HMACAlgorithm.prepare_key`` with\n  ``InvalidKeyError`` instead of accepting them with only a warning.\n  Thanks to @SnailSploit and @spartan8806 for independently flagging the\n  footgun.\n- Forward per-call ``options`` (including ``enforce_minimum_key_length``)\n  from ``PyJWT.decode`` through to ``PyJWS._verify_signature`` so the\n  option actually takes effect when set at the call site rather than only\n  on the ``PyJWT`` instance. Thanks to @WLUB for the report.\n- RFC 7797 §3 compliance for ``b64=false``: the encoder now auto-adds\n  ``\u0026amp;quot;b64\u0026amp;quot;`` to the ``crit`` header parameter, and the decoder rejects\n  tokens that set ``b64=false`` without listing it in ``crit``. Thanks to\n  @MachineLearning-Nerd for the report.\n\nChanged\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the \u003ccode\u003edev\u003c/code\u003e, \u003ccode\u003edocs\u003c/code\u003e, and \u003ccode\u003etests\u003c/code\u003e package extras to dependency groups by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1152](https://github.com/jpadilla/pyjwt/issues/1152) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1152\u0026amp;gt;\u003c/code\u003e__\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/7144e4534c34810f4525dc4578a32addd8212cff\"\u003e\u003ccode\u003e7144e45\u003c/code\u003e\u003c/a\u003e Apply ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/d2f4bec4963897c0ef96ef64a875894f2c8542ab\"\u003e\u003ccode\u003ed2f4bec\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003ecast()\u003c/code\u003e calls with cross-version \u003ccode\u003etype: ignore\u003c/code\u003e for \u003ccode\u003eprepare_key\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/22f478cebddd8294259c30f037ecb92b0b348774\"\u003e\u003ccode\u003e22f478c\u003c/code\u003e\u003c/a\u003e Remove redundant casts in \u003ccode\u003eRSAAlgorithm.prepare_key\u003c/code\u003e and `ECAlgorithm.prepare...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/95791b1759b8aa4f2203575d344d5c78564cdc81\"\u003e\u003ccode\u003e95791b1\u003c/code\u003e\u003c/a\u003e Bundle security fixes and hardening into 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dcc27a9d3182a2349c30b160758785c6ce7a6508\"\u003e\u003ccode\u003edcc27a9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/9d08a9a1896845ed8eaf88e6f6ac61e5800c3e7a\"\u003e\u003ccode\u003e9d08a9a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1146\"\u003e#1146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b87c10014d4109f0214fea188d00faaaf8a80e64\"\u003e\u003ccode\u003eb87c100\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1154\"\u003e#1154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/40e3147eb5f790d8d041772e5fc00728a176c812\"\u003e\u003ccode\u003e40e3147\u003c/code\u003e\u003c/a\u003e Migrate development extras to dependency groups (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.13 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.13...0.15.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.37 to 0.0.39\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.39\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-22.\u003c/p\u003e\n\u003cp\u003eThis release removes the Python 3.9 branches from our vendored standard library stubs. ty now only has \u0026quot;full\u0026quot; support for\nPython 3.10 and later, but will still report version-specific syntax errors and other diagnostics when \u003ccode\u003e--python-version 3.9\u003c/code\u003e\nis provided via the CLI.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid panicking on \u003ccode\u003e__new__\u003c/code\u003e assignments to classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve declaration order when synthesizing class fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25249\"\u003e#25249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003edict\u003c/code\u003e-compatible fallbacks in TypedDict unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25242\"\u003e#25242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Quick Fix to remove redundant cast (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25211\"\u003e#25211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClassify property declaration semantic tokens (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25322\"\u003e#25322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEscape HTML syntax in docstring rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25247\"\u003e#25247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer symbols from standard library over those of the same name from third party libraries for import completions. (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25108\"\u003e#25108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type aliases in document symbols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25302\"\u003e#25302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostics\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd error context for extra callable parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25269\"\u003e#25269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid exponential blow-up in fall-through narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25278\"\u003e#25278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up include filtering for projects with many literal include patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25266\"\u003e#25266\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a diagnostic for subclassing with \u003ccode\u003eorder=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21704\"\u003e#21704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFull-scope bidirectional inference for unconstrained container literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25279\"\u003e#25279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer \u003ccode\u003edict(TypedDict)\u003c/code\u003e as \u003ccode\u003edict[str, object]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24852\"\u003e#24852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject incompatible explicit variance in generic base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25327\"\u003e#25327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport multi-inference through type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25245\"\u003e#25245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25271\"\u003e#25271\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25172\"\u003e#25172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sqqueak\"\u003e\u003ccode\u003e@​sqqueak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.39\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-22.\u003c/p\u003e\n\u003cp\u003eThis release removes the Python 3.9 branches from our vendored standard library stubs. ty now only has \u0026quot;full\u0026quot; support for\nPython 3.10 and later, but will still report version-specific syntax errors and other diagnostics when \u003ccode\u003e--python-version 3.9\u003c/code\u003e\nis provided via the CLI.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid panicking on \u003ccode\u003e__new__\u003c/code\u003e assignments to classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve declaration order when synthesizing class fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25249\"\u003e#25249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003edict\u003c/code\u003e-compatible fallbacks in TypedDict unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25242\"\u003e#25242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Quick Fix to remove redundant cast (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25211\"\u003e#25211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClassify property declaration semantic tokens (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25322\"\u003e#25322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEscape HTML syntax in docstring rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25247\"\u003e#25247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer symbols from standard library over those of the same name from third party libraries for import completions. (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25108\"\u003e#25108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type aliases in document symbols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25302\"\u003e#25302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostics\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd error context for extra callable parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25269\"\u003e#25269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid exponential blow-up in fall-through narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25278\"\u003e#25278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up include filtering for projects with many literal include patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25266\"\u003e#25266\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a diagnostic for subclassing with \u003ccode\u003eorder=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21704\"\u003e#21704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFull-scope bidirectional inference for unconstrained container literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25279\"\u003e#25279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer \u003ccode\u003edict(TypedDict)\u003c/code\u003e as \u003ccode\u003edict[str, object]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24852\"\u003e#24852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject incompatible explicit variance in generic base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25327\"\u003e#25327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport multi-inference through type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25245\"\u003e#25245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25271\"\u003e#25271\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25172\"\u003e#25172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sqqueak\"\u003e\u003ccode\u003e@​sqqueak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/0205125174c135d6fc4014244dee374678b61c72\"\u003e\u003ccode\u003e0205125\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.39 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3516\"\u003e#3516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/ae8058d40e641b545bbad046c487e964206a2286\"\u003e\u003ccode\u003eae8058d\u003c/code\u003e\u003c/a\u003e Update maturin to v1.13.3 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3494\"\u003e#3494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/33b60f8ad0f2da648b867831548a4b8c7985647d\"\u003e\u003ccode\u003e33b60f8\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/1d3efc1d68e36a8f982fa73b1f8c2a5ebc50fcde\"\u003e\u003ccode\u003e1d3efc1\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.38 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3492\"\u003e#3492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f5100ccde50ff577fa311add5232ae6074ed68f9\"\u003e\u003ccode\u003ef5100cc\u003c/code\u003e\u003c/a\u003e scripts/update_schemastore: use -C to allow re-running schema update on exist...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.37...0.0.39\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.4.0 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-20.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-push range after rebase (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2089\"\u003e#2089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer extensions over loose filename tags (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2092\"\u003e#2092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce run filtering allocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.4.1\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.1/prek-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.4.1/prek-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload prek 0.4.1\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-apple-darwin.tar.gz\"\u003eprek-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-apple-darwin.tar.gz\"\u003eprek-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-pc-windows-msvc.zip\"\u003eprek-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-i686-pc-windows-msvc.zip\"\u003eprek-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-pc-windows-msvc.zip\"\u003eprek-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-unknown-linux-gnu.tar.gz\"\u003eprek-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-20.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-push range after rebase (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2089\"\u003e#2089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer extensions over loose filename tags (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2092\"\u003e#2092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce run filtering allocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/871b9edb65b7978c2c53d94f60a433cb9e120132\"\u003e\u003ccode\u003e871b9ed\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.1 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2107\"\u003e#2107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/3c26faf5be0c9ad0e61309650479e063b8cb0037\"\u003e\u003ccode\u003e3c26faf\u003c/code\u003e\u003c/a\u003e Optimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/7780f1149565ff430b86be1f688dce7f680c6760\"\u003e\u003ccode\u003e7780f11\u003c/code\u003e\u003c/a\u003e Clean up run hook installation flow (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2105\"\u003e#2105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/c5dc885bcbc3d293d6c20ffb43b7be970b55b60d\"\u003e\u003ccode\u003ec5dc885\u003c/code\u003e\u003c/a\u003e Refine hook install filtering (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2104\"\u003e#2104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/9db879e92760cfa3c6da748672237a1b1d81ce12\"\u003e\u003ccode\u003e9db879e\u003c/code\u003e\u003c/a\u003e Skip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/2a0da57faddae03fd6d8985776ab2ec33d0b99e5\"\u003e\u003ccode\u003e2a0da57\u003c/code\u003e\u003c/a\u003e Simplify workspace file handling (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/33ca06054451602a7988b64ac6cf12b1cf5fddad\"\u003e\u003ccode\u003e33ca060\u003c/code\u003e\u003c/a\u003e Lock file maintenance (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2072\"\u003e#2072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/03f11c00b169b9beea59253fc5a0c7efe6dc9fa6\"\u003e\u003ccode\u003e03f11c0\u003c/code\u003e\u003c/a\u003e Update GitHub Actions (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2101\"\u003e#2101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/354f431c3c0420d5be83e6c59f3b644c907793e6\"\u003e\u003ccode\u003e354f431\u003c/code\u003e\u003c/a\u003e Update dependency uv to v0.11.13 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2094\"\u003e#2094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/4a41828a33efaccccaba76e96942314ac3309e75\"\u003e\u003ccode\u003e4a41828\u003c/code\u003e\u003c/a\u003e Update Rust crate quick-xml to v0.39.4 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2098\"\u003e#2098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.4.0...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.42 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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/ZYLVEXT/litestar-auth/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYLVEXT%2Flitestar-auth/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"4506088521","node_id":"PR_kwDOAKv-F87ehOMY","number":45,"state":"open","title":"Bump zensical from 0.0.42 to 0.0.43","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T23:26:22.000Z","updated_at":"2026-05-22T23:27:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.42 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.42\u0026new-version=0.0.43)](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/eggzec/mcerp/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggzec%2Fmcerp/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"},{"uuid":"4505336474","node_id":"PR_kwDOQnHo1c7ee1iT","number":224,"state":"closed","title":"chore(deps): bump zensical from 0.0.40 to 0.0.43","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-22T20:08:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-22T20:08:23.000Z","updated_at":"2026-05-22T20:08:56.000Z","time_to_close":13,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"zensical","old_version":"0.0.40","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.40 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.40...v0.0.43\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.40\u0026new-version=0.0.43)](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\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 `zensical` dependency from 0.0.40 to 0.0.43\n\u003e Updates the `zensical` package in [uv.lock](https://github.com/detailobsessed/unblu-mcp/pull/224/files#diff-84321598744d84dbee2318e634c74c9aae39a1c253f1c4bd17ebf9ef2f807b11) to pick up the latest patch releases.\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 d4e795d.\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/detailobsessed/unblu-mcp/pull/224","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/detailobsessed%2Funblu-mcp/issues/224","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/224/packages"},{"uuid":"4504141901","node_id":"PR_kwDOAQS3ec7ea7_Q","number":36,"state":"open","title":"Bump zensical from 0.0.42 to 0.0.43","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T16:29:50.000Z","updated_at":"2026-05-22T16:38:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.42 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.42\u0026new-version=0.0.43)](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/eggzec/pyswarm/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggzec%2Fpyswarm/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"},{"uuid":"4500791921","node_id":"PR_kwDONaGiU87eQBRD","number":16,"state":"open","title":"chore(deps): bump the uv-minor-patch group across 1 directory with 15 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-05-22T07:33:19.000Z","updated_at":"2026-05-22T07:35:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-minor-patch","update_count":15,"packages":[{"name":"psycopg","old_version":"3.3.3","new_version":"3.3.4","repository_url":"https://github.com/psycopg/psycopg"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"aio-pika","old_version":"9.6.1","new_version":"9.6.2","repository_url":"https://github.com/mosquito/aio-pika"},{"name":"aiokafka","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/aio-libs/aiokafka"},{"name":"litestar","old_version":"2.21.1","new_version":"2.22.0","repository_url":"https://github.com/litestar-org/litestar"},{"name":"commitizen","old_version":"4.13.9","new_version":"4.16.2","repository_url":"https://github.com/commitizen-tools/commitizen"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"rust-just","old_version":"1.46.0","new_version":"1.51.0","repository_url":"https://github.com/gnpaone/rust-just"},{"name":"ty","old_version":"0.0.23","new_version":"0.0.38","repository_url":"https://github.com/astral-sh/ty"},{"name":"deptry","old_version":"0.24.0","new_version":"0.25.1","repository_url":"https://github.com/osprey-oss/deptry"},{"name":"pymdown-extensions","old_version":"10.21","new_version":"10.21.3","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"zensical","old_version":"0.0.27","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-minor-patch group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.3.3` | `3.3.4` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [aio-pika](https://github.com/mosquito/aio-pika) | `9.6.1` | `9.6.2` |\n| [aiokafka](https://github.com/aio-libs/aiokafka) | `0.13.0` | `0.14.0` |\n| [litestar](https://github.com/litestar-org/litestar) | `2.21.1` | `2.22.0` |\n| [commitizen](https://github.com/commitizen-tools/commitizen) | `4.13.9` | `4.16.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.14` |\n| [rust-just](https://github.com/gnpaone/rust-just) | `1.46.0` | `1.51.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.23` | `0.0.38` |\n| [deptry](https://github.com/osprey-oss/deptry) | `0.24.0` | `0.25.1` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21` | `10.21.3` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.27` | `0.0.43` |\n\n\nUpdates `psycopg` from 3.3.3 to 3.3.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.5 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDiscard prepared statements upon :sql:\u003ccode\u003eALTER *\u003c/code\u003e or \u003ccode\u003eDISCARD *\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1307](https://github.com/psycopg/psycopg/issues/1307)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.4\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix possible spurious connection timeout in systems with very long uptimes\nin C extension (:ticket:\u003ccode\u003e[#1280](https://github.com/psycopg/psycopg/issues/1280)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix client-side adaptation of enums whose name require quotes\n(:ticket:\u003ccode\u003e[#1298](https://github.com/psycopg/psycopg/issues/1298)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eConsistently populate \u003ccode\u003e~Cursor.statusmessage\u003c/code\u003e after \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1302](https://github.com/psycopg/psycopg/issues/1302)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\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/psycopg/psycopg/commit/83f110367cdd249cc0a352e2246ecea9e878e5a0\"\u003e\u003ccode\u003e83f1103\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/18287707f56a2b4f0817d9c23d137f5d69db6e31\"\u003e\u003ccode\u003e1828770\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8be14bbc18f74de7652606d2777e0950ec804cc0\"\u003e\u003ccode\u003e8be14bb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1301\"\u003e#1301\u003c/a\u003e from oliverhaas/fix/sync-pool-open-race\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/aee0bf2659db77c31154acf583baf0a98675c192\"\u003e\u003ccode\u003eaee0bf2\u003c/code\u003e\u003c/a\u003e fix(pool): fix race in the construction of the sync ConnectionPool lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/bc4d30375557fc32f2a91c2f8b75a5d21711ea89\"\u003e\u003ccode\u003ebc4d303\u003c/code\u003e\u003c/a\u003e chore(deps): bump the actions group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/785379f196fc17473d312451a1fd4a06ef8dc895\"\u003e\u003ccode\u003e785379f\u003c/code\u003e\u003c/a\u003e fix: retain statusmessage after executemany with returning=False\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8882a73871e65727549657085922d043a106127c\"\u003e\u003ccode\u003e8882a73\u003c/code\u003e\u003c/a\u003e perf: do less if X in Y: return Y[X] for cache-like patterns\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2f785395c189e709da5fa74a02d3797bfb9db6a4\"\u003e\u003ccode\u003e2f78539\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1299\"\u003e#1299\u003c/a\u003e from dvarrazzo/fix-camel-enum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/37ef1dc4e6d19dc4af062d45a63243cb96a261c2\"\u003e\u003ccode\u003e37ef1dc\u003c/code\u003e\u003c/a\u003e test: skip test on crdb depending on precise regtype behaviour\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/7f2f1d159df881260e3086fd61ea71343ca98e58\"\u003e\u003ccode\u003e7f2f1d1\u003c/code\u003e\u003c/a\u003e fix: fix client-side representation of enums requiring quotes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.3...3.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\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/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aio-pika` from 9.6.1 to 9.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mosquito/aio-pika/releases\"\u003eaio-pika's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude license file in built distributions via project.license-files by \u003ca href=\"https://github.com/julia-thorn\"\u003e\u003ccode\u003e@​julia-thorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/pull/698\"\u003emosquito/aio-pika#698\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/julia-thorn\"\u003e\u003ccode\u003e@​julia-thorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/pull/698\"\u003emosquito/aio-pika#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\"\u003ehttps://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mosquito/aio-pika/commit/8136a8cf6fd04413c9e6ac1a789944ac4b1a47fd\"\u003e\u003ccode\u003e8136a8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/issues/698\"\u003e#698\u003c/a\u003e from julia-thorn/julia-thorn-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mosquito/aio-pika/commit/31b82b102ac0133ff8322a3fc39db48409765055\"\u003e\u003ccode\u003e31b82b1\u003c/code\u003e\u003c/a\u003e Add license-files entry to pyproject.toml\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiokafka` from 0.13.0 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/releases\"\u003eaiokafka's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd rack-aware fetching from the closest in-sync replica (KIP-392) via the new\n\u003ccode\u003eclient_rack\u003c/code\u003e option on :class:\u003ccode\u003eAIOKafkaConsumer\u003c/code\u003e. When set and the brokers\nsupport \u003ccode\u003eFetchRequest v11\u003c/code\u003e (Kafka 2.4+) with a \u003ccode\u003ereplica.selector.class\u003c/code\u003e\nconfigured, the consumer will fetch from a same-rack follower instead of the\npartition leader, reducing cross-AZ traffic and tail latency.\n(prs \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1159\"\u003e#1159\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1160\"\u003e#1160\u003c/a\u003e by \u003ca href=\"https://github.com/GlebShipilov\"\u003e\u003ccode\u003e@​GlebShipilov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotation for \u003ccode\u003eAIOKafkaAdminClient\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn back and deprecate \u003ccode\u003eapi_version\u003c/code\u003e parameter in client classes\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid failures when a transaction coordinator is dead by removing deprecated code\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly manage batch max size and linger_ms. A batch will be always\nproduced if the max size or the lingering time is reached\n(pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1142\"\u003e#1142\u003c/a\u003e by \u003ca href=\"https://github.com/vmaurin\"\u003e\u003ccode\u003e@​vmaurin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.14.0b1\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd rack-aware fetching from the closest in-sync replica (KIP-392) via the new\n\u003ccode\u003eclient_rack\u003c/code\u003e option on :class:\u003ccode\u003eAIOKafkaConsumer\u003c/code\u003e. When set and the brokers\nsupport \u003ccode\u003eFetchRequest v11\u003c/code\u003e (Kafka 2.4+) with a \u003ccode\u003ereplica.selector.class\u003c/code\u003e\nconfigured, the consumer will fetch from a same-rack follower instead of the\npartition leader, reducing cross-AZ traffic and tail latency.\n(prs \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1159\"\u003e#1159\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1160\"\u003e#1160\u003c/a\u003e by \u003ca href=\"https://github.com/GlebShipilov\"\u003e\u003ccode\u003e@​GlebShipilov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotation for \u003ccode\u003eAIOKafkaAdminClient\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn back and deprecate \u003ccode\u003eapi_version\u003c/code\u003e parameter in client classes\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid failures when a transaction coordinator is dead by removing deprecated code\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly manage batch max size and linger_ms. A batch will be always\nproduced if the max size or the lingering time is reached\n(pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1142\"\u003e#1142\u003c/a\u003e by \u003ca href=\"https://github.com/vmaurin\"\u003e\u003ccode\u003e@​vmaurin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/blob/master/CHANGES.rst\"\u003eaiokafka's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.14.0 (2026-04-29)\u003c/h1\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd rack-aware fetching from the closest in-sync replica (KIP-392) via the new\n\u003ccode\u003eclient_rack\u003c/code\u003e option on :class:\u003ccode\u003eAIOKafkaConsumer\u003c/code\u003e. When set and the brokers\nsupport \u003ccode\u003eFetchRequest v11\u003c/code\u003e (Kafka 2.4+) with a \u003ccode\u003ereplica.selector.class\u003c/code\u003e\nconfigured, the consumer will fetch from a same-rack follower instead of the\npartition leader, reducing cross-AZ traffic and tail latency.\n(prs \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1159\"\u003e#1159\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1160\"\u003e#1160\u003c/a\u003e by \u003ca href=\"https://github.com/GlebShipilov\"\u003e\u003ccode\u003e@​GlebShipilov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotation for \u003ccode\u003eAIOKafkaAdminClient\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn back and deprecate \u003ccode\u003eapi_version\u003c/code\u003e parameter in client classes\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid failures when a transaction coordinator is dead by removing deprecated code\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly manage batch max size and linger_ms. A batch will be always\nproduced if the max size or the lingering time is reached\n(pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1142\"\u003e#1142\u003c/a\u003e by \u003ca href=\"https://github.com/vmaurin\"\u003e\u003ccode\u003e@​vmaurin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/672947afe85c91b7d953f0259e69837a711d3246\"\u003e\u003ccode\u003e672947a\u003c/code\u003e\u003c/a\u003e Prepare 0.14.0 final release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/de7ec7e3ee9620046be994f062d690b09136d01b\"\u003e\u003ccode\u003ede7ec7e\u003c/code\u003e\u003c/a\u003e Prepare 0.14.0b1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/7d331e0fe948a022cddeb6f1ea2da94fbeaa39a2\"\u003e\u003ccode\u003e7d331e0\u003c/code\u003e\u003c/a\u003e Fix last_stable_offset parsing for FetchResponse v5..v10 (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1160\"\u003e#1160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/00b099f0caa9009f9774c1c1869bbdf38de6d4bd\"\u003e\u003ccode\u003e00b099f\u003c/code\u003e\u003c/a\u003e Improve test_kip_345_disabled to debug flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/57fa87056f09f344d23a190513d7a7f2c599fc9a\"\u003e\u003ccode\u003e57fa870\u003c/code\u003e\u003c/a\u003e Client rack support (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/870a52fda23fad79a92b5917239a9a33fcc72006\"\u003e\u003ccode\u003e870a52f\u003c/code\u003e\u003c/a\u003e Use linger_ms to delay batches (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/cadc5e02d51440dc5dc89a597a17ee64bc0c0837\"\u003e\u003ccode\u003ecadc5e0\u003c/code\u003e\u003c/a\u003e Issue 1151 cleanup (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/19b28fed72e422fac72fcedc8db9d224b8c67ae2\"\u003e\u003ccode\u003e19b28fe\u003c/code\u003e\u003c/a\u003e Return and deprecate api_version (fixes \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1147\"\u003e#1147\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/52d440fb5a93a4dd2e0738715ed39c34d97d23e9\"\u003e\u003ccode\u003e52d440f\u003c/code\u003e\u003c/a\u003e Fix AIOKafkaAdminClient annotation (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1148\"\u003e#1148\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1149\"\u003e#1149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aio-libs/aiokafka/compare/v0.13.0...v0.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `litestar` from 2.21.1 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/litestar-org/litestar/releases\"\u003elitestar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003ch2\u003eSponsors 🌟\u003c/h2\u003e\n\u003cp\u003eThanks to these incredible business sponsors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://scalar.com/\"\u003eScalar\u003c/a\u003e (\u003ca href=\"https://github.com/scalar\"\u003e\u003ccode\u003e@​scalar\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://telemetrysports.com/\"\u003eTelemetry Sports\u003c/a\u003e (via \u003ca href=\"https://github.com/chris-telemetry\"\u003e\u003ccode\u003e@​chris-telemetry\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to these incredible personal sponsors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://polar.sh/\"\u003ePolar.sh\u003c/a\u003e: \u003ca href=\"https://github.com/Nozavi\"\u003e\u003ccode\u003e@​Nozavi\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cemrehancavdar\"\u003e\u003ccode\u003e@​cemrehancavdar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/thomastu\"\u003e\u003ccode\u003e@​thomastu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/litestar-org/\"\u003eGitHub Sponsors\u003c/a\u003e: \u003ca href=\"https://github.com/ddahan\"\u003e\u003ccode\u003e@​ddahan\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/roboflow\"\u003e\u003ccode\u003e@​roboflow\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cbscsm\"\u003e\u003ccode\u003e@​cbscsm\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/scalar\"\u003e\u003ccode\u003e@​scalar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/benjamin-kirkbride\"\u003e\u003ccode\u003e@​benjamin-kirkbride\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/litestar\"\u003eOpenCollective\u003c/a\u003e: Christian Y, Shaun Wah, Jordan Russel\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/maksimzayats\"\u003e\u003ccode\u003e@​maksimzayats\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4636\"\u003elitestar-org/litestar#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4605\"\u003elitestar-org/litestar#4605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavdwest\"\u003e\u003ccode\u003e@​pavdwest\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4676\"\u003elitestar-org/litestar#4676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/infraAnchor\"\u003e\u003ccode\u003e@​infraAnchor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4659\"\u003elitestar-org/litestar#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.litestar.dev/2/release-notes/changelog.html#2.22.0\"\u003ehttps://docs.litestar.dev/2/release-notes/changelog.html#2.22.0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.0\"\u003ehttps://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.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/litestar-org/litestar/commit/2f80070e237bde0a5c8035efde1ffebb1b949271\"\u003e\u003ccode\u003e2f80070\u003c/code\u003e\u003c/a\u003e fix: 3.9 typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/6930a20ceb543912cd651b42deae5b9f3637a262\"\u003e\u003ccode\u003e6930a20\u003c/code\u003e\u003c/a\u003e fix: ignore x-allowed-hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/299a5845d2e9a067ed7fb716fecf518cfed8b67b\"\u003e\u003ccode\u003e299a584\u003c/code\u003e\u003c/a\u003e fix: Ensure 'csrf_input' is properly escaped before rendering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/a1d51b95a08fc71545ad5861c47dc9ede075ec1b\"\u003e\u003ccode\u003ea1d51b9\u003c/code\u003e\u003c/a\u003e feat(core): Introduce explicit parameter declarations with generics (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/a8095beb8e78418189ce3bdd803596733833e0f3\"\u003e\u003ccode\u003ea8095be\u003c/code\u003e\u003c/a\u003e chore: Typing fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/2d9f742ccf7077c7b5c31256cb68c299423cf31c\"\u003e\u003ccode\u003e2d9f742\u003c/code\u003e\u003c/a\u003e chore: add Python 3.14 classifier to pyproject.toml (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4776\"\u003e#4776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/45c0ef9b3aa340d365269fc5425f7e1558c61db5\"\u003e\u003ccode\u003e45c0ef9\u003c/code\u003e\u003c/a\u003e fix(request): content-length check incompatible with decompression middleware...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/693649e962dd77b0ec9eda3ecb36afe92299dc04\"\u003e\u003ccode\u003e693649e\u003c/code\u003e\u003c/a\u003e ci: Remove codeql (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4706\"\u003e#4706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/bf891515be12f03bb122319c2cb9b716c4aa2118\"\u003e\u003ccode\u003ebf89151\u003c/code\u003e\u003c/a\u003e test: Remove deprecated \u003ccode\u003easyncio.WindowsSelectorEventLoopPolicy\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4704\"\u003e#4704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/f17780a00542959231322da01049b7157329aad8\"\u003e\u003ccode\u003ef17780a\u003c/code\u003e\u003c/a\u003e docs(usage/excluding-and-including-endpoints): fix misleading regex examples ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `commitizen` from 4.13.9 to 4.16.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commitizen-tools/commitizen/releases\"\u003ecommitizen's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.16.2 (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eFix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etags\u003c/strong\u003e: widen prerelease and devrelease tag regexes for SemVer2 (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1972\"\u003e#1972\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.16.1 (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eFix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecz_customize\u003c/strong\u003e: derive bump_map_major_version_zero from bump_map (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1977\"\u003e#1977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.16.0 (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eFeat\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ehooks\u003c/strong\u003e: support interactive hooks scripts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.15.1 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eFix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esecurity\u003c/strong\u003e: prevent command injection via shell=True (CWE-78) (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1941\"\u003e#1941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.15.0 (2026-05-03)\u003c/h2\u003e\n\u003ch3\u003eFeat\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eversion\u003c/strong\u003e: add MANUAL_VERSION, --next and --patch to version command (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1724\"\u003e#1724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.14.0 (2026-05-03)\u003c/h2\u003e\n\u003ch3\u003eFeat\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003e--allow-no-commit\u003c/code\u003e to \u003ccode\u003echangelog\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1868\"\u003e#1868\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/commitizen-tools/commitizen/commit/953e1ba4599cc3143122ed5c3e8de3d6dfd5524d\"\u003e\u003ccode\u003e953e1ba\u003c/code\u003e\u003c/a\u003e bump: version 4.16.1 → 4.16.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/c6b8c4455d8867d2b4fc31f4598f25f7a99968fe\"\u003e\u003ccode\u003ec6b8c44\u003c/code\u003e\u003c/a\u003e fix(tags): widen prerelease and devrelease tag regexes for SemVer2 (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1972\"\u003e#1972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/67151641260a5fd05fd61a1cddbf336a01108f6c\"\u003e\u003ccode\u003e6715164\u003c/code\u003e\u003c/a\u003e bump: version 4.16.0 → 4.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/3f8b8ca6f16c204c473c0aa17ccbee4970921da1\"\u003e\u003ccode\u003e3f8b8ca\u003c/code\u003e\u003c/a\u003e fix(cz_customize): derive bump_map_major_version_zero from bump_map (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1977\"\u003e#1977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/1d89cc5f840c08e721431d2971bfa2b43fc4a633\"\u003e\u003ccode\u003e1d89cc5\u003c/code\u003e\u003c/a\u003e docs(cli/screenshots): update CLI screenshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/9707a58ba8c850259ece0fafc8108ba2f350e005\"\u003e\u003ccode\u003e9707a58\u003c/code\u003e\u003c/a\u003e bump: version 4.15.1 → 4.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/80b92f1e603912c89dd756f387df847c4338cd24\"\u003e\u003ccode\u003e80b92f1\u003c/code\u003e\u003c/a\u003e ci: place --no-raise before bump subcommand (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/ecc4da436adac1e769d035a5f4684f6f087e6c39\"\u003e\u003ccode\u003eecc4da4\u003c/code\u003e\u003c/a\u003e docs(cli/screenshots): update CLI screenshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/ce07c7728c74600939244b649dd5754ef2b79507\"\u003e\u003ccode\u003ece07c77\u003c/code\u003e\u003c/a\u003e test: use match in pytest.raises (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1846\"\u003e#1846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/9bd9e8b281e0e2229497f14b4d170e35b6f6be8f\"\u003e\u003ccode\u003e9bd9e8b\u003c/code\u003e\u003c/a\u003e docs(cli/screenshots): update CLI screenshots\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commitizen-tools/commitizen/compare/v4.13.9...v4.16.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\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/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\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/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\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/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.6 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.6...0.15.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rust-just` from 1.46.0 to 1.51.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gnpaone/rust-just/releases\"\u003erust-just's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.51.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno-cd\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/casey/just/pull/2981\"\u003e#2981\u003c/a\u003e by \u003ca href=\"https://github.com/hans-d\"\u003ehans-d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003e[env]\u003c/code\u003e attribute to take expressions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3329\"\u003e#3329\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow using expressions with \u003ccode\u003e[working-directory]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3326\"\u003e#3326\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRead justfile from standard input with \u003ccode\u003e--justfile -\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3325\"\u003e#3325\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eparent_directory()\u003c/code\u003e of bare filename return \u003ccode\u003e.\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3313\"\u003e#3313\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003e[env]\u003c/code\u003e override module-level exports (\u003ca href=\"https://redirect.github.com/casey/just/pull/3312\"\u003e#3312\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail on deep recursion instead of overflowing stack (\u003ca href=\"https://redirect.github.com/casey/just/pull/3319\"\u003e#3319\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInvoke chooser selections separately (\u003ca href=\"https://redirect.github.com/casey/just/pull/3311\"\u003e#3311\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't evaluate unused assertions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3310\"\u003e#3310\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect lazy setting in submodules (\u003ca href=\"https://redirect.github.com/casey/just/pull/3308\"\u003e#3308\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix overrides not being visible in user-defined functions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3307\"\u003e#3307\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't panic on invalid datetime format string (\u003ca href=\"https://redirect.github.com/casey/just/pull/3304\"\u003e#3304\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ecargo-limit\u003c/code\u003e commands in justfile (\u003ca href=\"https://redirect.github.com/casey/just/pull/3331\"\u003e#3331\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify code more (\u003ca href=\"https://redirect.github.com/casey/just/pull/3330\"\u003e#3330\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate install-dev-deps recipe with compatible mdbook (\u003ca href=\"https://redirect.github.com/casey/just/pull/3328\"\u003e#3328\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify code (\u003ca href=\"https://redirect.github.com/casey/just/pull/3327\"\u003e#3327\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink to duplicate recipe issue in readme (\u003ca href=\"https://redirect.github.com/casey/just/pull/3321\"\u003e#3321\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove periods from error messages (\u003ca href=\"https://redirect.github.com/casey/just/pull/3316\"\u003e#3316\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid multi-sentence error messagess (\u003ca href=\"https://redirect.github.com/casey/just/pull/3315\"\u003e#3315\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake error messages lowercase (\u003ca href=\"https://redirect.github.com/casey/just/pull/3314\"\u003e#3314\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eActually bump version to 1.50.0 (\u003ca href=\"https://redirect.github.com/casey/just/pull/3303\"\u003e#3303\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.50.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFilter \u003ccode\u003e--choose\u003c/code\u003e by \u003ccode\u003e--group\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3298\"\u003e#3298\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e[android]\u003c/code\u003e recipe attribute (\u003ca href=\"https://redirect.github.com/casey/just/pull/2884\"\u003e#2884\u003c/a\u003e by \u003ca href=\"https://github.com/duncanawoods\"\u003eduncanawoods\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003emodule_path()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/casey/just/pull/3270\"\u003e#3270\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve trailing comments when formatting (\u003ca href=\"https://redirect.github.com/casey/just/pull/3282\"\u003e#3282\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve comments before \u003ccode\u003e[doc]\u003c/code\u003e attribute (\u003ca href=\"https://redirect.github.com/casey/just/pull/3275\"\u003e#3275\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow comments after unexports (\u003ca href=\"https://redirect.github.com/casey/just/pull/3264\"\u003e#3264\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStabilize \u003ccode\u003e--fmt\u003c/code\u003e subcommand (\u003ca href=\"https://redirect.github.com/casey/just/pull/3301\"\u003e#3301\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore trailing \u003ccode\u003e::\u003c/code\u003e on last argument (\u003ca href=\"https://redirect.github.com/casey/just/pull/3300\"\u003e#3300\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComplete files and directories when completing arguments (\u003ca href=\"https://redirect.github.com/casey/just/pull/3299\"\u003e#3299\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003emodule_path\u003c/code\u003e field in JSON (\u003ca href=\"https://redirect.github.com/casey/just/pull/3288\"\u003e#3288\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePartially collapse blank lines between items (\u003ca href=\"https://redirect.github.com/casey/just/pull/3274\"\u003e#3274\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOmit defaults when formatting settings (\u003ca href=\"https://redirect.github.com/casey/just/pull/3268\"\u003e#3268\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\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/gnpaone/rust-just/blob/master/CHANGELOG.md\"\u003erust-just's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/casey/just/releases/tag/1.50.0\"\u003e1.51.0\u003c/a\u003e - 2026-05-09\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno-cd\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/casey/just/pull/2981\"\u003e#2981\u003c/a\u003e by \u003ca href=\"https://github.com/hans-d\"\u003ehans-d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003e[env]\u003c/code\u003e attribute to take expressions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3329\"\u003e#3329\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow using expressions with \u003ccode\u003e[working-directory]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3326\"\u003e#3326\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRead justfile from standard input with \u003ccode\u003e--justfile -\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3325\"\u003e#3325\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eparent_directory()\u003c/code\u003e of bare filename return \u003ccode\u003e.\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3313\"\u003e#3313\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003e[env]\u003c/code\u003e override module-level exports (\u003ca href=\"https://redirect.github.com/casey/just/pull/3312\"\u003e#3312\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail on deep recursion instead of overflowing stack (\u003ca href=\"https://redirect.github.com/casey/just/pull/3319\"\u003e#3319\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInvoke chooser selections separately (\u003ca href=\"https://redirect.github.com/casey/just/pull/3311\"\u003e#3311\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't evaluate unused assertions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3310\"\u003e#3310\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect lazy setting in submodules (\u003ca href=\"https://redirect.github.com/casey/just/pull/3308\"\u003e#3308\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix overrides not being visible in user-defined functions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3307\"\u003e#3307\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't panic on invalid datetime format string (\u003ca href=\"https://redirect.github.com/casey/just/pull/3304\"\u003e#3304\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ecargo-limit\u003c/code\u003e commands in justfile (\u003ca href=\"https://redirect.github.com/casey/just/pull/3331\"\u003e#3331\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify code more (\u003ca href=\"https://redirect.github.com/casey/just/pull/3330\"\u003e#3330\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate install-dev-deps recipe with compatible mdbook (\u003ca href=\"https://redirect.github.com/casey/just/pull/3328\"\u003e#3328\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify code (\u003ca href=\"https://redirect.github.com/casey/just/pull/3327\"\u003e#3327\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink to duplicate recipe issue in readme (\u003ca href=\"https://redirect.github.com/casey/just/pull/3321\"\u003e#3321\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove periods from error messages (\u003ca href=\"https://redirect.github.com/casey/just/pull/3316\"\u003e#3316\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid multi-sentence error messagess (\u003ca href=\"https://redirect.github.com/casey/just/pull/3315\"\u003e#3315\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake error messages lowercase (\u003ca href=\"https://redirect.github.com/casey/just/pull/3314\"\u003e#3314\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eActually bump version to 1.50.0 (\u003ca href=\"https://redirect.github.com/casey/just/pull/3303\"\u003e#3303\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/casey/just/releases/tag/1.50.0\"\u003e1.50.0\u003c/a\u003e - 2026-04-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFilter \u003ccode\u003e--choose\u003c/code\u003e by \u003ccode\u003e--group\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3298\"\u003e#3298\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e[android]\u003c/code\u003e recipe attribute (\u003ca href=\"https://redirect.github.com/casey/just/pull/2884\"\u003e#2884\u003c/a\u003e by \u003ca href=\"https://github.com/duncanawoods\"\u003eduncanawoods\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003emodule_path()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/casey/just/pull/3270\"\u003e#3270\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve trailing comments when formatting (\u003ca href=\"https://redirect.github.com/casey/just/pull/3282\"\u003e#3282\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve comments before \u003ccode\u003e[doc]\u003c/code\u003e attribute (\u003ca href=\"https://redirect.github.com/casey/just/pull/3275\"\u003e#3275\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow comments after unexports (\u003ca href=\"https://redirect.github.com/casey/just/pull/3264\"\u003e#3264\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStabilize \u003ccode\u003e--fmt\u003c/code\u003e subcommand (\u003ca href=\"https://redirect.github.com/casey/just/pull/3301\"\u003e#3301\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore trailing \u003ccode\u003e::\u003c/code\u003e on last argument (\u003ca href=\"https://redirect.github.com/casey/just/pull/3300\"\u003e#3300\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComplete files and directories when completing arguments (\u003ca href=\"https://redirect.github.com/casey/just/pull/3299\"\u003e#3299\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003emodule_path\u003c/code\u003e field in JSON (\u003ca href=\"https://redirect.github.com/casey/just/pull/3288\"\u003e#3288\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\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/gnpaone/rust-just/commit/1949b3d25ee0f5fed0e0d901bda285d0480f1df5\"\u003e\u003ccode\u003e1949b3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gnpaone/rust-just/issues/476\"\u003e#476\u003c/a\u003e from gnpaone/sync-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/f55bd7fcb9aabacb1970fc1305abef65613e8c17\"\u003e\u003ccode\u003ef55bd7f\u003c/code\u003e\u003c/a\u003e chore: sync files from source repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/a3ee985206392d4d6499ed4f75b8d0d0c4cfae19\"\u003e\u003ccode\u003ea3ee985\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gnpaone/rust-just/issues/475\"\u003e#475\u003c/a\u003e from gnpaone/sync-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/f28ab0ec1897180c4efda4730a56a2224bba3825\"\u003e\u003ccode\u003ef28ab0e\u003c/code\u003e\u003c/a\u003e chore: sync files from source repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/7a16ca999a7b5b44baadc0ddee0e44415ece180b\"\u003e\u003ccode\u003e7a16ca9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gnpaone/rust-just/issues/474\"\u003e#474\u003c/a\u003e from gnpaone/dependabot/npm_and_yarn/npm/rust-just/ty...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/def1fb7251cd4ba957449553cdbaefb6d2723a70\"\u003e\u003ccode\u003edef1fb7\u003c/code\u003e\u003c/a\u003e npm(deps-dev): bump \u003ccode\u003e@​types/node\u003c/code\u003e from 25.6.0 to 25.6.2 in /npm/rust-just\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/283029bcedb3c9b921d6c6e90db15d39cc38c1f8\"\u003e\u003ccode\u003e283029b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gnpaone/rust-just/issues/473\"\u003e#473\u003c/a\u003e from gnpaone/sync-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/5db9a03fee34d812c5f33962ec50aed9ae7739ec\"\u003e\u003ccode\u003e5db9a03\u003c/code\u003e\u003c/a\u003e chore: sync files fr...\n\n_Description has been truncated_","html_url":"https://github.com/ZYLVEXT/fast-healthchecks/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYLVEXT%2Ffast-healthchecks/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"},{"uuid":"4490220370","node_id":"PR_kwDOR3ThZc7dtzXg","number":43,"state":"open","title":"chore(deps): Bump zensical from 0.0.33 to 0.0.43","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-05-20T22:04:00.000Z","updated_at":"2026-05-20T22:04:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"zensical","old_version":"0.0.33","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.33 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.33...v0.0.43\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.33\u0026new-version=0.0.43)](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/chaospheremk/PermissionAnalyzer/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaospheremk%2FPermissionAnalyzer/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"},{"uuid":"4482448089","node_id":"PR_kwDONC8Qws7dUqz3","number":472,"state":"open","title":"⬆️ Bump zensical from 0.0.42 to 0.0.43 in the dependencies group","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":12,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-20T01:46:26.000Z","updated_at":"2026-05-20T01:48:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆️ Bump","packages":[{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":"the dependencies group","ecosystem":"pip"},"body":"Bumps the dependencies group with 1 update: [zensical](https://github.com/zensical/zensical).\n\nUpdates `zensical` from 0.0.42 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.42\u0026new-version=0.0.43)](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\n\n\n\u003c/details\u003e","html_url":"https://github.com/7rikazhexde/json2vars-setter/pull/472","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rikazhexde%2Fjson2vars-setter/issues/472","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/472/packages"},{"uuid":"4475832603","node_id":"PR_kwDOH77cZc7c_NkE","number":70,"state":"closed","title":"Bump zensical from 0.0.38 to 0.0.42","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-26T04:29:39.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T08:43:00.000Z","updated_at":"2026-05-26T04:29:42.000Z","time_to_close":589599,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.38","new_version":"0.0.42","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.38 to 0.0.42.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/#reading-tabular-data\"\u003eintegrating tabular data\u003c/a\u003e as Markdown tables, covering the functionality of the \u003ca href=\"https://pypi.org/project/mkdocs-table-reader-plugin/\"\u003emkdocs-table-reader-plugin\u003c/a\u003e, as well as the \u003ca href=\"https://zensical.org/docs/setup/basics/#watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/\"\u003emacros\u003c/a\u003e, which we shipped in \u003ca href=\"https://github.com/zensical/zensical/releases/tag/v0.0.40\"\u003e0.0.40\u003c/a\u003e. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAdditionally, the stability of link \u003ca href=\"https://zensical.org/docs/setup/validation/\"\u003evalidation\u003c/a\u003e has been drastically improved, reducing the rate of false positives. We're working on support for validating links using \u003ca href=\"https://mkdocstrings.github.io/autorefs/\"\u003eautorefs\u003c/a\u003e, which we'll provide in one of the next versions.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ed24ea24 \u003cstrong\u003ecompat\u003c/strong\u003e – support table reader functionality\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/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/cdee1e8bc77e83ebbb089cab0b5a0984cc6305cc\"\u003e\u003ccode\u003ecdee1e8\u003c/code\u003e\u003c/a\u003e fix: disabling link validation doesn't disable link and reference collection ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a5d97abe0bc15b10e4656767de658daab59c759\"\u003e\u003ccode\u003e7a5d97a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/680\"\u003e#680\u003c/a\u003e from zensical/fix/validation-edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/4355dad3ce47a0e647e2187a770a2b9b0b2d502e\"\u003e\u003ccode\u003e4355dad\u003c/code\u003e\u003c/a\u003e fix: harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a418c6bd3c62673e91df01690fd9eccafe262041\"\u003e\u003ccode\u003ea418c6b\u003c/code\u003e\u003c/a\u003e fix: link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/b31dd1472c091891ee6a87cb46e8313cf3dde9be\"\u003e\u003ccode\u003eb31dd14\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/17c67a2f62181c85220275e8f87c5985135bd62f\"\u003e\u003ccode\u003e17c67a2\u003c/code\u003e\u003c/a\u003e fix: remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6eb2f4d942e79e6f48f772fa16dcddc6e6dbb4eb\"\u003e\u003ccode\u003e6eb2f4d\u003c/code\u003e\u003c/a\u003e fix: reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a5a864178ccd0616e5aea56b66f8ce6b031ce50b\"\u003e\u003ccode\u003ea5a8641\u003c/code\u003e\u003c/a\u003e fix: only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.38...v0.0.42\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.38\u0026new-version=0.0.42)](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/Software-Hardware-Integration-Lab/Documentation/pull/70","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Software-Hardware-Integration-Lab%2FDocumentation/issues/70","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/70/packages"},{"uuid":"4474502719","node_id":"PR_kwDORXN-Gc7c69Us","number":36,"state":"closed","title":"build(deps): bump the uv group with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-22T00:46:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T04:51:31.000Z","updated_at":"2026-05-22T00:46:36.000Z","time_to_close":244503,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"uv","update_count":7,"packages":[{"name":"pydantic","old_version":"2.13.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"tox-uv","old_version":"1.35.1","new_version":"1.35.2","repository_url":"https://github.com/tox-dev/tox-uv"},{"name":"ty","old_version":"0.0.31","new_version":"0.0.36","repository_url":"https://github.com/astral-sh/ty"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"prek","old_version":"0.3.9","new_version":"0.3.13","repository_url":"https://github.com/j178/prek"},{"name":"pymdown-extensions","old_version":"10.21.2","new_version":"10.21.3","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"zensical","old_version":"0.0.33","new_version":"0.0.42","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.0` | `2.13.4` |\n| [tox-uv](https://github.com/tox-dev/tox-uv) | `1.35.1` | `1.35.2` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.31` | `0.0.36` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.13` |\n| [prek](https://github.com/j178/prek) | `0.3.9` | `0.3.13` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21.2` | `10.21.3` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.33` | `0.0.42` |\n\nUpdates `pydantic` from 2.13.0 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox-uv` from 1.35.1 to 1.35.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox-uv/releases\"\u003etox-uv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.35.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHonor constraints opt for all packages by \u003ca href=\"https://github.com/stephenfin\"\u003e\u003ccode\u003e@​stephenfin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/pull/332\"\u003etox-dev/tox-uv#332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(lock): honor --recreate in uv-venv-lock-runner by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/pull/338\"\u003etox-dev/tox-uv#338\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/stephenfin\"\u003e\u003ccode\u003e@​stephenfin\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/pull/332\"\u003etox-dev/tox-uv#332\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox-uv/compare/1.35.1...1.35.2\"\u003ehttps://github.com/tox-dev/tox-uv/compare/1.35.1...1.35.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/595721d2a0c8695aeb9bb59e3042a79d2dff2b90\"\u003e\u003ccode\u003e595721d\u003c/code\u003e\u003c/a\u003e 🐛 fix(lock): honor --recreate in uv-venv-lock-runner (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/1026808b9d98b5c1f9d92e84b5cccfde23a01bed\"\u003e\u003ccode\u003e1026808\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/3f7ea4d7f0495f32d95a3b7f67ddc164b85b17bd\"\u003e\u003ccode\u003e3f7ea4d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/f976fc1a0548d4b4544a87e637c0fc31f6d14372\"\u003e\u003ccode\u003ef976fc1\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/c0fabe3f6c4627869552ae74a53721aaf998ce02\"\u003e\u003ccode\u003ec0fabe3\u003c/code\u003e\u003c/a\u003e Honor constraints opt for all packages (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/d4aa96d0a0583e08a45ccfc6f9a08f89425a38ea\"\u003e\u003ccode\u003ed4aa96d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/331\"\u003e#331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/ac785195b51a3a1835702925d4150bba74134ccd\"\u003e\u003ccode\u003eac78519\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/329\"\u003e#329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/8bab9b8484aefa61c220e38e36b497af0f590130\"\u003e\u003ccode\u003e8bab9b8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/328\"\u003e#328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/tox-uv/compare/1.35.1...1.35.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.31 to 0.0.36\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.36\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Go To-Definition for self-imported submodules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25106\"\u003e#25106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eClassVar[Self]\u003c/code\u003e assignment checks for class objects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24657\"\u003e#24657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix attribute access on \u003ccode\u003eCallable\u003c/code\u003e-bounded TypeVars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24793\"\u003e#24793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from TypedDict schema cycle with \u003ccode\u003eSelf\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25094\"\u003e#25094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from non-name walrus target access (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25121\"\u003e#25121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix singleton classification for runtime typing objects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25099\"\u003e#25099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGuard self-referential \u003ccode\u003eTypeOf\u003c/code\u003e recursion in generic callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24668\"\u003e#24668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve lexical ParamSpec scope for returned Callable annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24909\"\u003e#24909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve walrus bindings through negated short-circuit conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25163\"\u003e#25163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClassify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit folding ranges for an entire block (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25113\"\u003e#25113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect the \u003ccode\u003eincludeDeclaration\u003c/code\u003e request parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24960\"\u003e#24960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25147\"\u003e#25147\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound loop-header analysis for large loops (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24972\"\u003e#24972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert inference hash maps to boxed slices on finish (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25102\"\u003e#25102\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for sentinel values (\u003ca href=\"https://peps.python.org/pep-0661/\"\u003ePEP 661\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25082\"\u003e#25082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHoist path assignment implication checks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25107\"\u003e#25107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RasmusNygren\"\u003e\u003ccode\u003e@​RasmusNygren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Minibrams\"\u003e\u003ccode\u003e@​Minibrams\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ty 0.0.36\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/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.36\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Go To-Definition for self-imported submodules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25106\"\u003e#25106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eClassVar[Self]\u003c/code\u003e assignment checks for class objects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24657\"\u003e#24657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix attribute access on \u003ccode\u003eCallable\u003c/code\u003e-bounded TypeVars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24793\"\u003e#24793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from TypedDict schema cycle with \u003ccode\u003eSelf\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25094\"\u003e#25094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from non-name walrus target access (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25121\"\u003e#25121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix singleton classification for runtime typing objects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25099\"\u003e#25099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGuard self-referential \u003ccode\u003eTypeOf\u003c/code\u003e recursion in generic callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24668\"\u003e#24668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve lexical ParamSpec scope for returned Callable annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24909\"\u003e#24909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve walrus bindings through negated short-circuit conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25163\"\u003e#25163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClassify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit folding ranges for an entire block (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25113\"\u003e#25113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect the \u003ccode\u003eincludeDeclaration\u003c/code\u003e request parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24960\"\u003e#24960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25147\"\u003e#25147\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound loop-header analysis for large loops (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24972\"\u003e#24972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert inference hash maps to boxed slices on finish (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25102\"\u003e#25102\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for sentinel values (\u003ca href=\"https://peps.python.org/pep-0661/\"\u003ePEP 661\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25082\"\u003e#25082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHoist path assignment implication checks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25107\"\u003e#25107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RasmusNygren\"\u003e\u003ccode\u003e@​RasmusNygren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Minibrams\"\u003e\u003ccode\u003e@​Minibrams\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.35\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-10.\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/astral-sh/ty/commit/a63e55929645f8eeaa6f28117afda8d2ed39d1a4\"\u003e\u003ccode\u003ea63e559\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.36 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3463\"\u003e#3463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/94370d5b43c48d01720a9e65d8d8d5286b6697b1\"\u003e\u003ccode\u003e94370d5\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3449\"\u003e#3449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/bc12d1cade50bc9407486057116fa0538bfb31ac\"\u003e\u003ccode\u003ebc12d1c\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.35 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3436\"\u003e#3436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/fb34d89e4acb379f6d8239d338881a6d1cce6642\"\u003e\u003ccode\u003efb34d89\u003c/code\u003e\u003c/a\u003e Build riscv64 manylinux binary (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/05def00f5eb67a599b314e1d550b4ce07ae08727\"\u003e\u003ccode\u003e05def00\u003c/code\u003e\u003c/a\u003e Update maturin to v1.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/569c081af4159100bfe7be97624da9ef9910d8c8\"\u003e\u003ccode\u003e569c081\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3416\"\u003e#3416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/608f8ff6e705b656392a89a1cf4e0b977fb10ab4\"\u003e\u003ccode\u003e608f8ff\u003c/code\u003e\u003c/a\u003e Update renovate configuration (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3379\"\u003e#3379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/518b61d7c2a2eff95e8826a9bba4a392574258b0\"\u003e\u003ccode\u003e518b61d\u003c/code\u003e\u003c/a\u003e Update uraimo/run-on-arch-action action to v3.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3405\"\u003e#3405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/55429594f26e78d277b29aaadc10ca46f9277148\"\u003e\u003ccode\u003e5542959\u003c/code\u003e\u003c/a\u003e Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3404\"\u003e#3404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/d00448eb0204e2dd11943d21e8e08a225914775f\"\u003e\u003ccode\u003ed00448e\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.34 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3392\"\u003e#3392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.31...0.0.36\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.11 to 0.15.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2afb467ce397e4a89c13a0a814c62cfecb0e9e49\"\u003e\u003ccode\u003e2afb467\u003c/code\u003e\u003c/a\u003e Bump 0.15.13 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25157\"\u003e#25157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b\"\u003e\u003ccode\u003e3008796\u003c/code\u003e\u003c/a\u003e [ty] classify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8\"\u003e\u003ccode\u003e79470e3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0\"\u003e\u003ccode\u003e2522549\u003c/code\u003e\u003c/a\u003e Remove shellcheck from prek (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25154\"\u003e#25154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06\"\u003e\u003ccode\u003e7db7170\u003c/code\u003e\u003c/a\u003e [ty] Support TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25\"\u003e#25\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0\"\u003e\u003ccode\u003ebb3dd53\u003c/code\u003e\u003c/a\u003e [ty] Run full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a\"\u003e\u003ccode\u003e828cdb7\u003c/code\u003e\u003c/a\u003e [ty] Isolate file-watching test environment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25151\"\u003e#25151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d\"\u003e\u003ccode\u003e89e1d86\u003c/code\u003e\u003c/a\u003e [ty] Preserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da\"\u003e\u003ccode\u003e86f3064\u003c/code\u003e\u003c/a\u003e [ty] Avoid accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a\"\u003e\u003ccode\u003eed819f9\u003c/code\u003e\u003c/a\u003e [ty] Treat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.3.9 to 0.3.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.3.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-06.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect hook filters for message files (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Godot Engine to users in README (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Calinou\"\u003e\u003ccode\u003e@​Calinou\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.3.13\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.3.13/prek-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.3.13/prek-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload prek 0.3.13\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-apple-darwin.tar.gz\"\u003eprek-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-apple-darwin.tar.gz\"\u003eprek-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-pc-windows-msvc.zip\"\u003eprek-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-pc-windows-msvc.zip\"\u003eprek-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-pc-windows-msvc.zip\"\u003eprek-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-unknown-linux-gnu.tar.gz\"\u003eprek-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-unknown-linux-gnu.tar.gz\"\u003eprek-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-riscv64gc-unknown-linux-gnu.tar.gz\"\u003eprek-riscv64gc-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRISCV Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-riscv64gc-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.3.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-06.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect hook filters for message files (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Godot Engine to users in README (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Calinou\"\u003e\u003ccode\u003e@​Calinou\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.3.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-05.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eauto_update.cooldown_days\u003c/code\u003e is now available in both the user-level global\nconfig (\u003ccode\u003e~/.config/prek/prek.toml\u003c/code\u003e on Linux and macOS, or\n\u003ccode\u003e$XDG_CONFIG_HOME/prek/prek.toml\u003c/code\u003e when set; \u003ccode\u003e%APPDATA%\\prek\\prek.toml\u003c/code\u003e on\nWindows) and project config. Set a user default for \u003ccode\u003eprek auto-update\u003c/code\u003e, then\noverride it per project when a repository needs a different update cadence.\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e[auto_update]\ncooldown_days = 7\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd global auto-update cooldown config (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd project auto-update cooldown config (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2044\"\u003e#2044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003elanguage: dart\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1146\"\u003e#1146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePass commit message file to workspace hooks (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve non-UTF8 filenames from git (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2023\"\u003e#2023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eruby: put resolved Ruby's bin dir on \u003ccode\u003e$PATH\u003c/code\u003e for \u003ccode\u003egem\u003c/code\u003e invocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs with the new logo and icon (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePoint schema docs to SchemaStore (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2039\"\u003e#2039\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/j178/prek/commit/81b290ef0630d1e130dc37ae1916da0e51b8a002\"\u003e\u003ccode\u003e81b290e\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.13 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2050\"\u003e#2050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/3f5e5c6e54bdd9b1640228cdd69a449e18ddf9f8\"\u003e\u003ccode\u003e3f5e5c6\u003c/code\u003e\u003c/a\u003e Respect hook filters for message files (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/1fab88775affde4fd0c75b2f9102a5df88195efc\"\u003e\u003ccode\u003e1fab887\u003c/code\u003e\u003c/a\u003e Add Godot Engine to users in README (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/93a71e0b730d30d2fa56f9e47f2a293beb007988\"\u003e\u003ccode\u003e93a71e0\u003c/code\u003e\u003c/a\u003e Remove deleted \u003ccode\u003edist/post/index.cjs\u003c/code\u003e from publish prek version workflow (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2046\"\u003e#2046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/56d6d0c13ef36a4ab6a705621fba41448f2b503d\"\u003e\u003ccode\u003e56d6d0c\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.12 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2045\"\u003e#2045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/5f94f6f8ea8e5df0fb6604b4b8ec63072e1dc8f3\"\u003e\u003ccode\u003e5f94f6f\u003c/code\u003e\u003c/a\u003e Add project auto-update cooldown config (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2044\"\u003e#2044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/c52833e9991584d03bcd7e2b6fc01fa43e1f0d09\"\u003e\u003ccode\u003ec52833e\u003c/code\u003e\u003c/a\u003e Add global auto-update cooldown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/8af3054dc690fd06fe91b2b0c0ca4fe8e4418051\"\u003e\u003ccode\u003e8af3054\u003c/code\u003e\u003c/a\u003e Pass commit message file to workspace hooks (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/1bf54f5fa9638ad66a7d0b160170da75de1eec81\"\u003e\u003ccode\u003e1bf54f5\u003c/code\u003e\u003c/a\u003e Update Rust crate serde-saphyr to 0.0.25 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2036\"\u003e#2036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/8c9761a523bcb180ff35fcfcd8e85184f87eaceb\"\u003e\u003ccode\u003e8c9761a\u003c/code\u003e\u003c/a\u003e Bump rand to 0.9.4 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2040\"\u003e#2040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.3.9...v0.3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.21.2 to 10.21.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.21.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix regression that allows a snippet to be loaded outside of the base path using directory traversal when\n\u003ccode\u003erestrict_base_path\u003c/code\u003e is enabled (the default). Found by \u003ca href=\"https://github.com/gistrec\"\u003e\u003ccode\u003e@​gistrec\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/42628414c6591b1a1ce211157090783e3b2242d6\"\u003e\u003ccode\u003e4262841\u003c/code\u003e\u003c/a\u003e Fix spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/63b7835776d703d6c339cf2110d9888f676efc0c\"\u003e\u003ccode\u003e63b7835\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/3d185501daaa1424c4a8d42124112c44ef6ab635\"\u003e\u003ccode\u003e3d18550\u003c/code\u003e\u003c/a\u003e Docs: update js deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.21.2...10.21.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.33 to 0.0.42\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/#reading-tabular-data\"\u003eintegrating tabular data\u003c/a\u003e as Markdown tables, covering the functionality of the \u003ca href=\"https://pypi.org/project/mkdocs-table-reader-plugin/\"\u003emkdocs-table-reader-plugin\u003c/a\u003e, as well as the \u003ca href=\"https://zensical.org/docs/setup/basics/#watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/\"\u003emacros\u003c/a\u003e, which we shipped in \u003ca href=\"https://github.com/zensical/zensical/releases/tag/v0.0.40\"\u003e0.0.40\u003c/a\u003e. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAdditionally, the stability of link \u003ca href=\"https://zensical.org/docs/setup/validation/\"\u003evalidation\u003c/a\u003e has been drastically improved, reducing the rate of false positives. We're working on support for validating links using \u003ca href=\"https://mkdocstrings.github.io/autorefs/\"\u003eautorefs\u003c/a\u003e, which we'll provide in one of the next versions.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ed24ea24 \u003cstrong\u003ecompat\u003c/strong\u003e – support table reader functionality\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/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/cdee1e8bc77e83ebbb089cab0b5a0984cc6305cc\"\u003e\u003ccode\u003ecdee1e8\u003c/code\u003e\u003c/a\u003e fix: disabling link validation doesn't disable link and reference collection ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a5d97abe0bc15b10e4656767de658daab59c759\"\u003e\u003ccode\u003e7a5d97a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/680\"\u003e#680\u003c/a\u003e from zensical/fix/validation-edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/4355dad3ce47a0e647e2187a770a2b9b0b2d502e\"\u003e\u003ccode\u003e4355dad\u003c/code\u003e\u003c/a\u003e fix: harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a418c6bd3c62673e91df01690fd9eccafe262041\"\u003e\u003ccode\u003ea418c6b\u003c/code\u003e\u003c/a\u003e fix: link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/b31dd1472c091891ee6a87cb46e8313cf3dde9be\"\u003e\u003ccode\u003eb31dd14\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/17c67a2f62181c85220275e8f87c5985135bd62f\"\u003e\u003ccode\u003e17c67a2\u003c/code\u003e\u003c/a\u003e fix: remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6eb2f4d942e79e6f48f772fa16dcddc6e6dbb4eb\"\u003e\u003ccode\u003e6eb2f4d\u003c/code\u003e\u003c/a\u003e fix: reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a5a864178ccd0616e5aea56b66f8ce6b031ce50b\"\u003e\u003ccode\u003ea5a8641\u003c/code\u003e\u003c/a\u003e fix: only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.33...v0.0.42\"\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/OlegZv/machineq/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlegZv%2Fmachineq/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"},{"uuid":"4473859387","node_id":"PR_kwDOABR-A87c45-k","number":21,"state":"closed","title":"chore(deps): bump zensical from 0.0.23 to 0.0.42","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T22:32:04.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T02:06:29.000Z","updated_at":"2026-05-25T22:32:06.000Z","time_to_close":591935,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"zensical","old_version":"0.0.23","new_version":"0.0.42","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.23 to 0.0.42.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/#reading-tabular-data\"\u003eintegrating tabular data\u003c/a\u003e as Markdown tables, covering the functionality of the \u003ca href=\"https://pypi.org/project/mkdocs-table-reader-plugin/\"\u003emkdocs-table-reader-plugin\u003c/a\u003e, as well as the \u003ca href=\"https://zensical.org/docs/setup/basics/#watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/\"\u003emacros\u003c/a\u003e, which we shipped in \u003ca href=\"https://github.com/zensical/zensical/releases/tag/v0.0.40\"\u003e0.0.40\u003c/a\u003e. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAdditionally, the stability of link \u003ca href=\"https://zensical.org/docs/setup/validation/\"\u003evalidation\u003c/a\u003e has been drastically improved, reducing the rate of false positives. We're working on support for validating links using \u003ca href=\"https://mkdocstrings.github.io/autorefs/\"\u003eautorefs\u003c/a\u003e, which we'll provide in one of the next versions.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ed24ea24 \u003cstrong\u003ecompat\u003c/strong\u003e – support table reader functionality\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/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/cdee1e8bc77e83ebbb089cab0b5a0984cc6305cc\"\u003e\u003ccode\u003ecdee1e8\u003c/code\u003e\u003c/a\u003e fix: disabling link validation doesn't disable link and reference collection ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a5d97abe0bc15b10e4656767de658daab59c759\"\u003e\u003ccode\u003e7a5d97a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/680\"\u003e#680\u003c/a\u003e from zensical/fix/validation-edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/4355dad3ce47a0e647e2187a770a2b9b0b2d502e\"\u003e\u003ccode\u003e4355dad\u003c/code\u003e\u003c/a\u003e fix: harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a418c6bd3c62673e91df01690fd9eccafe262041\"\u003e\u003ccode\u003ea418c6b\u003c/code\u003e\u003c/a\u003e fix: link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/b31dd1472c091891ee6a87cb46e8313cf3dde9be\"\u003e\u003ccode\u003eb31dd14\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/17c67a2f62181c85220275e8f87c5985135bd62f\"\u003e\u003ccode\u003e17c67a2\u003c/code\u003e\u003c/a\u003e fix: remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6eb2f4d942e79e6f48f772fa16dcddc6e6dbb4eb\"\u003e\u003ccode\u003e6eb2f4d\u003c/code\u003e\u003c/a\u003e fix: reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a5a864178ccd0616e5aea56b66f8ce6b031ce50b\"\u003e\u003ccode\u003ea5a8641\u003c/code\u003e\u003c/a\u003e fix: only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.23...v0.0.42\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.23\u0026new-version=0.0.42)](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/mbainter/mbainter.github.io/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbainter%2Fmbainter.github.io/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"4462005905","node_id":"PR_kwDOSNSaVM7cTnIW","number":8,"state":"closed","title":"Bump zensical from 0.0.36 to 0.0.42","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-24T02:18:39.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-17T02:19:19.000Z","updated_at":"2026-05-24T02:18:40.000Z","time_to_close":604760,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.36","new_version":"0.0.42","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.36 to 0.0.42.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/#reading-tabular-data\"\u003eintegrating tabular data\u003c/a\u003e as Markdown tables, covering the functionality of the \u003ca href=\"https://pypi.org/project/mkdocs-table-reader-plugin/\"\u003emkdocs-table-reader-plugin\u003c/a\u003e, as well as the \u003ca href=\"https://zensical.org/docs/setup/basics/#watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/\"\u003emacros\u003c/a\u003e, which we shipped in \u003ca href=\"https://github.com/zensical/zensical/releases/tag/v0.0.40\"\u003e0.0.40\u003c/a\u003e. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAdditionally, the stability of link \u003ca href=\"https://zensical.org/docs/setup/validation/\"\u003evalidation\u003c/a\u003e has been drastically improved, reducing the rate of false positives. We're working on support for validating links using \u003ca href=\"https://mkdocstrings.github.io/autorefs/\"\u003eautorefs\u003c/a\u003e, which we'll provide in one of the next versions.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ed24ea24 \u003cstrong\u003ecompat\u003c/strong\u003e – support table reader functionality\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/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/cdee1e8bc77e83ebbb089cab0b5a0984cc6305cc\"\u003e\u003ccode\u003ecdee1e8\u003c/code\u003e\u003c/a\u003e fix: disabling link validation doesn't disable link and reference collection ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a5d97abe0bc15b10e4656767de658daab59c759\"\u003e\u003ccode\u003e7a5d97a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/680\"\u003e#680\u003c/a\u003e from zensical/fix/validation-edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/4355dad3ce47a0e647e2187a770a2b9b0b2d502e\"\u003e\u003ccode\u003e4355dad\u003c/code\u003e\u003c/a\u003e fix: harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a418c6bd3c62673e91df01690fd9eccafe262041\"\u003e\u003ccode\u003ea418c6b\u003c/code\u003e\u003c/a\u003e fix: link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/b31dd1472c091891ee6a87cb46e8313cf3dde9be\"\u003e\u003ccode\u003eb31dd14\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/17c67a2f62181c85220275e8f87c5985135bd62f\"\u003e\u003ccode\u003e17c67a2\u003c/code\u003e\u003c/a\u003e fix: remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6eb2f4d942e79e6f48f772fa16dcddc6e6dbb4eb\"\u003e\u003ccode\u003e6eb2f4d\u003c/code\u003e\u003c/a\u003e fix: reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a5a864178ccd0616e5aea56b66f8ce6b031ce50b\"\u003e\u003ccode\u003ea5a8641\u003c/code\u003e\u003c/a\u003e fix: only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.36...v0.0.42\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.36\u0026new-version=0.0.42)](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/pacharanero/bishopswharfyork.com/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacharanero%2Fbishopswharfyork.com/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}],"issue_packages":[{"old_version":"0.0.43","new_version":"0.0.44","update_type":"patch","path":null,"pr_created_at":"2026-06-07T03:21:22.000Z","version_change":"0.0.43 → 0.0.44","issue":{"uuid":"4606024721","node_id":"PR_kwDOSzP2N87jj32O","number":6,"state":"open","title":"Bump zensical from 0.0.43 to 0.0.44","user":"dependabot[bot]","labels":["dependencies","frontend","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-07T03:21:22.000Z","updated_at":"2026-06-07T03:22:04.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.43","new_version":"0.0.44","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.43 to 0.0.44.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes several bugs related to link validation and macros, and ensures that dotfiles are not removed from the site directory during generation.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eeb72115 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003ec40f649 \u003cstrong\u003ecompat\u003c/strong\u003e – brackets in indented code blocks recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e93cc869 \u003cstrong\u003ecompat\u003c/strong\u003e – snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea212c59 \u003cstrong\u003ezensical\u003c/strong\u003e – don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edb1f19c \u003cstrong\u003ecompat\u003c/strong\u003e – provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e9b452cb \u003cstrong\u003ezensical\u003c/strong\u003e – improve error message when missing icon is used (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed7ccbe6 \u003cstrong\u003ezensical\u003c/strong\u003e, \u003cstrong\u003ecompat\u003c/strong\u003e – anchors with escaped chars not matched during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8b7e29e \u003cstrong\u003ecompat\u003c/strong\u003e – empty footnote ref classified as link ref (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/702\"\u003e#702\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/zensical/zensical/commit/c7fe3e78a5bc243d373fe017febf8704b59a6413\"\u003e\u003ccode\u003ec7fe3e7\u003c/code\u003e\u003c/a\u003e chore: release v0.0.44\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/033da3cb024f8f615accce6e7ee886999dc8bada\"\u003e\u003ccode\u003e033da3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/731\"\u003e#731\u003c/a\u003e from zensical/fix/validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/fe04446967d5eb060440498b21afe09cfad37bb7\"\u003e\u003ccode\u003efe04446\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/eb7211503c56e2a97f9e7313f7c7d7b54b2b8794\"\u003e\u003ccode\u003eeb72115\u003c/code\u003e\u003c/a\u003e fix: ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a4866d0fa60bf27064353c3a8d781b961a430b96\"\u003e\u003ccode\u003ea4866d0\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/c40f649f7bb3be56e15b52b2daa4af2558485777\"\u003e\u003ccode\u003ec40f649\u003c/code\u003e\u003c/a\u003e fix: brackets in indented code blocks recognized as unresolved link reference...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/93cc8699789f86f6b0b60033c95a706066818d83\"\u003e\u003ccode\u003e93cc869\u003c/code\u003e\u003c/a\u003e fix: snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a212c5957882f17d544dfc60b01b52126a67a26c\"\u003e\u003ccode\u003ea212c59\u003c/code\u003e\u003c/a\u003e fix: don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/db1f19c4ae3bce8ec21362b79c170f7637c0c8b5\"\u003e\u003ccode\u003edb1f19c\u003c/code\u003e\u003c/a\u003e fix: provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/76222a8b2a8b6868b407403e6157e4a743e3d30a\"\u003e\u003ccode\u003e76222a8\u003c/code\u003e\u003c/a\u003e chore: fix agent doctests, run cargo test in CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.43...v0.0.44\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.43\u0026new-version=0.0.44)](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/SecuredNodeDynamics/Downtify/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SecuredNodeDynamics%2FDowntify/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"0.0.43","new_version":"0.0.44","update_type":"patch","path":null,"pr_created_at":"2026-06-05T21:24:03.000Z","version_change":"0.0.43 → 0.0.44","issue":{"uuid":"4600220266","node_id":"PR_kwDOAKu6j87jRQLV","number":30,"state":"open","title":"Bump zensical from 0.0.43 to 0.0.44","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-05T21:24:03.000Z","updated_at":"2026-06-05T21:25:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.43","new_version":"0.0.44","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.43 to 0.0.44.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes several bugs related to link validation and macros, and ensures that dotfiles are not removed from the site directory during generation.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eeb72115 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003ec40f649 \u003cstrong\u003ecompat\u003c/strong\u003e – brackets in indented code blocks recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e93cc869 \u003cstrong\u003ecompat\u003c/strong\u003e – snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea212c59 \u003cstrong\u003ezensical\u003c/strong\u003e – don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edb1f19c \u003cstrong\u003ecompat\u003c/strong\u003e – provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e9b452cb \u003cstrong\u003ezensical\u003c/strong\u003e – improve error message when missing icon is used (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed7ccbe6 \u003cstrong\u003ezensical\u003c/strong\u003e, \u003cstrong\u003ecompat\u003c/strong\u003e – anchors with escaped chars not matched during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8b7e29e \u003cstrong\u003ecompat\u003c/strong\u003e – empty footnote ref classified as link ref (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/702\"\u003e#702\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/zensical/zensical/commit/c7fe3e78a5bc243d373fe017febf8704b59a6413\"\u003e\u003ccode\u003ec7fe3e7\u003c/code\u003e\u003c/a\u003e chore: release v0.0.44\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/033da3cb024f8f615accce6e7ee886999dc8bada\"\u003e\u003ccode\u003e033da3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/731\"\u003e#731\u003c/a\u003e from zensical/fix/validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/fe04446967d5eb060440498b21afe09cfad37bb7\"\u003e\u003ccode\u003efe04446\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/eb7211503c56e2a97f9e7313f7c7d7b54b2b8794\"\u003e\u003ccode\u003eeb72115\u003c/code\u003e\u003c/a\u003e fix: ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a4866d0fa60bf27064353c3a8d781b961a430b96\"\u003e\u003ccode\u003ea4866d0\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/c40f649f7bb3be56e15b52b2daa4af2558485777\"\u003e\u003ccode\u003ec40f649\u003c/code\u003e\u003c/a\u003e fix: brackets in indented code blocks recognized as unresolved link reference...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/93cc8699789f86f6b0b60033c95a706066818d83\"\u003e\u003ccode\u003e93cc869\u003c/code\u003e\u003c/a\u003e fix: snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a212c5957882f17d544dfc60b01b52126a67a26c\"\u003e\u003ccode\u003ea212c59\u003c/code\u003e\u003c/a\u003e fix: don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/db1f19c4ae3bce8ec21362b79c170f7637c0c8b5\"\u003e\u003ccode\u003edb1f19c\u003c/code\u003e\u003c/a\u003e fix: provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/76222a8b2a8b6868b407403e6157e4a743e3d30a\"\u003e\u003ccode\u003e76222a8\u003c/code\u003e\u003c/a\u003e chore: fix agent doctests, run cargo test in CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.43...v0.0.44\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.43\u0026new-version=0.0.44)](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/eggzec/soerp/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggzec%2Fsoerp/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"}},{"old_version":"\u003c0.0.44,\u003e=0.0.32","new_version":"\u003e=0.0.32,\u003c0.0.45","update_type":null,"path":"the dependencies group","pr_created_at":"2026-06-05T17:03:21.000Z","version_change":"\u003c0.0.44,\u003e=0.0.32 → \u003e=0.0.32,\u003c0.0.45","issue":{"uuid":"4598659619","node_id":"PR_kwDONC8Qws7jMAnR","number":522,"state":"open","title":"⬆️ Update zensical requirement from \u003c0.0.44,\u003e=0.0.32 to \u003e=0.0.32,\u003c0.0.45 in the dependencies group","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":12,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-05T17:03:21.000Z","updated_at":"2026-06-05T17:05:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆️ Update","packages":[{"name":"zensical","old_version":"\u003c0.0.44,\u003e=0.0.32","new_version":"\u003e=0.0.32,\u003c0.0.45","repository_url":"https://github.com/zensical/zensical"}],"path":"the dependencies group","ecosystem":"pip"},"body":"Updates the requirements on [zensical](https://github.com/zensical/zensical) to permit the latest version.\nUpdates `zensical` to 0.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes several bugs related to link validation and macros, and ensures that dotfiles are not removed from the site directory during generation.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eeb72115 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003ec40f649 \u003cstrong\u003ecompat\u003c/strong\u003e – brackets in indented code blocks recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e93cc869 \u003cstrong\u003ecompat\u003c/strong\u003e – snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea212c59 \u003cstrong\u003ezensical\u003c/strong\u003e – don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edb1f19c \u003cstrong\u003ecompat\u003c/strong\u003e – provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e9b452cb \u003cstrong\u003ezensical\u003c/strong\u003e – improve error message when missing icon is used (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed7ccbe6 \u003cstrong\u003ezensical\u003c/strong\u003e, \u003cstrong\u003ecompat\u003c/strong\u003e – anchors with escaped chars not matched during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8b7e29e \u003cstrong\u003ecompat\u003c/strong\u003e – empty footnote ref classified as link ref (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/702\"\u003e#702\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/zensical/zensical/commit/c7fe3e78a5bc243d373fe017febf8704b59a6413\"\u003e\u003ccode\u003ec7fe3e7\u003c/code\u003e\u003c/a\u003e chore: release v0.0.44\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/033da3cb024f8f615accce6e7ee886999dc8bada\"\u003e\u003ccode\u003e033da3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/731\"\u003e#731\u003c/a\u003e from zensical/fix/validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/fe04446967d5eb060440498b21afe09cfad37bb7\"\u003e\u003ccode\u003efe04446\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/eb7211503c56e2a97f9e7313f7c7d7b54b2b8794\"\u003e\u003ccode\u003eeb72115\u003c/code\u003e\u003c/a\u003e fix: ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a4866d0fa60bf27064353c3a8d781b961a430b96\"\u003e\u003ccode\u003ea4866d0\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/c40f649f7bb3be56e15b52b2daa4af2558485777\"\u003e\u003ccode\u003ec40f649\u003c/code\u003e\u003c/a\u003e fix: brackets in indented code blocks recognized as unresolved link reference...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/93cc8699789f86f6b0b60033c95a706066818d83\"\u003e\u003ccode\u003e93cc869\u003c/code\u003e\u003c/a\u003e fix: snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a212c5957882f17d544dfc60b01b52126a67a26c\"\u003e\u003ccode\u003ea212c59\u003c/code\u003e\u003c/a\u003e fix: don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/db1f19c4ae3bce8ec21362b79c170f7637c0c8b5\"\u003e\u003ccode\u003edb1f19c\u003c/code\u003e\u003c/a\u003e fix: provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/76222a8b2a8b6868b407403e6157e4a743e3d30a\"\u003e\u003ccode\u003e76222a8\u003c/code\u003e\u003c/a\u003e chore: fix agent doctests, run cargo test in CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.32...v0.0.44\"\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/7rikazhexde/json2vars-setter/pull/522","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rikazhexde%2Fjson2vars-setter/issues/522","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/522/packages"}},{"old_version":"0.0.43","new_version":"0.0.44","update_type":"patch","path":null,"pr_created_at":"2026-06-05T05:27:55.000Z","version_change":"0.0.43 → 0.0.44","issue":{"uuid":"4594453148","node_id":"PR_kwDOSxqrEc7i-MuI","number":3,"state":"open","title":"Bump zensical from 0.0.43 to 0.0.44","user":"dependabot[bot]","labels":["dependencies","frontend","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-05T05:27:55.000Z","updated_at":"2026-06-05T05:28:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.43","new_version":"0.0.44","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.43 to 0.0.44.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes several bugs related to link validation and macros, and ensures that dotfiles are not removed from the site directory during generation.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eeb72115 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003ec40f649 \u003cstrong\u003ecompat\u003c/strong\u003e – brackets in indented code blocks recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e93cc869 \u003cstrong\u003ecompat\u003c/strong\u003e – snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ea212c59 \u003cstrong\u003ezensical\u003c/strong\u003e – don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edb1f19c \u003cstrong\u003ecompat\u003c/strong\u003e – provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e9b452cb \u003cstrong\u003ezensical\u003c/strong\u003e – improve error message when missing icon is used (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed7ccbe6 \u003cstrong\u003ezensical\u003c/strong\u003e, \u003cstrong\u003ecompat\u003c/strong\u003e – anchors with escaped chars not matched during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8b7e29e \u003cstrong\u003ecompat\u003c/strong\u003e – empty footnote ref classified as link ref (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/702\"\u003e#702\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/zensical/zensical/commit/c7fe3e78a5bc243d373fe017febf8704b59a6413\"\u003e\u003ccode\u003ec7fe3e7\u003c/code\u003e\u003c/a\u003e chore: release v0.0.44\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/033da3cb024f8f615accce6e7ee886999dc8bada\"\u003e\u003ccode\u003e033da3c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/731\"\u003e#731\u003c/a\u003e from zensical/fix/validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/fe04446967d5eb060440498b21afe09cfad37bb7\"\u003e\u003ccode\u003efe04446\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/eb7211503c56e2a97f9e7313f7c7d7b54b2b8794\"\u003e\u003ccode\u003eeb72115\u003c/code\u003e\u003c/a\u003e fix: ignore Markdown comments \u003ccode\u003e[//]: ...\u003c/code\u003e during link validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a4866d0fa60bf27064353c3a8d781b961a430b96\"\u003e\u003ccode\u003ea4866d0\u003c/code\u003e\u003c/a\u003e chore: make ruff happy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/c40f649f7bb3be56e15b52b2daa4af2558485777\"\u003e\u003ccode\u003ec40f649\u003c/code\u003e\u003c/a\u003e fix: brackets in indented code blocks recognized as unresolved link reference...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/93cc8699789f86f6b0b60033c95a706066818d83\"\u003e\u003ccode\u003e93cc869\u003c/code\u003e\u003c/a\u003e fix: snippet markers recognized as unresolved link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a212c5957882f17d544dfc60b01b52126a67a26c\"\u003e\u003ccode\u003ea212c59\u003c/code\u003e\u003c/a\u003e fix: don't remove dotfiles from site dir (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/db1f19c4ae3bce8ec21362b79c170f7637c0c8b5\"\u003e\u003ccode\u003edb1f19c\u003c/code\u003e\u003c/a\u003e fix: provide \u003ccode\u003econf\u003c/code\u003e attribute in macros' \u003ccode\u003eenv\u003c/code\u003e object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/76222a8b2a8b6868b407403e6157e4a743e3d30a\"\u003e\u003ccode\u003e76222a8\u003c/code\u003e\u003c/a\u003e chore: fix agent doctests, run cargo test in CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.43...v0.0.44\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.43\u0026new-version=0.0.44)](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/AmitHaina/Downtify/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmitHaina%2FDowntify/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"0.0.36","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-06-03T22:29:41.000Z","version_change":"0.0.36 → 0.0.43","issue":{"uuid":"4584137023","node_id":"PR_kwDOG1Zs187icNPd","number":12931,"state":"open","title":"Chore(deps): Bump the utilities-patch group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["non-trivial","backend","dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-03T22:29:41.000Z","updated_at":"2026-06-03T22:45:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore(deps): Bump","group_name":"utilities-patch","update_count":4,"packages":[{"name":"llama-index-core","old_version":"0.14.21","new_version":"0.14.22","repository_url":"https://github.com/run-llama/llama_index"},{"name":"psycopg-pool","old_version":"3.3","new_version":"3.3.1","repository_url":"https://github.com/psycopg/psycopg"},{"name":"zensical","old_version":"0.0.36","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"},{"name":"ruff","old_version":"0.15.12","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the utilities-patch group with 4 updates in the / directory: [llama-index-core](https://github.com/run-llama/llama_index), [psycopg-pool](https://github.com/psycopg/psycopg), [zensical](https://github.com/zensical/zensical) and [ruff](https://github.com/astral-sh/ruff).\n\nUpdates `llama-index-core` from 0.14.21 to 0.14.22\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/run-llama/llama_index/releases\"\u003ellama-index-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.22\u003c/h2\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003ch2\u003e[2026-05-14]\u003c/h2\u003e\n\u003ch3\u003ellama-index-agent-agentmesh [0.2.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-agentops [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-aim [0.4.1]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-argilla [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-arize-phoenix [0.7.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-honeyhive [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-langfuse [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-literalai [1.4.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-openinference [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-callbacks-opik [1.3.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\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/run-llama/llama_index/blob/main/CHANGELOG.md\"\u003ellama-index-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ellama-index-core [0.14.22]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(instrumentation): let SparseEmbeddingStartEvent inherit EmbeddingStartEvent (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21119\"\u003e#21119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: remove stale exports from public \u003cstrong\u003eall\u003c/strong\u003e lists (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21133\"\u003e#21133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve cache writes from multiprocessing workers in IngestionPipeline (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21301\"\u003e#21301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat(core): Multimodal synthesis (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: avoid mutating response.raw in LLM event model_dump methods (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21424\"\u003e#21424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(memory): handle DocumentBlock in Memory._estimate_token_count (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21529\"\u003e#21529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: propagate contextvars in sync_to_async for FunctionTool (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21558\"\u003e#21558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-adapter [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-alephalpha [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-alibabacloud-aisearch [0.4.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-anyscale [0.5.1]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-autoembeddings [0.3.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-azure-inference [0.5.0]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-azure-openai [0.5.2]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ellama-index-embeddings-baseten [0.2.1]\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump the pip group across 55 directories with 3 updates (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21435\"\u003e#21435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/pull/21638\"\u003e#21638\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/run-llama/llama_index/commit/77b78b507b975d9caa9e035df76a19ee4f76b0c5\"\u003e\u003ccode\u003e77b78b5\u003c/code\u003e\u003c/a\u003e Release 0.14.22 (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21667\"\u003e#21667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/462d9400dfe28d63fb92886dda4b5d92b4038546\"\u003e\u003ccode\u003e462d940\u003c/code\u003e\u003c/a\u003e vbump google genai (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21649\"\u003e#21649\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/87ef084425b3d159e16ebef691f6c3410898b313\"\u003e\u003ccode\u003e87ef084\u003c/code\u003e\u003c/a\u003e Google LLMs: Error earlier if file is too large with vertexai client (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21642\"\u003e#21642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/fd50076917af265aaed82d77de14ff31871506e9\"\u003e\u003ccode\u003efd50076\u003c/code\u003e\u003c/a\u003e mass uv lock --upgrade (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21638\"\u003e#21638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/5ef6504c70a5d052b625d1fc636b69b9af93c71f\"\u003e\u003ccode\u003e5ef6504\u003c/code\u003e\u003c/a\u003e fix(google-genai): pass DocumentBlock.title as display_name to File API (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21641\"\u003e#21641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/0f70eb5ccd723f7a8581977dd4b32056c5b8f1d2\"\u003e\u003ccode\u003e0f70eb5\u003c/code\u003e\u003c/a\u003e fix: propagate contextvars in sync_to_async for FunctionTool (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21558\"\u003e#21558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/b4a235dec21e5a08bc0f08f617318f417da4e6a8\"\u003e\u003ccode\u003eb4a235d\u003c/code\u003e\u003c/a\u003e feat(bedrock-converse): add async_client param to reuse a shared aioboto3 cli...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/10a2d84a8a97a9d07816bed16a0eeb1df4ee0a97\"\u003e\u003ccode\u003e10a2d84\u003c/code\u003e\u003c/a\u003e fix(azure-openai): use deployment name in AzureOpenAIResponses structured pre...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/90839b36be724602ea32801c0a3175857d09c715\"\u003e\u003ccode\u003e90839b3\u003c/code\u003e\u003c/a\u003e fix(memory): handle DocumentBlock in Memory._estimate_token_count (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21529\"\u003e#21529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/run-llama/llama_index/commit/79cddb5725a763d6b77d8ad381ee2c88b61cce84\"\u003e\u003ccode\u003e79cddb5\u003c/code\u003e\u003c/a\u003e Fix OTel context detach noise (\u003ca href=\"https://redirect.github.com/run-llama/llama_index/issues/21587\"\u003e#21587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/run-llama/llama_index/compare/v0.14.21...v0.14.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg-pool` from 3.3 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg-pool's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.5 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDiscard prepared statements upon :sql:\u003ccode\u003eALTER *\u003c/code\u003e or \u003ccode\u003eDISCARD *\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1307](https://github.com/psycopg/psycopg/issues/1307)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.4\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix possible spurious connection timeout in systems with very long uptimes\nin C extension (:ticket:\u003ccode\u003e[#1280](https://github.com/psycopg/psycopg/issues/1280)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix client-side adaptation of enums whose name require quotes\n(:ticket:\u003ccode\u003e[#1298](https://github.com/psycopg/psycopg/issues/1298)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eConsistently populate \u003ccode\u003e~Cursor.statusmessage\u003c/code\u003e after \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1302](https://github.com/psycopg/psycopg/issues/1302)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\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/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a\"\u003e\u003ccode\u003e9bdd78c\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa\"\u003e\u003ccode\u003e4d27426\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/server-cursor-iter'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449\"\u003e\u003ccode\u003eb9b82e8\u003c/code\u003e\u003c/a\u003e fix: fix iteration on server-side cursor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf\"\u003e\u003ccode\u003e2a75357\u003c/code\u003e\u003c/a\u003e fix: add test to verify iteration in server-side cursor broken\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/25ebaa3946bc0912e645dbf4d490a29865a2fc3f\"\u003e\u003ccode\u003e25ebaa3\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.1.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/754282246e04c7ea32643de763fabd7fca7169d4\"\u003e\u003ccode\u003e7542822\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/380ccceb57ef44452a4c3e851e5e6dee09eb9eaf\"\u003e\u003ccode\u003e380ccce\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.0...3.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.36 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.36...v0.0.43\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.12 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.12...0.15.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/paperless-ngx/paperless-ngx/pull/12931","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/paperless-ngx%2Fpaperless-ngx/issues/12931","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12931/packages"}},{"old_version":"0.0.42","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-30T19:59:46.000Z","version_change":"0.0.42 → 0.0.43","issue":{"uuid":"4555529108","node_id":"PR_kwDOF8_QEs7g_sBJ","number":1989,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","internal","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-30T19:59:46.000Z","updated_at":"2026-05-31T06:06:01.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":9,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"ruff","old_version":"0.15.13","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"ty","old_version":"0.0.35","new_version":"0.0.39","repository_url":"https://github.com/astral-sh/ty"},{"name":"prek","old_version":"0.3.13","new_version":"0.4.1","repository_url":"https://github.com/j178/prek"},{"name":"zizmor","old_version":"1.24.1","new_version":"1.25.2","repository_url":"https://github.com/zizmorcore/zizmor"},{"name":"pygithub","old_version":"2.9.0","new_version":"2.9.1","repository_url":"https://github.com/pygithub/pygithub"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.42` | `0.0.43` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.13` | `0.15.14` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.35` | `0.0.39` |\n| [prek](https://github.com/j178/prek) | `0.3.13` | `0.4.1` |\n| [zizmor](https://github.com/zizmorcore/zizmor) | `1.24.1` | `1.25.2` |\n| [pygithub](https://github.com/pygithub/pygithub) | `2.9.0` | `2.9.1` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.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.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\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\u003eVersion 26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\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/87928e6d6761a4a6d22250e1fee5601b3998086e\"\u003e\u003ccode\u003e87928e6\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5140\"\u003e#5140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c970a49702488739add6c728122deb3a99900803\"\u003e\u003ccode\u003ec970a49\u003c/code\u003e\u003c/a\u003e Preserve comments before fmt: skip lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5809338fd5f92d50e80c2ad312292ae6d428a480\"\u003e\u003ccode\u003e5809338\u003c/code\u003e\u003c/a\u003e Preserve inline comments inside annotation subscripts (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/61361b71995f6ea44ce01915bacd3ecc50642507\"\u003e\u003ccode\u003e61361b7\u003c/code\u003e\u003c/a\u003e docs: add Neovim integration guide and fix http link (\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ebe6018e3254629788376e619207719fbe34a849\"\u003e\u003ccode\u003eebe6018\u003c/code\u003e\u003c/a\u003e CI Hotfixes (\u003ca href=\"https://redirect.github.com/psf/black/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9cbd95f80e97c1ab4d690d1d41b81579a13bf75c\"\u003e\u003ccode\u003e9cbd95f\u003c/code\u003e\u003c/a\u003e Fix publish binaries again on Windows (\u003ca href=\"https://redirect.github.com/psf/black/issues/5134\"\u003e#5134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/3dc8e6c41911bdaedb4bac8d633979c34a112b78\"\u003e\u003ccode\u003e3dc8e6c\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6d0fff0d5a965b9d0d3dbd7c5738d835fd574130\"\u003e\u003ccode\u003e6d0fff0\u003c/code\u003e\u003c/a\u003e Fix publish binaries workflow (\u003ca href=\"https://redirect.github.com/psf/black/issues/5133\"\u003e#5133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.42 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 to 0.136.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🍱 Update sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.13 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.13...0.15.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.35 to 0.0.39\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.39\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-22.\u003c/p\u003e\n\u003cp\u003eThis release removes the Python 3.9 branches from our vendored standard library stubs. ty now only has \u0026quot;full\u0026quot; support for\nPython 3.10 and later, but will still report version-specific syntax errors and other diagnostics when \u003ccode\u003e--python-version 3.9\u003c/code\u003e\nis provided via the CLI.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid panicking on \u003ccode\u003e__new__\u003c/code\u003e assignments to classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve declaration order when synthesizing class fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25249\"\u003e#25249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003edict\u003c/code\u003e-compatible fallbacks in TypedDict unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25242\"\u003e#25242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Quick Fix to remove redundant cast (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25211\"\u003e#25211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClassify property declaration semantic tokens (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25322\"\u003e#25322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEscape HTML syntax in docstring rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25247\"\u003e#25247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer symbols from standard library over those of the same name from third party libraries for import completions. (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25108\"\u003e#25108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type aliases in document symbols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25302\"\u003e#25302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostics\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd error context for extra callable parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25269\"\u003e#25269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid exponential blow-up in fall-through narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25278\"\u003e#25278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up include filtering for projects with many literal include patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25266\"\u003e#25266\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a diagnostic for subclassing with \u003ccode\u003eorder=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21704\"\u003e#21704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFull-scope bidirectional inference for unconstrained container literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25279\"\u003e#25279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer \u003ccode\u003edict(TypedDict)\u003c/code\u003e as \u003ccode\u003edict[str, object]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24852\"\u003e#24852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject incompatible explicit variance in generic base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25327\"\u003e#25327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport multi-inference through type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25245\"\u003e#25245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25271\"\u003e#25271\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25172\"\u003e#25172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sqqueak\"\u003e\u003ccode\u003e@​sqqueak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.39\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-22.\u003c/p\u003e\n\u003cp\u003eThis release removes the Python 3.9 branches from our vendored standard library stubs. ty now only has \u0026quot;full\u0026quot; support for\nPython 3.10 and later, but will still report version-specific syntax errors and other diagnostics when \u003ccode\u003e--python-version 3.9\u003c/code\u003e\nis provided via the CLI.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid panicking on \u003ccode\u003e__new__\u003c/code\u003e assignments to classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve declaration order when synthesizing class fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25249\"\u003e#25249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003edict\u003c/code\u003e-compatible fallbacks in TypedDict unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25242\"\u003e#25242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Quick Fix to remove redundant cast (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25211\"\u003e#25211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClassify property declaration semantic tokens (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25322\"\u003e#25322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEscape HTML syntax in docstring rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25247\"\u003e#25247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer symbols from standard library over those of the same name from third party libraries for import completions. (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25108\"\u003e#25108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type aliases in document symbols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25302\"\u003e#25302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostics\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd error context for extra callable parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25269\"\u003e#25269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid exponential blow-up in fall-through narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25278\"\u003e#25278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up include filtering for projects with many literal include patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25266\"\u003e#25266\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a diagnostic for subclassing with \u003ccode\u003eorder=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21704\"\u003e#21704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFull-scope bidirectional inference for unconstrained container literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25279\"\u003e#25279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer \u003ccode\u003edict(TypedDict)\u003c/code\u003e as \u003ccode\u003edict[str, object]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24852\"\u003e#24852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject incompatible explicit variance in generic base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25327\"\u003e#25327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport multi-inference through type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25245\"\u003e#25245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25271\"\u003e#25271\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25172\"\u003e#25172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sqqueak\"\u003e\u003ccode\u003e@​sqqueak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/0205125174c135d6fc4014244dee374678b61c72\"\u003e\u003ccode\u003e0205125\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.39 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3516\"\u003e#3516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/ae8058d40e641b545bbad046c487e964206a2286\"\u003e\u003ccode\u003eae8058d\u003c/code\u003e\u003c/a\u003e Update maturin to v1.13.3 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3494\"\u003e#3494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/33b60f8ad0f2da648b867831548a4b8c7985647d\"\u003e\u003ccode\u003e33b60f8\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/1d3efc1d68e36a8f982fa73b1f8c2a5ebc50fcde\"\u003e\u003ccode\u003e1d3efc1\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.38 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3492\"\u003e#3492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f5100ccde50ff577fa311add5232ae6074ed68f9\"\u003e\u003ccode\u003ef5100cc\u003c/code\u003e\u003c/a\u003e scripts/update_schemastore: use -C to allow re-running schema update on exist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f18aed6430c781ff3bc4fe41d9b5c2a7161657c4\"\u003e\u003ccode\u003ef18aed6\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.37 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/a63e55929645f8eeaa6f28117afda8d2ed39d1a4\"\u003e\u003ccode\u003ea63e559\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.36 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3463\"\u003e#3463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/94370d5b43c48d01720a9e65d8d8d5286b6697b1\"\u003e\u003ccode\u003e94370d5\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3449\"\u003e#3449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.35...0.0.39\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.3.13 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-20.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-push range after rebase (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2089\"\u003e#2089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer extensions over loose filename tags (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2092\"\u003e#2092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce run filtering allocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.4.1\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.1/prek-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.4.1/prek-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload prek 0.4.1\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-apple-darwin.tar.gz\"\u003eprek-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-apple-darwin.tar.gz\"\u003eprek-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-pc-windows-msvc.zip\"\u003eprek-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-i686-pc-windows-msvc.zip\"\u003eprek-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-pc-windows-msvc.zip\"\u003eprek-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-unknown-linux-gnu.tar.gz\"\u003eprek-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-20.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-push range after rebase (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2089\"\u003e#2089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer extensions over loose filename tags (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2092\"\u003e#2092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce run filtering allocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cp\u003eThese are narrow cleanup breaks in behavior that was either temporary or never worked correctly. Most users should not need to change anything.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated hook scripts no longer preserve \u003ccode\u003e-q\u003c/code\u003e, \u003ccode\u003e-v\u003c/code\u003e, or \u003ccode\u003e--no-progress\u003c/code\u003e passed to \u003ccode\u003eprek install\u003c/code\u003e. This only affects users who expected those global flags to be baked into installed hooks. (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1966\"\u003e#1966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage_version\u003c/code\u003e no longer accepts direct executable paths. Use \u003ccode\u003elanguage_version: system\u003c/code\u003e for a system toolchain, or use a supported version request instead. This path form did not work reliably before, so existing working configs should be unaffected. (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1831\"\u003e#1831\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpand tilde in \u003ccode\u003e--config\u003c/code\u003e, \u003ccode\u003e--cd\u003c/code\u003e, \u003ccode\u003e--log-file\u003c/code\u003e and \u003ccode\u003e--git-dir\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2063\"\u003e#2063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent auto-update cooldown downgrades (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse managed npm cache for node hooks (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2075\"\u003e#2075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix npm config env overrides for node hooks (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2074\"\u003e#2074\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd cookbook page for enabling Git 2.54 config-based global hooks (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2061\"\u003e#2061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/871b9edb65b7978c2c53d94f60a433cb9e120132\"\u003e\u003ccode\u003e871b9ed\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.1 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2107\"\u003e#2107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/3c26faf5be0c9ad0e61309650479e063b8cb0037\"\u003e\u003ccode\u003e3c26faf\u003c/code\u003e\u003c/a\u003e Optimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/7780f1149565ff430b86be1f688dce7f680c6760\"\u003e\u003ccode\u003e7780f11\u003c/code\u003e\u003c/a\u003e Clean up run hook installation flow (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2105\"\u003e#2105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/c5dc885bcbc3d293d6c20ffb43b7be970b55b60d\"\u003e\u003ccode\u003ec5dc885\u003c/code\u003e\u003c/a\u003e Refine hook install filtering (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2104\"\u003e#2104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/9db879e92760cfa3c6da748672237a1b1d81ce12\"\u003e\u003ccode\u003e9db879e\u003c/code\u003e\u003c/a\u003e Skip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/2a0da57faddae03fd6d8985776ab2ec33d0b99e5\"\u003e\u003ccode\u003e2a0da57\u003c/code\u003e\u003c/a\u003e Simplify workspace file handling (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/33ca06054451602a7988b64ac6cf12b1cf5fddad\"\u003e\u003ccode\u003e33ca060\u003c/code\u003e\u003c/a\u003e Lock file maintenance (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2072\"\u003e#2072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/03f11c00b169b9beea59253fc5a0c7efe6dc9fa6\"\u003e\u003ccode\u003e03f11c0\u003c/code\u003e\u003c/a\u003e Update GitHub Actions (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2101\"\u003e#2101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/354f431c3c0420d5be83e6c59f3b644c907793e6\"\u003e\u003ccode\u003e354f431\u003c/code\u003e\u003c/a\u003e Update dependency uv to v0.11.13 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2094\"\u003e#2094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/4a41828a33efaccccaba76e96942314ac3309e75\"\u003e\u003ccode\u003e4a41828\u003c/code\u003e\u003c/a\u003e Update Rust crate quick-xml to v0.39.4 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2098\"\u003e#2098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.3.13...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zizmor` from 1.24.1 to 1.25.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zizmorcore/zizmor/releases\"\u003ezizmor's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.25.2\u003c/h2\u003e\n\u003ch2\u003eBug Fixes 🐛\u003ca href=\"https://docs.zizmor.sh/release-notes/#bug-fixes\"\u003e🔗\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where the \u003ca href=\"https://docs.zizmor.sh/audits/#unpinned-tools\"\u003eunpinned-tools\u003c/a\u003e audit would incorrectly flag the \u003ca href=\"https://github.com/aquasecurity/trivy-action\"\u003eaquasecurity/trivy-action\u003c/a\u003e action as installing an unpinned tool version, rather than \u003ca href=\"https://github.com/aquasecurity/setup-trivy\"\u003eaquasecurity/setup-trivy\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2018\"\u003e#2018\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes 🐛\u003ca href=\"https://docs.zizmor.sh/release-notes/#bug-fixes\"\u003e🔗\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug where the \u003ca href=\"https://docs.zizmor.sh/audits/#cache-poisoning\"\u003ecache-poisoning\u003c/a\u003e audit would fail to consider release events as exempt from cache usage findings when filtered by a tag condition (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2004\"\u003e#2004\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a typo when suggesting --fix flags for findings (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2010\"\u003e#2010\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/0xdea\"\u003e\u003ccode\u003e@​0xdea\u003c/code\u003e\u003c/a\u003e for implementing this fix!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a typo in \u003ca href=\"https://docs.zizmor.sh/audits/#unpinned-tools\"\u003eunpinned-tools\u003c/a\u003e annotations (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2008\"\u003e#2008\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/martincostello\"\u003e\u003ccode\u003e@​martincostello\u003c/code\u003e\u003c/a\u003e for implementing this fix!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a bug where the \u003ca href=\"https://docs.zizmor.sh/audits/#github-app\"\u003egithub-app\u003c/a\u003e audit would incorrectly flag some safe uses of \u003ca href=\"https://github.com/actions/create-github-app-token\"\u003eactions/create-github-app-token\u003c/a\u003e as unsafe (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/2011\"\u003e#2011\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eNew Features 🌈\u003ca href=\"https://docs.zizmor.sh/release-notes/#new-features\"\u003e🔗\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ezizmor's finding severities can now be remapped on a per-audit basis. See \u003ca href=\"https://docs.zizmor.sh/configuration/#rules-id-remap\"\u003ethe configuration\u003c/a\u003e for details (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/Proximyst\"\u003e\u003ccode\u003e@​Proximyst\u003c/code\u003e\u003c/a\u003e for proposing and implementing this improvement!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew audit: \u003ca href=\"https://docs.zizmor.sh/audits/#github-app\"\u003egithub-app\u003c/a\u003e detects dangerous usages of GitHub App installation tokens (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1926\"\u003e#1926\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew audit: [unpinned-tools] detects actions that install tools without pinning to a specific version (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1820\"\u003e#1820\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ezizmor now accepts the --no-ignores flag to disable all ignore comments and configurations when reporting findings (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1935\"\u003e#1935\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ezizmor's LSP now honors the --persona flag on the CLI (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1943\"\u003e#1943\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ezizmor is now aware of Docker-based action definitions, in addition to the pre-existing support for \u0026quot;composite\u0026quot; actions (\u003ca href=\"https://redirect.github.com/zizmorcore/zizmor/issues/1965\"\u003e#1965\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003ca href=\"https://docs.zizmor.sh/release-notes/#enhancements\"\u003e🔗\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend gh issue edit --add-label / gh pr edit --add-label as a replacement for \u003ca href=\"https://github.com/actions-ecosystem/action-add-labels\"\u003eactions-ecosystem/action-add-labels\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend gh issue edit --remove-label / gh pr edit --remove-label as a replacement for \u003ca href=\"https://github.com/actions-ecosystem/action-remove-labels\"\u003eactions-ecosystem/action-remove-labels\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend jq as a replacement for \u003ca href=\"https://github.com/sergeysova/jq-action\"\u003esergeysova/jq-action\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend git add, git commit, and git push as a replacement for \u003ca href=\"https://github.com/stefanzweifel/git-auto-commit-action\"\u003estefanzweifel/git-auto-commit-action\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRecommend git add, git commit, and git push as a replacement for \u003ca href=\"https://github.com/EndBug/add-and-commit\"\u003eEndBug/add-and-commit\u003c/a\u003e in \u003ca href=\"https://docs.zizmor.sh/audits/#superfluous-actions\"\u003esuperfluous-actions\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tibdex/github-app-token\"\u003etibdex/github-app-token\u003c/a\u003e is now recognized as an archived action by \u003ca href=...\n\n_Description has been truncated_","html_url":"https://github.com/fastapi/sqlmodel/pull/1989","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastapi%2Fsqlmodel/issues/1989","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1989/packages"}},{"old_version":"0.0.38","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-26T04:29:37.000Z","version_change":"0.0.38 → 0.0.43","issue":{"uuid":"4521367121","node_id":"PR_kwDOH77cZc7fQ5pW","number":71,"state":"open","title":"Bump zensical from 0.0.38 to 0.0.43","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T04:29:37.000Z","updated_at":"2026-05-26T04:29:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.38","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.38 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.38...v0.0.43\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.38\u0026new-version=0.0.43)](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/Software-Hardware-Integration-Lab/Documentation/pull/71","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Software-Hardware-Integration-Lab%2FDocumentation/issues/71","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/71/packages"}},{"old_version":"0.0.42","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-25T23:42:50.000Z","version_change":"0.0.42 → 0.0.43","issue":{"uuid":"4520151224","node_id":"PR_kwDOL0EOiM7fM7iV","number":91,"state":"open","title":"Bump zensical from 0.0.42 to 0.0.43","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-25T23:42:50.000Z","updated_at":"2026-05-25T23:44:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.42 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.42\u0026new-version=0.0.43)](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/licyk/SDNote/pull/91","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/licyk%2FSDNote/issues/91","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/91/packages"}},{"old_version":"0.0.39","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-25T11:58:41.000Z","version_change":"0.0.39 → 0.0.43","issue":{"uuid":"4516725637","node_id":"PR_kwDOCELT_M7fB4sy","number":3292,"state":"closed","title":"chore(deps): bump the python-packages group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-30T23:55:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T11:58:41.000Z","updated_at":"2026-05-30T23:55:21.000Z","time_to_close":474998,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-packages","update_count":6,"packages":[{"name":"python-multipart","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.16.1","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.15.12","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"zensical","old_version":"0.0.39","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.27` | `0.0.29` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `2.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.15.13` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.39` | `0.0.43` |\n\n\nUpdates `python-multipart` from 0.0.27 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e by \u003ca href=\"https://github.com/manunio\"\u003e\u003ccode\u003e@​manunio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003eKludex/python-multipart#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.28\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003eKludex/python-multipart#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003eKludex/python-multipart#282\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.29 (2026-05-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003e#270\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.28 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003e#281\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003e#282\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/e3d6853978b91b77e9739d47389124d633894c39\"\u003e\u003ccode\u003ee3d6853\u003c/code\u003e\u003c/a\u003e Version 0.0.29 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a60dcdcb34d55b396ced6f5bdb1d1e6df84832ae\"\u003e\u003ccode\u003ea60dcdc\u003c/code\u003e\u003c/a\u003e Handle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/75c33b24d91f1e3c65b597832984d6c46d1a38df\"\u003e\u003ccode\u003e75c33b2\u003c/code\u003e\u003c/a\u003e Add 7-day cooldown for dependency resolution via uv exclude-newer (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a078b8ef00474c3f3a6cf750cd092cf880354a11\"\u003e\u003ccode\u003ea078b8e\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7d8d28b210ac6cb055399562b0dc0e5cf9aef14a\"\u003e\u003ccode\u003e7d8d28b\u003c/code\u003e\u003c/a\u003e Version 0.0.28 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b0dd125457d0f98de23bf2f894aedb1a54639d4e\"\u003e\u003ccode\u003eb0dd125\u003c/code\u003e\u003c/a\u003e Cap multipart boundary length at 256 bytes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d1b57392cf7d0c19235ba454eb5686fd27dc2384\"\u003e\u003ccode\u003ed1b5739\u003c/code\u003e\u003c/a\u003e Speed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/09cb8c3da7638d45ecdf7c154832303214bba829\"\u003e\u003ccode\u003e09cb8c3\u003c/code\u003e\u003c/a\u003e Make the long_boundary benchmark dominated by the patched code path (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a6467c93c14aa4b09ef65450ead8011c45e5c7a0\"\u003e\u003ccode\u003ea6467c9\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Switch CodSpeed benchmarks to walltime mode\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a9690035a956fbdcca06f98461244cf790375a7\"\u003e\u003ccode\u003e9a96900\u003c/code\u003e\u003c/a\u003e Switch CodSpeed benchmarks to walltime mode (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.5 to 7.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.14.0 — 2026-05-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: now when running one of the reporting commands, if there are\nparallel data files that need combining, they will be implicitly combined\nbefore creating the report. There is no option to avoid the combination; let\nus know if you have a use case that requires it.  Thanks, \u003ccode\u003eTim Hatch \u0026lt;pull 2162_\u0026gt;\u003c/code\u003e\u003cem\u003e. Closes \u003ccode\u003eissue 1781\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the output from \u003ccode\u003ecombine\u003c/code\u003e was too verbose, listing each file\nconsidered. Now it shows a single line with the counts of files combined,\nfiles skipped, and files with errors. The \u003ccode\u003e-q\u003c/code\u003e flag suppresses this line.\nThe old detailed lines are available with the new \u003ccode\u003e--debug=combine\u003c/code\u003e option.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: running a Python file through a symlink now sets the sys.path correctly,\nmatching regular Python behavior. Fixes \u003ccode\u003eissue 2157\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eCollector.flush_data\u003c/code\u003e could fail with \u0026quot;RuntimeError: Set changed\nsize during iteration\u0026quot; when a tracer in another thread added a line to the\nper-file set that \u003ccode\u003eadd_lines\u003c/code\u003e (or \u003ccode\u003eadd_arcs\u003c/code\u003e) was iterating. The values\npassed to \u003ccode\u003eCoverageData\u003c/code\u003e are now snapshotted via \u003ccode\u003edict.copy()\u003c/code\u003e and\n\u003ccode\u003eset.copy()\u003c/code\u003e, which are atomic under the GIL. Thanks, \u003ccode\u003eAlex Vandiver \u0026lt;pull 2165_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the soft keyword \u003ccode\u003elazy\u003c/code\u003e is now bolded in HTML reports.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe are no longer testing eventlet support. Eventlet started issuing stern\ndeprecation warnings that break our tests. Our support code is still there.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1781: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1781\"\u003ecoveragepy/coveragepy#1781\u003c/a\u003e\n.. _issue 2157: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2157\"\u003ecoveragepy/coveragepy#2157\u003c/a\u003e\n.. _pull 2162: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2162\"\u003ecoveragepy/coveragepy#2162\u003c/a\u003e\n.. _pull 2165: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2165\"\u003ecoveragepy/coveragepy#2165\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-5:\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/coveragepy/coveragepy/commit/646351b60429f1b5760af6c1b97b28483244a955\"\u003e\u003ccode\u003e646351b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/39cd015505c8b04369c5b06e34fc22449a697370\"\u003e\u003ccode\u003e39cd015\u003c/code\u003e\u003c/a\u003e docs: prep for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/649e8aa34af7d80c386ae82e8a3a6c9a3acb0dab\"\u003e\u003ccode\u003e649e8aa\u003c/code\u003e\u003c/a\u003e docs: thanks Alex Vandiver for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8cd392e3b5c4bc15d534aaec0c21714f9f518469\"\u003e\u003ccode\u003e8cd392e\u003c/code\u003e\u003c/a\u003e fix: snapshot data in Collector.flush_data to avoid threading race (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c48e0edc2ebe44621b0053176e90f77b0c79bec1\"\u003e\u003ccode\u003ec48e0ed\u003c/code\u003e\u003c/a\u003e fix: less output for combining\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c2a3a284078556c911e0d9b6c6af1b7082a363ea\"\u003e\u003ccode\u003ec2a3a28\u003c/code\u003e\u003c/a\u003e docs: explain the change from \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1cd47aa6ac1da4e150da44055295d4e4f3a014e8\"\u003e\u003ccode\u003e1cd47aa\u003c/code\u003e\u003c/a\u003e fix: implicit combine-during-report now removes the combined data files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2d99fd7696e0bccec8037479a4e45c1ecccb8058\"\u003e\u003ccode\u003e2d99fd7\u003c/code\u003e\u003c/a\u003e feat: automatically combine coverage in report, thanks Tim Hatch (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9fbdcdfee1c122fac43f1bf9a5e2d1f4d835f21c\"\u003e\u003ccode\u003e9fbdcdf\u003c/code\u003e\u003c/a\u003e fix: lazy soft keywords are bolded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/5de7d0267b9466d59995aaae1a7e707c8c6f66e7\"\u003e\u003ccode\u003e5de7d02\u003c/code\u003e\u003c/a\u003e build: oops, misplaced quote\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.5...7.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.1 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 2.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 2.1.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003elibrt.vecs: Fast Growable Array Type for Mypyc\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.vecs\u003c/code\u003e module provides an efficient growable array type \u003ccode\u003evec\u003c/code\u003e that is\noptimized for mypyc use. It provides fast, packed arrays with integer and floating point\nvalue types, which can be \u003cstrong\u003eseveral times faster\u003c/strong\u003e than \u003ccode\u003elist\u003c/code\u003e, and tens of times faster\nthan \u003ccode\u003earray.array\u003c/code\u003e in code compiled using mypyc. It also supports nested \u003ccode\u003evec\u003c/code\u003e objects and\nnon-value-type items, such as \u003ccode\u003evec[vec[str]]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_vecs.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo.\u003c/p\u003e\n\u003ch3\u003elibrt.random: Fast Pseudo-Random Number Generation\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.random\u003c/code\u003e module provides fast pseudo-random number generation that is\noptimized for code compiled using mypyc. It can be 3x to 10x faster than the stdlib\n\u003ccode\u003erandom\u003c/code\u003e module in compiled code.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_random.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21433\"\u003e21433\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMypyc Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake compilation order with multiple files consistent (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21419\"\u003e21419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on accessing \u003ccode\u003eStopAsyncIteration\u003c/code\u003e (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21406\"\u003e21406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incremental compilation with \u003ccode\u003eseparate\u003c/code\u003e flag (Vaggelis Danias, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21299\"\u003e21299\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes to Crashes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on partial type with \u003ccode\u003e--allow-redefinition\u003c/code\u003e and \u003ccode\u003eglobal\u003c/code\u003e declaration (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21428\"\u003e21428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix broken awaitable generator patching (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21435\"\u003e21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to Messages\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c1c336d7e34eb313080c79b156518c58d27c7234\"\u003e\u003ccode\u003ec1c336d\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/74df14b7cbf08140236aa45bbb7f42219b0b1df7\"\u003e\u003ccode\u003e74df14b\u003c/code\u003e\u003c/a\u003e Add changelog for mypy 2.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/022d9bc96f86c40f338a5cf150f1806cc8f300ff\"\u003e\u003ccode\u003e022d9bc\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;TypeForm: Enable by default (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21262\"\u003e#21262\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8826288214f1cb31496e610667481221e025359c\"\u003e\u003ccode\u003e8826288\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt.random (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21463\"\u003e#21463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3f4067b699dbe52d08e42ef3b3ebfdebdc06bd96\"\u003e\u003ccode\u003e3f4067b\u003c/code\u003e\u003c/a\u003e Bump librt version to 0.11.0 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21458\"\u003e#21458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b1eb58a250c5f1eb4ef5fb1f312ff528c5a1d4e\"\u003e\u003ccode\u003e2b1eb58\u003c/code\u003e\u003c/a\u003e [mypyc] Enable incremental self-compilation (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8152f4af3f6c03beaf2660026240f0fdce7feecc\"\u003e\u003ccode\u003e8152f4a\u003c/code\u003e\u003c/a\u003e Respect file config comments for stale modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21444\"\u003e#21444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/116d60bdd3fdfe8d97c6afe99370910db56f1b92\"\u003e\u003ccode\u003e116d60b\u003c/code\u003e\u003c/a\u003e Fix nondeterminism from nonassociativity of overload joins (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21455\"\u003e#21455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6c4af8e42110cea3f84bc02add2ca7b89c268210\"\u003e\u003ccode\u003e6c4af8e\u003c/code\u003e\u003c/a\u003e Fix function call message change for small number of args (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21432\"\u003e#21432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4b8fdcaf24032592510e8f15421fb32d82a71800\"\u003e\u003ccode\u003e4b8fdca\u003c/code\u003e\u003c/a\u003e [mypyc] Add librt.random module (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21433\"\u003e#21433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.12 to 0.15.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2afb467ce397e4a89c13a0a814c62cfecb0e9e49\"\u003e\u003ccode\u003e2afb467\u003c/code\u003e\u003c/a\u003e Bump 0.15.13 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25157\"\u003e#25157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b\"\u003e\u003ccode\u003e3008796\u003c/code\u003e\u003c/a\u003e [ty] classify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8\"\u003e\u003ccode\u003e79470e3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0\"\u003e\u003ccode\u003e2522549\u003c/code\u003e\u003c/a\u003e Remove shellcheck from prek (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25154\"\u003e#25154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06\"\u003e\u003ccode\u003e7db7170\u003c/code\u003e\u003c/a\u003e [ty] Support TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25\"\u003e#25\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0\"\u003e\u003ccode\u003ebb3dd53\u003c/code\u003e\u003c/a\u003e [ty] Run full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a\"\u003e\u003ccode\u003e828cdb7\u003c/code\u003e\u003c/a\u003e [ty] Isolate file-watching test environment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25151\"\u003e#25151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d\"\u003e\u003ccode\u003e89e1d86\u003c/code\u003e\u003c/a\u003e [ty] Preserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da\"\u003e\u003ccode\u003e86f3064\u003c/code\u003e\u003c/a\u003e [ty] Avoid accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a\"\u003e\u003ccode\u003eed819f9\u003c/code\u003e\u003c/a\u003e [ty] Treat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.12...0.15.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.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.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\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\u003eVersion 26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\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/87928e6d6761a4a6d22250e1fee5601b3998086e\"\u003e\u003ccode\u003e87928e6\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5140\"\u003e#5140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c970a49702488739add6c728122deb3a99900803\"\u003e\u003ccode\u003ec970a49\u003c/code\u003e\u003c/a\u003e Preserve comments before fmt: skip lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5809338fd5f92d50e80c2ad312292ae6d428a480\"\u003e\u003ccode\u003e5809338\u003c/code\u003e\u003c/a\u003e Preserve inline comments inside annotation subscripts (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/61361b71995f6ea44ce01915bacd3ecc50642507\"\u003e\u003ccode\u003e61361b7\u003c/code\u003e\u003c/a\u003e docs: add Neovim integration guide and fix http link (\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ebe6018e3254629788376e619207719fbe34a849\"\u003e\u003ccode\u003eebe6018\u003c/code\u003e\u003c/a\u003e CI Hotfixes (\u003ca href=\"https://redirect.github.com/psf/black/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9cbd95f80e97c1ab4d690d1d41b81579a13bf75c\"\u003e\u003ccode\u003e9cbd95f\u003c/code\u003e\u003c/a\u003e Fix publish binaries again on Windows (\u003ca href=\"https://redirect.github.com/psf/black/issues/5134\"\u003e#5134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/3dc8e6c41911bdaedb4bac8d633979c34a112b78\"\u003e\u003ccode\u003e3dc8e6c\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6d0fff0d5a965b9d0d3dbd7c5738d835fd574130\"\u003e\u003ccode\u003e6d0fff0\u003c/code\u003e\u003c/a\u003e Fix publish binaries workflow (\u003ca href=\"https://redirect.github.com/psf/black/issues/5133\"\u003e#5133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.39 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.39...v0.0.43\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/Kludex/starlette/pull/3292","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kludex%2Fstarlette/issues/3292","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3292/packages"}},{"old_version":"0.0.42","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-24T19:45:30.000Z","version_change":"0.0.42 → 0.0.43","issue":{"uuid":"4512719141","node_id":"PR_kwDORz44is7e1I3V","number":20,"state":"open","title":"chore(deps): bump the uv-minor-patch group with 7 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-24T19:45:30.000Z","updated_at":"2026-05-28T04:00:15.044Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-minor-patch","update_count":7,"packages":[{"name":"litestar","old_version":"2.21.1","new_version":"2.22.0","repository_url":"https://github.com/litestar-org/litestar"},{"name":"advanced-alchemy","old_version":"1.9.3","new_version":"1.10.0","repository_url":"https://github.com/litestar-org/advanced-alchemy"},{"name":"pyjwt","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"ruff","old_version":"0.15.13","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"ty","old_version":"0.0.37","new_version":"0.0.39","repository_url":"https://github.com/astral-sh/ty"},{"name":"prek","old_version":"0.4.0","new_version":"0.4.1","repository_url":"https://github.com/j178/prek"},{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-minor-patch group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [litestar](https://github.com/litestar-org/litestar) | `2.21.1` | `2.22.0` |\n| [advanced-alchemy](https://github.com/litestar-org/advanced-alchemy) | `1.9.3` | `1.10.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.12.1` | `2.13.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.13` | `0.15.14` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.37` | `0.0.39` |\n| [prek](https://github.com/j178/prek) | `0.4.0` | `0.4.1` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.42` | `0.0.43` |\n\nUpdates `litestar` from 2.21.1 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/litestar-org/litestar/releases\"\u003elitestar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003ch2\u003eSponsors 🌟\u003c/h2\u003e\n\u003cp\u003eThanks to these incredible business sponsors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://scalar.com/\"\u003eScalar\u003c/a\u003e (\u003ca href=\"https://github.com/scalar\"\u003e\u003ccode\u003e@​scalar\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://telemetrysports.com/\"\u003eTelemetry Sports\u003c/a\u003e (via \u003ca href=\"https://github.com/chris-telemetry\"\u003e\u003ccode\u003e@​chris-telemetry\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to these incredible personal sponsors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://polar.sh/\"\u003ePolar.sh\u003c/a\u003e: \u003ca href=\"https://github.com/Nozavi\"\u003e\u003ccode\u003e@​Nozavi\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cemrehancavdar\"\u003e\u003ccode\u003e@​cemrehancavdar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/thomastu\"\u003e\u003ccode\u003e@​thomastu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/litestar-org/\"\u003eGitHub Sponsors\u003c/a\u003e: \u003ca href=\"https://github.com/ddahan\"\u003e\u003ccode\u003e@​ddahan\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/roboflow\"\u003e\u003ccode\u003e@​roboflow\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cbscsm\"\u003e\u003ccode\u003e@​cbscsm\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/scalar\"\u003e\u003ccode\u003e@​scalar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/benjamin-kirkbride\"\u003e\u003ccode\u003e@​benjamin-kirkbride\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/litestar\"\u003eOpenCollective\u003c/a\u003e: Christian Y, Shaun Wah, Jordan Russel\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/maksimzayats\"\u003e\u003ccode\u003e@​maksimzayats\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4636\"\u003elitestar-org/litestar#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4605\"\u003elitestar-org/litestar#4605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavdwest\"\u003e\u003ccode\u003e@​pavdwest\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4676\"\u003elitestar-org/litestar#4676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/infraAnchor\"\u003e\u003ccode\u003e@​infraAnchor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4659\"\u003elitestar-org/litestar#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.litestar.dev/2/release-notes/changelog.html#2.22.0\"\u003ehttps://docs.litestar.dev/2/release-notes/changelog.html#2.22.0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.0\"\u003ehttps://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.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/litestar-org/litestar/commit/2f80070e237bde0a5c8035efde1ffebb1b949271\"\u003e\u003ccode\u003e2f80070\u003c/code\u003e\u003c/a\u003e fix: 3.9 typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/6930a20ceb543912cd651b42deae5b9f3637a262\"\u003e\u003ccode\u003e6930a20\u003c/code\u003e\u003c/a\u003e fix: ignore x-allowed-hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/299a5845d2e9a067ed7fb716fecf518cfed8b67b\"\u003e\u003ccode\u003e299a584\u003c/code\u003e\u003c/a\u003e fix: Ensure 'csrf_input' is properly escaped before rendering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/a1d51b95a08fc71545ad5861c47dc9ede075ec1b\"\u003e\u003ccode\u003ea1d51b9\u003c/code\u003e\u003c/a\u003e feat(core): Introduce explicit parameter declarations with generics (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/a8095beb8e78418189ce3bdd803596733833e0f3\"\u003e\u003ccode\u003ea8095be\u003c/code\u003e\u003c/a\u003e chore: Typing fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/2d9f742ccf7077c7b5c31256cb68c299423cf31c\"\u003e\u003ccode\u003e2d9f742\u003c/code\u003e\u003c/a\u003e chore: add Python 3.14 classifier to pyproject.toml (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4776\"\u003e#4776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/45c0ef9b3aa340d365269fc5425f7e1558c61db5\"\u003e\u003ccode\u003e45c0ef9\u003c/code\u003e\u003c/a\u003e fix(request): content-length check incompatible with decompression middleware...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/693649e962dd77b0ec9eda3ecb36afe92299dc04\"\u003e\u003ccode\u003e693649e\u003c/code\u003e\u003c/a\u003e ci: Remove codeql (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4706\"\u003e#4706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/bf891515be12f03bb122319c2cb9b716c4aa2118\"\u003e\u003ccode\u003ebf89151\u003c/code\u003e\u003c/a\u003e test: Remove deprecated \u003ccode\u003easyncio.WindowsSelectorEventLoopPolicy\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4704\"\u003e#4704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/f17780a00542959231322da01049b7157329aad8\"\u003e\u003ccode\u003ef17780a\u003c/code\u003e\u003c/a\u003e docs(usage/excluding-and-including-endpoints): fix misleading regex examples ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `advanced-alchemy` from 1.9.3 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/litestar-org/advanced-alchemy/releases\"\u003eadvanced-alchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003ch3\u003eNew features 🚀\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: configurable serialization with Protocol-based architecture by \u003ca href=\"https://github.com/cofin\"\u003e\u003ccode\u003e@​cofin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/716\"\u003elitestar-org/advanced-alchemy#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(litestar): Update to new-style parameter markers by \u003ca href=\"https://github.com/provinzkraut\"\u003e\u003ccode\u003e@​provinzkraut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/736\"\u003elitestar-org/advanced-alchemy#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add support for UUID6 and UUID7 based on Python version by \u003ca href=\"https://github.com/lajxw\"\u003e\u003ccode\u003e@​lajxw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/714\"\u003elitestar-org/advanced-alchemy#714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: deprecate \u003ccode\u003elist()\u003c/code\u003e/\u003ccode\u003elist_and_count()\u003c/code\u003e by \u003ca href=\"https://github.com/cofin\"\u003e\u003ccode\u003e@​cofin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/706\"\u003elitestar-org/advanced-alchemy#706\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: register session listeners in framework extension configs by \u003ca href=\"https://github.com/hasansezertasan\"\u003e\u003ccode\u003e@​hasansezertasan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/712\"\u003elitestar-org/advanced-alchemy#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: docs preview workflow by \u003ca href=\"https://github.com/Harshal6927\"\u003e\u003ccode\u003e@​Harshal6927\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/718\"\u003elitestar-org/advanced-alchemy#718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(config): add cache_config field to SQLAlchemy configs by \u003ca href=\"https://github.com/hasansezertasan\"\u003e\u003ccode\u003e@​hasansezertasan\u003c/code\u003e\u003c/a\u003e  in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/731\"\u003elitestar-org/advanced-alchemy#731\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/lajxw\"\u003e\u003ccode\u003e@​lajxw\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/714\"\u003elitestar-org/advanced-alchemy#714\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003etest: migrate object storage tests to rustfs by \u003ca href=\"https://github.com/cofin\"\u003e\u003ccode\u003e@​cofin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/732\"\u003elitestar-org/advanced-alchemy#732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: centralize optional-dependency typing shims by \u003ca href=\"https://github.com/cofin\"\u003e\u003ccode\u003e@​cofin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/pull/719\"\u003elitestar-org/advanced-alchemy#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e\n\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/compare/v1.9.3...v1.10.0\"\u003ehttps://github.com/litestar-org/advanced-alchemy/compare/v1.9.3...v1.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/litestar-org/advanced-alchemy/blob/main/docs/changelog.rst\"\u003eadvanced-alchemy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e:orphan:\u003c/p\u003e\n\u003ch1\u003e1.x Changelog\u003c/h1\u003e\n\u003cp\u003e.. changelog:: 1.10.0\n:date: 2026-05-23\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e.. change:: configurable serialization with Protocol-based architecture\n    :type: feature\n    :pr: 716\n\u003cpre\u003e\u003ccode\u003eAdds ``advanced_alchemy.utils.serialization`` as the canonical home for\nJSON serialization, schema dumping, and schema/type guards. JSON\nencoding can now use msgspec, orjson, or the standard library with\nconfigurable type encoders, reversible complex-type markers, and\nLitestar encoder/decoder integration.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.. change:: update Litestar integrations to new-style parameter markers\u003cbr /\u003e\n:type: feature\u003cbr /\u003e\n:pr: 736\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdates the Litestar extension and examples to use Litestar's new\nparameter marker style for generated dependency and filter parameters.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.. change:: add UUID6 and UUID7 support based on Python version\u003cbr /\u003e\n:type: feature\u003cbr /\u003e\n:pr: 714\u003cbr /\u003e\n:issue: 713\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdds UUID6 and UUID7 primary-key support, using the standard library\nimplementation when available and falling back to the existing\ncompatibility dependency on older Python versions.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.. change:: deprecate \u003ccode\u003elist()\u003c/code\u003e/\u003ccode\u003elist_and_count()\u003c/code\u003e\u003cbr /\u003e\n:type: feature\u003cbr /\u003e\n:pr: 706\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdds ``get_many()`` and ``get_many_and_count()`` as the preferred APIs\nacross repositories, services, memory repositories, query repositories,\nand cache managers. The older ``list()`` and ``list_and_count()`` names\nremain available as deprecation wrappers until 2.0.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.. change:: configure repository caching from SQLAlchemy configs\u003cbr /\u003e\n:type: feature\u003cbr /\u003e\n:pr: 731\u003cbr /\u003e\n:issue: 730\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdds ``cache_config`` and ``cache_manager`` support to SQLAlchemy config\nobjects. Configured cache managers are stored in ``session.info`` so\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\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/litestar-org/advanced-alchemy/commit/83ec1175f1d5fa933a6df7a0003172279086f2d1\"\u003e\u003ccode\u003e83ec117\u003c/code\u003e\u003c/a\u003e fix(config): add cache_config field to SQLAlchemy configs (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/ed8c46b8b351975a7deb7a4be24e5ed6fd06a2ee\"\u003e\u003ccode\u003eed8c46b\u003c/code\u003e\u003c/a\u003e chore: updated changelog (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/e87371b1bea495562d02609cb2f187603798db24\"\u003e\u003ccode\u003ee87371b\u003c/code\u003e\u003c/a\u003e feat: configurable serialization with Protocol-based architecture (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/0d84a85e7ad38456b61dd5c7e6fd84f3873d9620\"\u003e\u003ccode\u003e0d84a85\u003c/code\u003e\u003c/a\u003e feat(litestar): Update to new-style parameter markers (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/955df1dd154dd0e69b02c62541abf1200b408189\"\u003e\u003ccode\u003e955df1d\u003c/code\u003e\u003c/a\u003e test: migrate object storage tests to rustfs (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/a6e275d889ec376d1cc942193fc56cf356a8fddf\"\u003e\u003ccode\u003ea6e275d\u003c/code\u003e\u003c/a\u003e feat: Add support for UUID6 and UUID7 based on Python version (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/c3d3e2eb5653d14abc870e3471d7c6add56f58ff\"\u003e\u003ccode\u003ec3d3e2e\u003c/code\u003e\u003c/a\u003e chore(deps): bump urllib3 from 1.26.20 to 2.6.3 in the uv group across 1 dire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/f2b90e9bd6d19a782f8b4ac13e00d1656cd11847\"\u003e\u003ccode\u003ef2b90e9\u003c/code\u003e\u003c/a\u003e fix: register session listeners in framework extension configs (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/f4c409ee21687025eeea8446ec007300d1fe60a5\"\u003e\u003ccode\u003ef4c409e\u003c/code\u003e\u003c/a\u003e refactor: centralize optional-dependency typing shims (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/advanced-alchemy/commit/437d56efc5c5664d6f0acc2fb7417bb9766942df\"\u003e\u003ccode\u003e437d56e\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/litestar-org/advanced-alchemy/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/litestar-org/advanced-alchemy/compare/v1.9.3...v1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.12.1 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.13.0\u003c/h2\u003e\n\u003ch1\u003ePyJWT 2.13.0 — Security Release\u003c/h1\u003e\n\u003cp\u003eThis release bundles five security fixes plus three additional hardening / spec-compliance changes. We recommend all users upgrade.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx\"\u003e\u003ccode\u003eGHSA-xgmm-8j9v-c9wx\u003c/code\u003e\u003c/a\u003e — JWK JSON accepted as HMAC secret (algorithm confusion).\u003c/strong\u003e \u003ccode\u003eHMACAlgorithm.prepare_key\u003c/code\u003e previously rejected PEM- and SSH-formatted asymmetric keys but did not catch a JWK passed as a raw JSON string. In a verifier configured with both symmetric and asymmetric algorithms in \u003ccode\u003ealgorithms=[…]\u003c/code\u003e and a raw-JSON JWK as the key, an attacker could forge HS256 tokens using the JWK text as the HMAC secret. The guard has been extended to reject any JWK-shaped JSON. \u003cem\u003eReported by \u003ca href=\"https://github.com/aradona91\"\u003e\u003ccode\u003e@​aradona91\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-jq35-7prp-9v3f\"\u003e\u003ccode\u003eGHSA-jq35-7prp-9v3f\u003c/code\u003e\u003c/a\u003e — Algorithm allow-list bypass with \u003ccode\u003ePyJWK\u003c/code\u003e / \u003ccode\u003ePyJWKClient\u003c/code\u003e.\u003c/strong\u003e When verifying with a \u003ccode\u003ePyJWK\u003c/code\u003e, the caller's \u003ccode\u003ealgorithms=[…]\u003c/code\u003e allow-list was checked against the token header \u003ccode\u003ealg\u003c/code\u003e as a string only; actual verification used the algorithm bound to the \u003ccode\u003ePyJWK\u003c/code\u003e. An attacker who controlled a registered JWKS key could sign with one algorithm and advertise another on the header. PyJWT now requires the token header \u003ccode\u003ealg\u003c/code\u003e to match the \u003ccode\u003ePyJWK\u003c/code\u003e's algorithm before verification. \u003cem\u003eReported by \u003ca href=\"https://github.com/sushi-gif\"\u003e\u003ccode\u003e@​sushi-gif\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w7vc-732c-9m39\"\u003e\u003ccode\u003eGHSA-w7vc-732c-9m39\u003c/code\u003e\u003c/a\u003e — DoS via base64 decode of unused payload segment when \u003ccode\u003eb64=false\u003c/code\u003e.\u003c/strong\u003e For detached-payload JWS (\u003ccode\u003eb64=false\u003c/code\u003e), the compact-form payload segment was base64-decoded before being discarded in favor of the caller-supplied \u003ccode\u003edetached_payload\u003c/code\u003e. An attacker could inflate the unused segment to force CPU + memory cost without holding a valid signature. The segment is now required to be empty per RFC 7515 Appendix F, and is no longer decoded. \u003cem\u003eReported by \u003ca href=\"https://github.com/thesmartshadow\"\u003e\u003ccode\u003e@​thesmartshadow\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-993g-76c3-p5m4\"\u003e\u003ccode\u003eGHSA-993g-76c3-p5m4\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003ePyJWKClient\u003c/code\u003e accepts non-HTTP(S) URIs.\u003c/strong\u003e \u003ccode\u003ePyJWKClient.fetch_data\u003c/code\u003e passed its URI to \u003ccode\u003eurllib.request.urlopen\u003c/code\u003e, which by default also handles \u003ccode\u003efile://\u003c/code\u003e, \u003ccode\u003eftp://\u003c/code\u003e, and \u003ccode\u003edata:\u003c/code\u003e schemes. An application that fed an attacker-influenced URI into \u003ccode\u003ePyJWKClient\u003c/code\u003e could be coerced into reading local files or reaching other unintended schemes. \u003ccode\u003ePyJWKClient\u003c/code\u003e now rejects any URI whose scheme isn't \u003ccode\u003ehttp\u003c/code\u003e or \u003ccode\u003ehttps\u003c/code\u003e. \u003cem\u003eReported by \u003ca href=\"https://github.com/KEIJOT\"\u003e\u003ccode\u003e@​KEIJOT\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8\"\u003e\u003ccode\u003eGHSA-fhv5-28vv-h8m8\u003c/code\u003e\u003c/a\u003e — \u003ccode\u003ePyJWKClient\u003c/code\u003e cache wiped on fetch error.\u003c/strong\u003e A \u003ccode\u003efinally\u003c/code\u003e-block \u003ccode\u003eput(jwk_set=None)\u003c/code\u003e cleared the JWK Set cache whenever a fetch raised, turning a transient JWKS-endpoint outage into application-wide auth failure. The cache write was moved into the success path; transient errors no longer evict valid cached keys. \u003cem\u003eReported by \u003ca href=\"https://github.com/eddieran\"\u003e\u003ccode\u003e@​eddieran\u003c/code\u003e\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReject empty HMAC keys outright in \u003ccode\u003eHMACAlgorithm.prepare_key\u003c/code\u003e with \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead of accepting them with only a warning. Defends against the \u003ccode\u003eos.getenv(\u0026quot;JWT_SECRET\u0026quot;, \u0026quot;\u0026quot;)\u003c/code\u003e footgun. \u003cem\u003eThanks to \u003ca href=\"https://github.com/SnailSploit\"\u003e\u003ccode\u003e@​SnailSploit\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/spartan8806\"\u003e\u003ccode\u003e@​spartan8806\u003c/code\u003e\u003c/a\u003e for the reports.\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003eForward per-call \u003ccode\u003eoptions\u003c/code\u003e (including \u003ccode\u003eenforce_minimum_key_length\u003c/code\u003e) from \u003ccode\u003ePyJWT.decode\u003c/code\u003e through to \u003ccode\u003ePyJWS._verify_signature\u003c/code\u003e. The option was previously silently dropped between the two layers, so it only took effect when set on the \u003ccode\u003ePyJWT\u003c/code\u003e instance. \u003cem\u003eThanks to \u003ca href=\"https://github.com/WLUB\"\u003e\u003ccode\u003e@​WLUB\u003c/code\u003e\u003c/a\u003e for the report.\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRFC 7797 §3 compliance for \u003ccode\u003eb64=false\u003c/code\u003e:\u003c/strong\u003e the encoder now auto-adds \u003ccode\u003e\u0026quot;b64\u0026quot;\u003c/code\u003e to \u003ccode\u003ecrit\u003c/code\u003e, and the decoder rejects tokens that set \u003ccode\u003eb64=false\u003c/code\u003e without listing it in \u003ccode\u003ecrit\u003c/code\u003e. \u003cem\u003eThanks to \u003ca href=\"https://github.com/MachineLearning-Nerd\"\u003e\u003ccode\u003e@​MachineLearning-Nerd\u003c/code\u003e\u003c/a\u003e for the report.\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the \u003ccode\u003edev\u003c/code\u003e, \u003ccode\u003edocs\u003c/code\u003e, and \u003ccode\u003etests\u003c/code\u003e package extras to dependency groups, by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1152\"\u003e#1152\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cp\u003eMost fixes are invisible to correctly-configured callers. A few behavioral changes you may encounter:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEmpty HMAC keys now raise.\u003c/strong\u003e If your app passed \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e or \u003ccode\u003eb\u0026quot;\u0026quot;\u003c/code\u003e as a secret (often via a missing env var, e.g. \u003ccode\u003eos.getenv(\u0026quot;JWT_SECRET\u0026quot;, \u0026quot;\u0026quot;)\u003c/code\u003e), \u003ccode\u003eencode\u003c/code\u003e/\u003ccode\u003edecode\u003c/code\u003e will now raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e. This is the intended behavior — fix the configuration.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ePyJWK\u003c/code\u003e decoding now requires the token's \u003ccode\u003ealg\u003c/code\u003e to match the JWK's algorithm.\u003c/strong\u003e Previously a mismatch was silently honored if the header \u003ccode\u003ealg\u003c/code\u003e appeared in the allow-list. Tokens that relied on this mismatch will now fail with \u003ccode\u003eInvalidAlgorithmError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003ePyJWKClient\u003c/code\u003e now rejects non-HTTP(S) URIs at construction time.\u003c/strong\u003e Tests or dev environments that fetched JWKS from \u003ccode\u003efile://\u003c/code\u003e URIs need to switch to a local HTTP server or load the JWKS by other means (e.g. construct \u003ccode\u003ePyJWKSet.from_dict(...)\u003c/code\u003e directly).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eb64=false\u003c/code\u003e tokens are now strictly RFC 7515 / 7797 compliant.\u003c/strong\u003e Tokens with a non-empty compact-form payload segment, or that omit \u003ccode\u003e\u0026quot;b64\u0026quot;\u003c/code\u003e from \u003ccode\u003ecrit\u003c/code\u003e, will be rejected. PyJWT-produced tokens always satisfy both invariants, so round-trips through PyJWT are unaffected.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eenforce_minimum_key_length\u003c/code\u003e set per-call now takes effect.\u003c/strong\u003e Callers who passed \u003ccode\u003eoptions={\u0026quot;enforce_minimum_key_length\u0026quot;: True}\u003c/code\u003e to \u003ccode\u003ejwt.decode()\u003c/code\u003e previously got no enforcement; they will now get \u003ccode\u003eInvalidKeyError\u003c/code\u003e on undersized keys, as documented.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.13.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eSecurity\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Reject JWK JSON documents passed as raw HMAC secrets in\n  ``HMACAlgorithm.prepare_key`` to close an algorithm-confusion gap that\n  the existing PEM/SSH guard did not cover. Reported by @aradona91 in\n  `GHSA-xgmm-8j9v-c9wx \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx\u0026gt;`__.\n- Bind the JWT header ``alg`` to ``PyJWK.algorithm_name`` during\n  verification so the caller's ``algorithms=[...]`` allow-list cannot be\n  bypassed when decoding with a ``PyJWK`` / ``PyJWKClient`` key. Reported\n  by @sushi-gif in `GHSA-jq35-7prp-9v3f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-jq35-7prp-9v3f\u0026gt;`__.\n- Reject non-``http(s)`` URI schemes in ``PyJWKClient`` so attacker-\n  influenced URIs cannot read local files or reach unintended schemes via\n  urllib's default ``file://`` / ``ftp://`` / ``data:`` handlers. Reported\n  by @KEIJOT in `GHSA-993g-76c3-p5m4 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-993g-76c3-p5m4\u0026gt;`__.\n- Preserve the cached JWK Set on fetch errors in ``PyJWKClient.fetch_data``.\n  The previous ``finally``-block ``put(None)`` pattern cleared the cache\n  on any transient outage, turning one bad JWKS request into application-\n  wide auth failure. Reported by @eddieran in `GHSA-fhv5-28vv-h8m8 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8\u0026gt;`__.\n- Skip the unconditional base64 decode of the compact-form payload segment\n  when ``b64=false`` is set in the protected header, and require that\n  segment to be empty (RFC 7515 Appendix F detached form). Closes an\n  unauthenticated DoS amplifier. Reported by @thesmartshadow in\n  `GHSA-w7vc-732c-9m39 \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w7vc-732c-9m39\u0026gt;`__.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Reject empty HMAC keys outright in ``HMACAlgorithm.prepare_key`` with\n  ``InvalidKeyError`` instead of accepting them with only a warning.\n  Thanks to @SnailSploit and @spartan8806 for independently flagging the\n  footgun.\n- Forward per-call ``options`` (including ``enforce_minimum_key_length``)\n  from ``PyJWT.decode`` through to ``PyJWS._verify_signature`` so the\n  option actually takes effect when set at the call site rather than only\n  on the ``PyJWT`` instance. Thanks to @WLUB for the report.\n- RFC 7797 §3 compliance for ``b64=false``: the encoder now auto-adds\n  ``\u0026amp;quot;b64\u0026amp;quot;`` to the ``crit`` header parameter, and the decoder rejects\n  tokens that set ``b64=false`` without listing it in ``crit``. Thanks to\n  @MachineLearning-Nerd for the report.\n\nChanged\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the \u003ccode\u003edev\u003c/code\u003e, \u003ccode\u003edocs\u003c/code\u003e, and \u003ccode\u003etests\u003c/code\u003e package extras to dependency groups by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1152](https://github.com/jpadilla/pyjwt/issues/1152) \u0026amp;lt;https://github.com/jpadilla/pyjwt/pull/1152\u0026amp;gt;\u003c/code\u003e__\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/7144e4534c34810f4525dc4578a32addd8212cff\"\u003e\u003ccode\u003e7144e45\u003c/code\u003e\u003c/a\u003e Apply ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/d2f4bec4963897c0ef96ef64a875894f2c8542ab\"\u003e\u003ccode\u003ed2f4bec\u003c/code\u003e\u003c/a\u003e Restore \u003ccode\u003ecast()\u003c/code\u003e calls with cross-version \u003ccode\u003etype: ignore\u003c/code\u003e for \u003ccode\u003eprepare_key\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/22f478cebddd8294259c30f037ecb92b0b348774\"\u003e\u003ccode\u003e22f478c\u003c/code\u003e\u003c/a\u003e Remove redundant casts in \u003ccode\u003eRSAAlgorithm.prepare_key\u003c/code\u003e and `ECAlgorithm.prepare...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/95791b1759b8aa4f2203575d344d5c78564cdc81\"\u003e\u003ccode\u003e95791b1\u003c/code\u003e\u003c/a\u003e Bundle security fixes and hardening into 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dcc27a9d3182a2349c30b160758785c6ce7a6508\"\u003e\u003ccode\u003edcc27a9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/9d08a9a1896845ed8eaf88e6f6ac61e5800c3e7a\"\u003e\u003ccode\u003e9d08a9a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1146\"\u003e#1146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b87c10014d4109f0214fea188d00faaaf8a80e64\"\u003e\u003ccode\u003eb87c100\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1154\"\u003e#1154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/40e3147eb5f790d8d041772e5fc00728a176c812\"\u003e\u003ccode\u003e40e3147\u003c/code\u003e\u003c/a\u003e Migrate development extras to dependency groups (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.13 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.13...0.15.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.37 to 0.0.39\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.39\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-22.\u003c/p\u003e\n\u003cp\u003eThis release removes the Python 3.9 branches from our vendored standard library stubs. ty now only has \u0026quot;full\u0026quot; support for\nPython 3.10 and later, but will still report version-specific syntax errors and other diagnostics when \u003ccode\u003e--python-version 3.9\u003c/code\u003e\nis provided via the CLI.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid panicking on \u003ccode\u003e__new__\u003c/code\u003e assignments to classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve declaration order when synthesizing class fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25249\"\u003e#25249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003edict\u003c/code\u003e-compatible fallbacks in TypedDict unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25242\"\u003e#25242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Quick Fix to remove redundant cast (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25211\"\u003e#25211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClassify property declaration semantic tokens (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25322\"\u003e#25322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEscape HTML syntax in docstring rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25247\"\u003e#25247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer symbols from standard library over those of the same name from third party libraries for import completions. (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25108\"\u003e#25108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type aliases in document symbols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25302\"\u003e#25302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostics\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd error context for extra callable parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25269\"\u003e#25269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid exponential blow-up in fall-through narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25278\"\u003e#25278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up include filtering for projects with many literal include patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25266\"\u003e#25266\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a diagnostic for subclassing with \u003ccode\u003eorder=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21704\"\u003e#21704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFull-scope bidirectional inference for unconstrained container literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25279\"\u003e#25279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer \u003ccode\u003edict(TypedDict)\u003c/code\u003e as \u003ccode\u003edict[str, object]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24852\"\u003e#24852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject incompatible explicit variance in generic base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25327\"\u003e#25327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport multi-inference through type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25245\"\u003e#25245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25271\"\u003e#25271\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25172\"\u003e#25172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sqqueak\"\u003e\u003ccode\u003e@​sqqueak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.39\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-22.\u003c/p\u003e\n\u003cp\u003eThis release removes the Python 3.9 branches from our vendored standard library stubs. ty now only has \u0026quot;full\u0026quot; support for\nPython 3.10 and later, but will still report version-specific syntax errors and other diagnostics when \u003ccode\u003e--python-version 3.9\u003c/code\u003e\nis provided via the CLI.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid panicking on \u003ccode\u003e__new__\u003c/code\u003e assignments to classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25282\"\u003e#25282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve declaration order when synthesizing class fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25249\"\u003e#25249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003edict\u003c/code\u003e-compatible fallbacks in TypedDict unions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25242\"\u003e#25242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Quick Fix to remove redundant cast (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25211\"\u003e#25211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClassify property declaration semantic tokens (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25322\"\u003e#25322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEscape HTML syntax in docstring rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25247\"\u003e#25247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer symbols from standard library over those of the same name from third party libraries for import completions. (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25108\"\u003e#25108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type aliases in document symbols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25302\"\u003e#25302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDiagnostics\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd error context for extra callable parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25269\"\u003e#25269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid exponential blow-up in fall-through narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25278\"\u003e#25278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up include filtering for projects with many literal include patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25266\"\u003e#25266\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a diagnostic for subclassing with \u003ccode\u003eorder=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21704\"\u003e#21704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFull-scope bidirectional inference for unconstrained container literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25279\"\u003e#25279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer \u003ccode\u003edict(TypedDict)\u003c/code\u003e as \u003ccode\u003edict[str, object]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24852\"\u003e#24852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject incompatible explicit variance in generic base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25327\"\u003e#25327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport multi-inference through type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25245\"\u003e#25245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25271\"\u003e#25271\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25172\"\u003e#25172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MatthewMckee4\"\u003e\u003ccode\u003e@​MatthewMckee4\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sqqueak\"\u003e\u003ccode\u003e@​sqqueak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/0205125174c135d6fc4014244dee374678b61c72\"\u003e\u003ccode\u003e0205125\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.39 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3516\"\u003e#3516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/ae8058d40e641b545bbad046c487e964206a2286\"\u003e\u003ccode\u003eae8058d\u003c/code\u003e\u003c/a\u003e Update maturin to v1.13.3 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3494\"\u003e#3494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/33b60f8ad0f2da648b867831548a4b8c7985647d\"\u003e\u003ccode\u003e33b60f8\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/1d3efc1d68e36a8f982fa73b1f8c2a5ebc50fcde\"\u003e\u003ccode\u003e1d3efc1\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.38 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3492\"\u003e#3492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f5100ccde50ff577fa311add5232ae6074ed68f9\"\u003e\u003ccode\u003ef5100cc\u003c/code\u003e\u003c/a\u003e scripts/update_schemastore: use -C to allow re-running schema update on exist...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.37...0.0.39\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.4.0 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-20.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-push range after rebase (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2089\"\u003e#2089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer extensions over loose filename tags (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2092\"\u003e#2092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce run filtering allocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.4.1\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.1/prek-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.4.1/prek-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload prek 0.4.1\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-apple-darwin.tar.gz\"\u003eprek-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-apple-darwin.tar.gz\"\u003eprek-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-pc-windows-msvc.zip\"\u003eprek-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-i686-pc-windows-msvc.zip\"\u003eprek-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-pc-windows-msvc.zip\"\u003eprek-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-unknown-linux-gnu.tar.gz\"\u003eprek-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.4.1/prek-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-20.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-push range after rebase (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2089\"\u003e#2089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrefer extensions over loose filename tags (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2092\"\u003e#2092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce run filtering allocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/871b9edb65b7978c2c53d94f60a433cb9e120132\"\u003e\u003ccode\u003e871b9ed\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.1 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2107\"\u003e#2107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/3c26faf5be0c9ad0e61309650479e063b8cb0037\"\u003e\u003ccode\u003e3c26faf\u003c/code\u003e\u003c/a\u003e Optimize meta hook file scans (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2106\"\u003e#2106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/7780f1149565ff430b86be1f688dce7f680c6760\"\u003e\u003ccode\u003e7780f11\u003c/code\u003e\u003c/a\u003e Clean up run hook installation flow (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2105\"\u003e#2105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/c5dc885bcbc3d293d6c20ffb43b7be970b55b60d\"\u003e\u003ccode\u003ec5dc885\u003c/code\u003e\u003c/a\u003e Refine hook install filtering (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2104\"\u003e#2104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/9db879e92760cfa3c6da748672237a1b1d81ce12\"\u003e\u003ccode\u003e9db879e\u003c/code\u003e\u003c/a\u003e Skip installs for hooks that will not run (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2103\"\u003e#2103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/2a0da57faddae03fd6d8985776ab2ec33d0b99e5\"\u003e\u003ccode\u003e2a0da57\u003c/code\u003e\u003c/a\u003e Simplify workspace file handling (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/33ca06054451602a7988b64ac6cf12b1cf5fddad\"\u003e\u003ccode\u003e33ca060\u003c/code\u003e\u003c/a\u003e Lock file maintenance (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2072\"\u003e#2072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/03f11c00b169b9beea59253fc5a0c7efe6dc9fa6\"\u003e\u003ccode\u003e03f11c0\u003c/code\u003e\u003c/a\u003e Update GitHub Actions (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2101\"\u003e#2101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/354f431c3c0420d5be83e6c59f3b644c907793e6\"\u003e\u003ccode\u003e354f431\u003c/code\u003e\u003c/a\u003e Update dependency uv to v0.11.13 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2094\"\u003e#2094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/4a41828a33efaccccaba76e96942314ac3309e75\"\u003e\u003ccode\u003e4a41828\u003c/code\u003e\u003c/a\u003e Update Rust crate quick-xml to v0.39.4 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2098\"\u003e#2098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.4.0...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.42 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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/ZYLVEXT/litestar-auth/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYLVEXT%2Flitestar-auth/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"0.0.42","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-22T23:26:22.000Z","version_change":"0.0.42 → 0.0.43","issue":{"uuid":"4506088521","node_id":"PR_kwDOAKv-F87ehOMY","number":45,"state":"open","title":"Bump zensical from 0.0.42 to 0.0.43","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T23:26:22.000Z","updated_at":"2026-05-22T23:27:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.42 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.42\u0026new-version=0.0.43)](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/eggzec/mcerp/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggzec%2Fmcerp/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"}},{"old_version":"0.0.40","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-22T20:08:23.000Z","version_change":"0.0.40 → 0.0.43","issue":{"uuid":"4505336474","node_id":"PR_kwDOQnHo1c7ee1iT","number":224,"state":"closed","title":"chore(deps): bump zensical from 0.0.40 to 0.0.43","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-22T20:08:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-22T20:08:23.000Z","updated_at":"2026-05-22T20:08:56.000Z","time_to_close":13,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"zensical","old_version":"0.0.40","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.40 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.40...v0.0.43\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.40\u0026new-version=0.0.43)](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\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 `zensical` dependency from 0.0.40 to 0.0.43\n\u003e Updates the `zensical` package in [uv.lock](https://github.com/detailobsessed/unblu-mcp/pull/224/files#diff-84321598744d84dbee2318e634c74c9aae39a1c253f1c4bd17ebf9ef2f807b11) to pick up the latest patch releases.\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 d4e795d.\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/detailobsessed/unblu-mcp/pull/224","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/detailobsessed%2Funblu-mcp/issues/224","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/224/packages"}},{"old_version":"0.0.42","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-22T16:29:50.000Z","version_change":"0.0.42 → 0.0.43","issue":{"uuid":"4504141901","node_id":"PR_kwDOAQS3ec7ea7_Q","number":36,"state":"open","title":"Bump zensical from 0.0.42 to 0.0.43","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T16:29:50.000Z","updated_at":"2026-05-22T16:38:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.42 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.42\u0026new-version=0.0.43)](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/eggzec/pyswarm/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggzec%2Fpyswarm/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"}},{"old_version":"0.0.27","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-22T07:33:19.000Z","version_change":"0.0.27 → 0.0.43","issue":{"uuid":"4500791921","node_id":"PR_kwDONaGiU87eQBRD","number":16,"state":"open","title":"chore(deps): bump the uv-minor-patch group across 1 directory with 15 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-05-22T07:33:19.000Z","updated_at":"2026-05-22T07:35:18.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-minor-patch","update_count":15,"packages":[{"name":"psycopg","old_version":"3.3.3","new_version":"3.3.4","repository_url":"https://github.com/psycopg/psycopg"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"aio-pika","old_version":"9.6.1","new_version":"9.6.2","repository_url":"https://github.com/mosquito/aio-pika"},{"name":"aiokafka","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/aio-libs/aiokafka"},{"name":"litestar","old_version":"2.21.1","new_version":"2.22.0","repository_url":"https://github.com/litestar-org/litestar"},{"name":"commitizen","old_version":"4.13.9","new_version":"4.16.2","repository_url":"https://github.com/commitizen-tools/commitizen"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"rust-just","old_version":"1.46.0","new_version":"1.51.0","repository_url":"https://github.com/gnpaone/rust-just"},{"name":"ty","old_version":"0.0.23","new_version":"0.0.38","repository_url":"https://github.com/astral-sh/ty"},{"name":"deptry","old_version":"0.24.0","new_version":"0.25.1","repository_url":"https://github.com/osprey-oss/deptry"},{"name":"pymdown-extensions","old_version":"10.21","new_version":"10.21.3","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"zensical","old_version":"0.0.27","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-minor-patch group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.3.3` | `3.3.4` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [aio-pika](https://github.com/mosquito/aio-pika) | `9.6.1` | `9.6.2` |\n| [aiokafka](https://github.com/aio-libs/aiokafka) | `0.13.0` | `0.14.0` |\n| [litestar](https://github.com/litestar-org/litestar) | `2.21.1` | `2.22.0` |\n| [commitizen](https://github.com/commitizen-tools/commitizen) | `4.13.9` | `4.16.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.14` |\n| [rust-just](https://github.com/gnpaone/rust-just) | `1.46.0` | `1.51.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.23` | `0.0.38` |\n| [deptry](https://github.com/osprey-oss/deptry) | `0.24.0` | `0.25.1` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21` | `10.21.3` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.27` | `0.0.43` |\n\n\nUpdates `psycopg` from 3.3.3 to 3.3.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.5 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDiscard prepared statements upon :sql:\u003ccode\u003eALTER *\u003c/code\u003e or \u003ccode\u003eDISCARD *\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1307](https://github.com/psycopg/psycopg/issues/1307)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.4\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix possible spurious connection timeout in systems with very long uptimes\nin C extension (:ticket:\u003ccode\u003e[#1280](https://github.com/psycopg/psycopg/issues/1280)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix client-side adaptation of enums whose name require quotes\n(:ticket:\u003ccode\u003e[#1298](https://github.com/psycopg/psycopg/issues/1298)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eConsistently populate \u003ccode\u003e~Cursor.statusmessage\u003c/code\u003e after \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e\n(:ticket:\u003ccode\u003e[#1302](https://github.com/psycopg/psycopg/issues/1302)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\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/psycopg/psycopg/commit/83f110367cdd249cc0a352e2246ecea9e878e5a0\"\u003e\u003ccode\u003e83f1103\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/18287707f56a2b4f0817d9c23d137f5d69db6e31\"\u003e\u003ccode\u003e1828770\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8be14bbc18f74de7652606d2777e0950ec804cc0\"\u003e\u003ccode\u003e8be14bb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1301\"\u003e#1301\u003c/a\u003e from oliverhaas/fix/sync-pool-open-race\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/aee0bf2659db77c31154acf583baf0a98675c192\"\u003e\u003ccode\u003eaee0bf2\u003c/code\u003e\u003c/a\u003e fix(pool): fix race in the construction of the sync ConnectionPool lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/bc4d30375557fc32f2a91c2f8b75a5d21711ea89\"\u003e\u003ccode\u003ebc4d303\u003c/code\u003e\u003c/a\u003e chore(deps): bump the actions group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/785379f196fc17473d312451a1fd4a06ef8dc895\"\u003e\u003ccode\u003e785379f\u003c/code\u003e\u003c/a\u003e fix: retain statusmessage after executemany with returning=False\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/8882a73871e65727549657085922d043a106127c\"\u003e\u003ccode\u003e8882a73\u003c/code\u003e\u003c/a\u003e perf: do less if X in Y: return Y[X] for cache-like patterns\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2f785395c189e709da5fa74a02d3797bfb9db6a4\"\u003e\u003ccode\u003e2f78539\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1299\"\u003e#1299\u003c/a\u003e from dvarrazzo/fix-camel-enum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/37ef1dc4e6d19dc4af062d45a63243cb96a261c2\"\u003e\u003ccode\u003e37ef1dc\u003c/code\u003e\u003c/a\u003e test: skip test on crdb depending on precise regtype behaviour\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/7f2f1d159df881260e3086fd61ea71343ca98e58\"\u003e\u003ccode\u003e7f2f1d1\u003c/code\u003e\u003c/a\u003e fix: fix client-side representation of enums requiring quotes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.3...3.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\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/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aio-pika` from 9.6.1 to 9.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mosquito/aio-pika/releases\"\u003eaio-pika's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude license file in built distributions via project.license-files by \u003ca href=\"https://github.com/julia-thorn\"\u003e\u003ccode\u003e@​julia-thorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/pull/698\"\u003emosquito/aio-pika#698\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/julia-thorn\"\u003e\u003ccode\u003e@​julia-thorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/pull/698\"\u003emosquito/aio-pika#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\"\u003ehttps://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mosquito/aio-pika/commit/8136a8cf6fd04413c9e6ac1a789944ac4b1a47fd\"\u003e\u003ccode\u003e8136a8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/issues/698\"\u003e#698\u003c/a\u003e from julia-thorn/julia-thorn-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mosquito/aio-pika/commit/31b82b102ac0133ff8322a3fc39db48409765055\"\u003e\u003ccode\u003e31b82b1\u003c/code\u003e\u003c/a\u003e Add license-files entry to pyproject.toml\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiokafka` from 0.13.0 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/releases\"\u003eaiokafka's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd rack-aware fetching from the closest in-sync replica (KIP-392) via the new\n\u003ccode\u003eclient_rack\u003c/code\u003e option on :class:\u003ccode\u003eAIOKafkaConsumer\u003c/code\u003e. When set and the brokers\nsupport \u003ccode\u003eFetchRequest v11\u003c/code\u003e (Kafka 2.4+) with a \u003ccode\u003ereplica.selector.class\u003c/code\u003e\nconfigured, the consumer will fetch from a same-rack follower instead of the\npartition leader, reducing cross-AZ traffic and tail latency.\n(prs \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1159\"\u003e#1159\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1160\"\u003e#1160\u003c/a\u003e by \u003ca href=\"https://github.com/GlebShipilov\"\u003e\u003ccode\u003e@​GlebShipilov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotation for \u003ccode\u003eAIOKafkaAdminClient\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn back and deprecate \u003ccode\u003eapi_version\u003c/code\u003e parameter in client classes\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid failures when a transaction coordinator is dead by removing deprecated code\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly manage batch max size and linger_ms. A batch will be always\nproduced if the max size or the lingering time is reached\n(pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1142\"\u003e#1142\u003c/a\u003e by \u003ca href=\"https://github.com/vmaurin\"\u003e\u003ccode\u003e@​vmaurin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.14.0b1\u003c/h2\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd rack-aware fetching from the closest in-sync replica (KIP-392) via the new\n\u003ccode\u003eclient_rack\u003c/code\u003e option on :class:\u003ccode\u003eAIOKafkaConsumer\u003c/code\u003e. When set and the brokers\nsupport \u003ccode\u003eFetchRequest v11\u003c/code\u003e (Kafka 2.4+) with a \u003ccode\u003ereplica.selector.class\u003c/code\u003e\nconfigured, the consumer will fetch from a same-rack follower instead of the\npartition leader, reducing cross-AZ traffic and tail latency.\n(prs \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1159\"\u003e#1159\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1160\"\u003e#1160\u003c/a\u003e by \u003ca href=\"https://github.com/GlebShipilov\"\u003e\u003ccode\u003e@​GlebShipilov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotation for \u003ccode\u003eAIOKafkaAdminClient\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn back and deprecate \u003ccode\u003eapi_version\u003c/code\u003e parameter in client classes\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid failures when a transaction coordinator is dead by removing deprecated code\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly manage batch max size and linger_ms. A batch will be always\nproduced if the max size or the lingering time is reached\n(pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1142\"\u003e#1142\u003c/a\u003e by \u003ca href=\"https://github.com/vmaurin\"\u003e\u003ccode\u003e@​vmaurin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiokafka/blob/master/CHANGES.rst\"\u003eaiokafka's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.14.0 (2026-04-29)\u003c/h1\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd rack-aware fetching from the closest in-sync replica (KIP-392) via the new\n\u003ccode\u003eclient_rack\u003c/code\u003e option on :class:\u003ccode\u003eAIOKafkaConsumer\u003c/code\u003e. When set and the brokers\nsupport \u003ccode\u003eFetchRequest v11\u003c/code\u003e (Kafka 2.4+) with a \u003ccode\u003ereplica.selector.class\u003c/code\u003e\nconfigured, the consumer will fetch from a same-rack follower instead of the\npartition leader, reducing cross-AZ traffic and tail latency.\n(prs \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1159\"\u003e#1159\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1160\"\u003e#1160\u003c/a\u003e by \u003ca href=\"https://github.com/GlebShipilov\"\u003e\u003ccode\u003e@​GlebShipilov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotation for \u003ccode\u003eAIOKafkaAdminClient\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn back and deprecate \u003ccode\u003eapi_version\u003c/code\u003e parameter in client classes\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid failures when a transaction coordinator is dead by removing deprecated code\n(issue \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly manage batch max size and linger_ms. A batch will be always\nproduced if the max size or the lingering time is reached\n(pr \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1142\"\u003e#1142\u003c/a\u003e by \u003ca href=\"https://github.com/vmaurin\"\u003e\u003ccode\u003e@​vmaurin\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/672947afe85c91b7d953f0259e69837a711d3246\"\u003e\u003ccode\u003e672947a\u003c/code\u003e\u003c/a\u003e Prepare 0.14.0 final release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/de7ec7e3ee9620046be994f062d690b09136d01b\"\u003e\u003ccode\u003ede7ec7e\u003c/code\u003e\u003c/a\u003e Prepare 0.14.0b1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/7d331e0fe948a022cddeb6f1ea2da94fbeaa39a2\"\u003e\u003ccode\u003e7d331e0\u003c/code\u003e\u003c/a\u003e Fix last_stable_offset parsing for FetchResponse v5..v10 (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1160\"\u003e#1160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/00b099f0caa9009f9774c1c1869bbdf38de6d4bd\"\u003e\u003ccode\u003e00b099f\u003c/code\u003e\u003c/a\u003e Improve test_kip_345_disabled to debug flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/57fa87056f09f344d23a190513d7a7f2c599fc9a\"\u003e\u003ccode\u003e57fa870\u003c/code\u003e\u003c/a\u003e Client rack support (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/870a52fda23fad79a92b5917239a9a33fcc72006\"\u003e\u003ccode\u003e870a52f\u003c/code\u003e\u003c/a\u003e Use linger_ms to delay batches (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/cadc5e02d51440dc5dc89a597a17ee64bc0c0837\"\u003e\u003ccode\u003ecadc5e0\u003c/code\u003e\u003c/a\u003e Issue 1151 cleanup (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/19b28fed72e422fac72fcedc8db9d224b8c67ae2\"\u003e\u003ccode\u003e19b28fe\u003c/code\u003e\u003c/a\u003e Return and deprecate api_version (fixes \u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1147\"\u003e#1147\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiokafka/commit/52d440fb5a93a4dd2e0738715ed39c34d97d23e9\"\u003e\u003ccode\u003e52d440f\u003c/code\u003e\u003c/a\u003e Fix AIOKafkaAdminClient annotation (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1148\"\u003e#1148\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aio-libs/aiokafka/issues/1149\"\u003e#1149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aio-libs/aiokafka/compare/v0.13.0...v0.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `litestar` from 2.21.1 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/litestar-org/litestar/releases\"\u003elitestar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.22.0\u003c/h2\u003e\n\u003ch2\u003eSponsors 🌟\u003c/h2\u003e\n\u003cp\u003eThanks to these incredible business sponsors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://scalar.com/\"\u003eScalar\u003c/a\u003e (\u003ca href=\"https://github.com/scalar\"\u003e\u003ccode\u003e@​scalar\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://telemetrysports.com/\"\u003eTelemetry Sports\u003c/a\u003e (via \u003ca href=\"https://github.com/chris-telemetry\"\u003e\u003ccode\u003e@​chris-telemetry\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to these incredible personal sponsors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://polar.sh/\"\u003ePolar.sh\u003c/a\u003e: \u003ca href=\"https://github.com/Nozavi\"\u003e\u003ccode\u003e@​Nozavi\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cemrehancavdar\"\u003e\u003ccode\u003e@​cemrehancavdar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/thomastu\"\u003e\u003ccode\u003e@​thomastu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/litestar-org/\"\u003eGitHub Sponsors\u003c/a\u003e: \u003ca href=\"https://github.com/ddahan\"\u003e\u003ccode\u003e@​ddahan\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/roboflow\"\u003e\u003ccode\u003e@​roboflow\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cbscsm\"\u003e\u003ccode\u003e@​cbscsm\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/scalar\"\u003e\u003ccode\u003e@​scalar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/benjamin-kirkbride\"\u003e\u003ccode\u003e@​benjamin-kirkbride\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/litestar\"\u003eOpenCollective\u003c/a\u003e: Christian Y, Shaun Wah, Jordan Russel\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/maksimzayats\"\u003e\u003ccode\u003e@​maksimzayats\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4636\"\u003elitestar-org/litestar#4636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/worksbyfriday\"\u003e\u003ccode\u003e@​worksbyfriday\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4605\"\u003elitestar-org/litestar#4605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavdwest\"\u003e\u003ccode\u003e@​pavdwest\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4676\"\u003elitestar-org/litestar#4676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/infraAnchor\"\u003e\u003ccode\u003e@​infraAnchor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/litestar-org/litestar/pull/4659\"\u003elitestar-org/litestar#4659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's changed\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.litestar.dev/2/release-notes/changelog.html#2.22.0\"\u003ehttps://docs.litestar.dev/2/release-notes/changelog.html#2.22.0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.0\"\u003ehttps://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.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/litestar-org/litestar/commit/2f80070e237bde0a5c8035efde1ffebb1b949271\"\u003e\u003ccode\u003e2f80070\u003c/code\u003e\u003c/a\u003e fix: 3.9 typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/6930a20ceb543912cd651b42deae5b9f3637a262\"\u003e\u003ccode\u003e6930a20\u003c/code\u003e\u003c/a\u003e fix: ignore x-allowed-hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/299a5845d2e9a067ed7fb716fecf518cfed8b67b\"\u003e\u003ccode\u003e299a584\u003c/code\u003e\u003c/a\u003e fix: Ensure 'csrf_input' is properly escaped before rendering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/a1d51b95a08fc71545ad5861c47dc9ede075ec1b\"\u003e\u003ccode\u003ea1d51b9\u003c/code\u003e\u003c/a\u003e feat(core): Introduce explicit parameter declarations with generics (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/a8095beb8e78418189ce3bdd803596733833e0f3\"\u003e\u003ccode\u003ea8095be\u003c/code\u003e\u003c/a\u003e chore: Typing fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/2d9f742ccf7077c7b5c31256cb68c299423cf31c\"\u003e\u003ccode\u003e2d9f742\u003c/code\u003e\u003c/a\u003e chore: add Python 3.14 classifier to pyproject.toml (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4776\"\u003e#4776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/45c0ef9b3aa340d365269fc5425f7e1558c61db5\"\u003e\u003ccode\u003e45c0ef9\u003c/code\u003e\u003c/a\u003e fix(request): content-length check incompatible with decompression middleware...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/693649e962dd77b0ec9eda3ecb36afe92299dc04\"\u003e\u003ccode\u003e693649e\u003c/code\u003e\u003c/a\u003e ci: Remove codeql (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4706\"\u003e#4706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/bf891515be12f03bb122319c2cb9b716c4aa2118\"\u003e\u003ccode\u003ebf89151\u003c/code\u003e\u003c/a\u003e test: Remove deprecated \u003ccode\u003easyncio.WindowsSelectorEventLoopPolicy\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/litestar-org/litestar/issues/4704\"\u003e#4704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/litestar-org/litestar/commit/f17780a00542959231322da01049b7157329aad8\"\u003e\u003ccode\u003ef17780a\u003c/code\u003e\u003c/a\u003e docs(usage/excluding-and-including-endpoints): fix misleading regex examples ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/litestar-org/litestar/compare/v2.21.1...v2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `commitizen` from 4.13.9 to 4.16.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/commitizen-tools/commitizen/releases\"\u003ecommitizen's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.16.2 (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eFix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etags\u003c/strong\u003e: widen prerelease and devrelease tag regexes for SemVer2 (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1972\"\u003e#1972\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.16.1 (2026-05-15)\u003c/h2\u003e\n\u003ch3\u003eFix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecz_customize\u003c/strong\u003e: derive bump_map_major_version_zero from bump_map (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1977\"\u003e#1977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.16.0 (2026-05-12)\u003c/h2\u003e\n\u003ch3\u003eFeat\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ehooks\u003c/strong\u003e: support interactive hooks scripts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.15.1 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eFix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esecurity\u003c/strong\u003e: prevent command injection via shell=True (CWE-78) (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1941\"\u003e#1941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.15.0 (2026-05-03)\u003c/h2\u003e\n\u003ch3\u003eFeat\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eversion\u003c/strong\u003e: add MANUAL_VERSION, --next and --patch to version command (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1724\"\u003e#1724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.14.0 (2026-05-03)\u003c/h2\u003e\n\u003ch3\u003eFeat\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd \u003ccode\u003e--allow-no-commit\u003c/code\u003e to \u003ccode\u003echangelog\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1868\"\u003e#1868\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/commitizen-tools/commitizen/commit/953e1ba4599cc3143122ed5c3e8de3d6dfd5524d\"\u003e\u003ccode\u003e953e1ba\u003c/code\u003e\u003c/a\u003e bump: version 4.16.1 → 4.16.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/c6b8c4455d8867d2b4fc31f4598f25f7a99968fe\"\u003e\u003ccode\u003ec6b8c44\u003c/code\u003e\u003c/a\u003e fix(tags): widen prerelease and devrelease tag regexes for SemVer2 (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1972\"\u003e#1972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/67151641260a5fd05fd61a1cddbf336a01108f6c\"\u003e\u003ccode\u003e6715164\u003c/code\u003e\u003c/a\u003e bump: version 4.16.0 → 4.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/3f8b8ca6f16c204c473c0aa17ccbee4970921da1\"\u003e\u003ccode\u003e3f8b8ca\u003c/code\u003e\u003c/a\u003e fix(cz_customize): derive bump_map_major_version_zero from bump_map (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1977\"\u003e#1977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/1d89cc5f840c08e721431d2971bfa2b43fc4a633\"\u003e\u003ccode\u003e1d89cc5\u003c/code\u003e\u003c/a\u003e docs(cli/screenshots): update CLI screenshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/9707a58ba8c850259ece0fafc8108ba2f350e005\"\u003e\u003ccode\u003e9707a58\u003c/code\u003e\u003c/a\u003e bump: version 4.15.1 → 4.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/80b92f1e603912c89dd756f387df847c4338cd24\"\u003e\u003ccode\u003e80b92f1\u003c/code\u003e\u003c/a\u003e ci: place --no-raise before bump subcommand (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/ecc4da436adac1e769d035a5f4684f6f087e6c39\"\u003e\u003ccode\u003eecc4da4\u003c/code\u003e\u003c/a\u003e docs(cli/screenshots): update CLI screenshots\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/ce07c7728c74600939244b649dd5754ef2b79507\"\u003e\u003ccode\u003ece07c77\u003c/code\u003e\u003c/a\u003e test: use match in pytest.raises (\u003ca href=\"https://redirect.github.com/commitizen-tools/commitizen/issues/1846\"\u003e#1846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/commitizen-tools/commitizen/commit/9bd9e8b281e0e2229497f14b4d170e35b6f6be8f\"\u003e\u003ccode\u003e9bd9e8b\u003c/code\u003e\u003c/a\u003e docs(cli/screenshots): update CLI screenshots\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/commitizen-tools/commitizen/compare/v4.13.9...v4.16.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\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/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\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/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\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/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.6 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on how to update Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/67d8c544f0d1c526a2fc60d4bb1358fd7956d178\"\u003e\u003ccode\u003e67d8c54\u003c/code\u003e\u003c/a\u003e [ty] Retain recursively-defined state in binary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25277\"\u003e#25277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/25a3191140dc0467f9d196f35c128fefde269261\"\u003e\u003ccode\u003e25a3191\u003c/code\u003e\u003c/a\u003e [ty] Refine Callable class-decorator fallback for unknown results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25250\"\u003e#25250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c423054dc09e5b644c926b6b527b6accfbe693e9\"\u003e\u003ccode\u003ec423054\u003c/code\u003e\u003c/a\u003e Add a recursion limit to the parser (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.6...0.15.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rust-just` from 1.46.0 to 1.51.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gnpaone/rust-just/releases\"\u003erust-just's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.51.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno-cd\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/casey/just/pull/2981\"\u003e#2981\u003c/a\u003e by \u003ca href=\"https://github.com/hans-d\"\u003ehans-d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003e[env]\u003c/code\u003e attribute to take expressions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3329\"\u003e#3329\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow using expressions with \u003ccode\u003e[working-directory]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3326\"\u003e#3326\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRead justfile from standard input with \u003ccode\u003e--justfile -\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3325\"\u003e#3325\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eparent_directory()\u003c/code\u003e of bare filename return \u003ccode\u003e.\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3313\"\u003e#3313\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003e[env]\u003c/code\u003e override module-level exports (\u003ca href=\"https://redirect.github.com/casey/just/pull/3312\"\u003e#3312\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail on deep recursion instead of overflowing stack (\u003ca href=\"https://redirect.github.com/casey/just/pull/3319\"\u003e#3319\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInvoke chooser selections separately (\u003ca href=\"https://redirect.github.com/casey/just/pull/3311\"\u003e#3311\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't evaluate unused assertions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3310\"\u003e#3310\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect lazy setting in submodules (\u003ca href=\"https://redirect.github.com/casey/just/pull/3308\"\u003e#3308\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix overrides not being visible in user-defined functions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3307\"\u003e#3307\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't panic on invalid datetime format string (\u003ca href=\"https://redirect.github.com/casey/just/pull/3304\"\u003e#3304\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ecargo-limit\u003c/code\u003e commands in justfile (\u003ca href=\"https://redirect.github.com/casey/just/pull/3331\"\u003e#3331\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify code more (\u003ca href=\"https://redirect.github.com/casey/just/pull/3330\"\u003e#3330\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate install-dev-deps recipe with compatible mdbook (\u003ca href=\"https://redirect.github.com/casey/just/pull/3328\"\u003e#3328\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify code (\u003ca href=\"https://redirect.github.com/casey/just/pull/3327\"\u003e#3327\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink to duplicate recipe issue in readme (\u003ca href=\"https://redirect.github.com/casey/just/pull/3321\"\u003e#3321\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove periods from error messages (\u003ca href=\"https://redirect.github.com/casey/just/pull/3316\"\u003e#3316\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid multi-sentence error messagess (\u003ca href=\"https://redirect.github.com/casey/just/pull/3315\"\u003e#3315\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake error messages lowercase (\u003ca href=\"https://redirect.github.com/casey/just/pull/3314\"\u003e#3314\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eActually bump version to 1.50.0 (\u003ca href=\"https://redirect.github.com/casey/just/pull/3303\"\u003e#3303\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.50.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFilter \u003ccode\u003e--choose\u003c/code\u003e by \u003ccode\u003e--group\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3298\"\u003e#3298\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e[android]\u003c/code\u003e recipe attribute (\u003ca href=\"https://redirect.github.com/casey/just/pull/2884\"\u003e#2884\u003c/a\u003e by \u003ca href=\"https://github.com/duncanawoods\"\u003eduncanawoods\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003emodule_path()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/casey/just/pull/3270\"\u003e#3270\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve trailing comments when formatting (\u003ca href=\"https://redirect.github.com/casey/just/pull/3282\"\u003e#3282\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve comments before \u003ccode\u003e[doc]\u003c/code\u003e attribute (\u003ca href=\"https://redirect.github.com/casey/just/pull/3275\"\u003e#3275\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow comments after unexports (\u003ca href=\"https://redirect.github.com/casey/just/pull/3264\"\u003e#3264\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStabilize \u003ccode\u003e--fmt\u003c/code\u003e subcommand (\u003ca href=\"https://redirect.github.com/casey/just/pull/3301\"\u003e#3301\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore trailing \u003ccode\u003e::\u003c/code\u003e on last argument (\u003ca href=\"https://redirect.github.com/casey/just/pull/3300\"\u003e#3300\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComplete files and directories when completing arguments (\u003ca href=\"https://redirect.github.com/casey/just/pull/3299\"\u003e#3299\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003emodule_path\u003c/code\u003e field in JSON (\u003ca href=\"https://redirect.github.com/casey/just/pull/3288\"\u003e#3288\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePartially collapse blank lines between items (\u003ca href=\"https://redirect.github.com/casey/just/pull/3274\"\u003e#3274\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOmit defaults when formatting settings (\u003ca href=\"https://redirect.github.com/casey/just/pull/3268\"\u003e#3268\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\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/gnpaone/rust-just/blob/master/CHANGELOG.md\"\u003erust-just's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/casey/just/releases/tag/1.50.0\"\u003e1.51.0\u003c/a\u003e - 2026-05-09\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno-cd\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/casey/just/pull/2981\"\u003e#2981\u003c/a\u003e by \u003ca href=\"https://github.com/hans-d\"\u003ehans-d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003e[env]\u003c/code\u003e attribute to take expressions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3329\"\u003e#3329\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow using expressions with \u003ccode\u003e[working-directory]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3326\"\u003e#3326\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRead justfile from standard input with \u003ccode\u003e--justfile -\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3325\"\u003e#3325\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eparent_directory()\u003c/code\u003e of bare filename return \u003ccode\u003e.\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3313\"\u003e#3313\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003e[env]\u003c/code\u003e override module-level exports (\u003ca href=\"https://redirect.github.com/casey/just/pull/3312\"\u003e#3312\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFail on deep recursion instead of overflowing stack (\u003ca href=\"https://redirect.github.com/casey/just/pull/3319\"\u003e#3319\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInvoke chooser selections separately (\u003ca href=\"https://redirect.github.com/casey/just/pull/3311\"\u003e#3311\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't evaluate unused assertions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3310\"\u003e#3310\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect lazy setting in submodules (\u003ca href=\"https://redirect.github.com/casey/just/pull/3308\"\u003e#3308\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix overrides not being visible in user-defined functions (\u003ca href=\"https://redirect.github.com/casey/just/pull/3307\"\u003e#3307\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't panic on invalid datetime format string (\u003ca href=\"https://redirect.github.com/casey/just/pull/3304\"\u003e#3304\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ecargo-limit\u003c/code\u003e commands in justfile (\u003ca href=\"https://redirect.github.com/casey/just/pull/3331\"\u003e#3331\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify code more (\u003ca href=\"https://redirect.github.com/casey/just/pull/3330\"\u003e#3330\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate install-dev-deps recipe with compatible mdbook (\u003ca href=\"https://redirect.github.com/casey/just/pull/3328\"\u003e#3328\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify code (\u003ca href=\"https://redirect.github.com/casey/just/pull/3327\"\u003e#3327\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLink to duplicate recipe issue in readme (\u003ca href=\"https://redirect.github.com/casey/just/pull/3321\"\u003e#3321\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove periods from error messages (\u003ca href=\"https://redirect.github.com/casey/just/pull/3316\"\u003e#3316\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid multi-sentence error messagess (\u003ca href=\"https://redirect.github.com/casey/just/pull/3315\"\u003e#3315\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake error messages lowercase (\u003ca href=\"https://redirect.github.com/casey/just/pull/3314\"\u003e#3314\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eActually bump version to 1.50.0 (\u003ca href=\"https://redirect.github.com/casey/just/pull/3303\"\u003e#3303\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/casey/just/releases/tag/1.50.0\"\u003e1.50.0\u003c/a\u003e - 2026-04-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFilter \u003ccode\u003e--choose\u003c/code\u003e by \u003ccode\u003e--group\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/casey/just/pull/3298\"\u003e#3298\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e[android]\u003c/code\u003e recipe attribute (\u003ca href=\"https://redirect.github.com/casey/just/pull/2884\"\u003e#2884\u003c/a\u003e by \u003ca href=\"https://github.com/duncanawoods\"\u003eduncanawoods\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003emodule_path()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/casey/just/pull/3270\"\u003e#3270\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve trailing comments when formatting (\u003ca href=\"https://redirect.github.com/casey/just/pull/3282\"\u003e#3282\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve comments before \u003ccode\u003e[doc]\u003c/code\u003e attribute (\u003ca href=\"https://redirect.github.com/casey/just/pull/3275\"\u003e#3275\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow comments after unexports (\u003ca href=\"https://redirect.github.com/casey/just/pull/3264\"\u003e#3264\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStabilize \u003ccode\u003e--fmt\u003c/code\u003e subcommand (\u003ca href=\"https://redirect.github.com/casey/just/pull/3301\"\u003e#3301\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore trailing \u003ccode\u003e::\u003c/code\u003e on last argument (\u003ca href=\"https://redirect.github.com/casey/just/pull/3300\"\u003e#3300\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComplete files and directories when completing arguments (\u003ca href=\"https://redirect.github.com/casey/just/pull/3299\"\u003e#3299\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003emodule_path\u003c/code\u003e field in JSON (\u003ca href=\"https://redirect.github.com/casey/just/pull/3288\"\u003e#3288\u003c/a\u003e by \u003ca href=\"https://github.com/casey\"\u003ecasey\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/gnpaone/rust-just/commit/1949b3d25ee0f5fed0e0d901bda285d0480f1df5\"\u003e\u003ccode\u003e1949b3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gnpaone/rust-just/issues/476\"\u003e#476\u003c/a\u003e from gnpaone/sync-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/f55bd7fcb9aabacb1970fc1305abef65613e8c17\"\u003e\u003ccode\u003ef55bd7f\u003c/code\u003e\u003c/a\u003e chore: sync files from source repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/a3ee985206392d4d6499ed4f75b8d0d0c4cfae19\"\u003e\u003ccode\u003ea3ee985\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gnpaone/rust-just/issues/475\"\u003e#475\u003c/a\u003e from gnpaone/sync-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/f28ab0ec1897180c4efda4730a56a2224bba3825\"\u003e\u003ccode\u003ef28ab0e\u003c/code\u003e\u003c/a\u003e chore: sync files from source repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/7a16ca999a7b5b44baadc0ddee0e44415ece180b\"\u003e\u003ccode\u003e7a16ca9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gnpaone/rust-just/issues/474\"\u003e#474\u003c/a\u003e from gnpaone/dependabot/npm_and_yarn/npm/rust-just/ty...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/def1fb7251cd4ba957449553cdbaefb6d2723a70\"\u003e\u003ccode\u003edef1fb7\u003c/code\u003e\u003c/a\u003e npm(deps-dev): bump \u003ccode\u003e@​types/node\u003c/code\u003e from 25.6.0 to 25.6.2 in /npm/rust-just\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/283029bcedb3c9b921d6c6e90db15d39cc38c1f8\"\u003e\u003ccode\u003e283029b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gnpaone/rust-just/issues/473\"\u003e#473\u003c/a\u003e from gnpaone/sync-action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnpaone/rust-just/commit/5db9a03fee34d812c5f33962ec50aed9ae7739ec\"\u003e\u003ccode\u003e5db9a03\u003c/code\u003e\u003c/a\u003e chore: sync files fr...\n\n_Description has been truncated_","html_url":"https://github.com/ZYLVEXT/fast-healthchecks/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYLVEXT%2Ffast-healthchecks/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"}},{"old_version":"0.0.33","new_version":"0.0.43","update_type":"patch","path":null,"pr_created_at":"2026-05-20T22:04:00.000Z","version_change":"0.0.33 → 0.0.43","issue":{"uuid":"4490220370","node_id":"PR_kwDOR3ThZc7dtzXg","number":43,"state":"open","title":"chore(deps): Bump zensical from 0.0.33 to 0.0.43","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-05-20T22:04:00.000Z","updated_at":"2026-05-20T22:04:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"zensical","old_version":"0.0.33","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.33 to 0.0.43.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for [integrating tabular data] as Markdown tables, covering the functionality of the [mkdocs-table-reader-plugin], as well as the [\u003ccode\u003ewatch\u003c/code\u003e][watch] option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of [macros], which we shipped in [0.0.40]. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.33...v0.0.43\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.33\u0026new-version=0.0.43)](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/chaospheremk/PermissionAnalyzer/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaospheremk%2FPermissionAnalyzer/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"}},{"old_version":"0.0.42","new_version":"0.0.43","update_type":"patch","path":"the dependencies group","pr_created_at":"2026-05-20T01:46:26.000Z","version_change":"0.0.42 → 0.0.43","issue":{"uuid":"4482448089","node_id":"PR_kwDONC8Qws7dUqz3","number":472,"state":"open","title":"⬆️ Bump zensical from 0.0.42 to 0.0.43 in the dependencies group","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":12,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-20T01:46:26.000Z","updated_at":"2026-05-20T01:48:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆️ Bump","packages":[{"name":"zensical","old_version":"0.0.42","new_version":"0.0.43","repository_url":"https://github.com/zensical/zensical"}],"path":"the dependencies group","ecosystem":"pip"},"body":"Bumps the dependencies group with 1 update: [zensical](https://github.com/zensical/zensical).\n\nUpdates `zensical` from 0.0.42 to 0.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version fixes further edge cases in link validation, and adds support for UTF-8 encoding with byte-order-marks.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1e873a3 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e62a0feb \u003cstrong\u003ezensical\u003c/strong\u003e – report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e7be40c6 \u003cstrong\u003ecompat\u003c/strong\u003e – ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e85c3b1e \u003cstrong\u003ecompat\u003c/strong\u003e – ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edaafc8b \u003cstrong\u003ezensical\u003c/strong\u003e – filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e913fd61 \u003cstrong\u003ezensical\u003c/strong\u003e – strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\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/zensical/zensical/commit/7d2178a8a9df7c559a746643ccfa34f1531f20a3\"\u003e\u003ccode\u003e7d2178a\u003c/code\u003e\u003c/a\u003e chore: release v0.0.43\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/35a20425ac3a30007ed2ba9e1d54bbdae98399cd\"\u003e\u003ccode\u003e35a2042\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/697\"\u003e#697\u003c/a\u003e from zensical/fix/validation-regressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/1e873a397c314843444adb68dcd5238af62dfe22\"\u003e\u003ccode\u003e1e873a3\u003c/code\u003e\u003c/a\u003e fix: ignore links in code after literal dollar during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/62a0feb8f45ed10ea3c4c9816501ff1c2245f244\"\u003e\u003ccode\u003e62a0feb\u003c/code\u003e\u003c/a\u003e fix: report \u003ccode\u003epath.md/#anchor\u003c/code\u003e as invalid during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7be40c6ceb4407992a1d93cb6e30563b737e4724\"\u003e\u003ccode\u003e7be40c6\u003c/code\u003e\u003c/a\u003e fix: ignore GitHub-style callouts during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/85c3b1e321dc4eaa60fc7bd885a4da509e1e4127\"\u003e\u003ccode\u003e85c3b1e\u003c/code\u003e\u003c/a\u003e fix: ignore \u003ccode\u003e[TOC]\u003c/code\u003e marker during link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/daafc8becba138735046b63dcf839c89c9f8c024\"\u003e\u003ccode\u003edaafc8b\u003c/code\u003e\u003c/a\u003e fix: filter out icons folder when watching theme directories (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/913fd61670ae2d1a01c76388613f6378c9431a3d\"\u003e\u003ccode\u003e913fd61\u003c/code\u003e\u003c/a\u003e fix: strip Byte-Order-Mark (BOM) from Markdown files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.42...v0.0.43\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.42\u0026new-version=0.0.43)](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\n\n\n\u003c/details\u003e","html_url":"https://github.com/7rikazhexde/json2vars-setter/pull/472","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rikazhexde%2Fjson2vars-setter/issues/472","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/472/packages"}},{"old_version":"0.0.38","new_version":"0.0.42","update_type":"patch","path":null,"pr_created_at":"2026-05-19T08:43:00.000Z","version_change":"0.0.38 → 0.0.42","issue":{"uuid":"4475832603","node_id":"PR_kwDOH77cZc7c_NkE","number":70,"state":"closed","title":"Bump zensical from 0.0.38 to 0.0.42","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-26T04:29:39.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T08:43:00.000Z","updated_at":"2026-05-26T04:29:42.000Z","time_to_close":589599,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.38","new_version":"0.0.42","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.38 to 0.0.42.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/#reading-tabular-data\"\u003eintegrating tabular data\u003c/a\u003e as Markdown tables, covering the functionality of the \u003ca href=\"https://pypi.org/project/mkdocs-table-reader-plugin/\"\u003emkdocs-table-reader-plugin\u003c/a\u003e, as well as the \u003ca href=\"https://zensical.org/docs/setup/basics/#watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/\"\u003emacros\u003c/a\u003e, which we shipped in \u003ca href=\"https://github.com/zensical/zensical/releases/tag/v0.0.40\"\u003e0.0.40\u003c/a\u003e. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAdditionally, the stability of link \u003ca href=\"https://zensical.org/docs/setup/validation/\"\u003evalidation\u003c/a\u003e has been drastically improved, reducing the rate of false positives. We're working on support for validating links using \u003ca href=\"https://mkdocstrings.github.io/autorefs/\"\u003eautorefs\u003c/a\u003e, which we'll provide in one of the next versions.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ed24ea24 \u003cstrong\u003ecompat\u003c/strong\u003e – support table reader functionality\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/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/cdee1e8bc77e83ebbb089cab0b5a0984cc6305cc\"\u003e\u003ccode\u003ecdee1e8\u003c/code\u003e\u003c/a\u003e fix: disabling link validation doesn't disable link and reference collection ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a5d97abe0bc15b10e4656767de658daab59c759\"\u003e\u003ccode\u003e7a5d97a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/680\"\u003e#680\u003c/a\u003e from zensical/fix/validation-edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/4355dad3ce47a0e647e2187a770a2b9b0b2d502e\"\u003e\u003ccode\u003e4355dad\u003c/code\u003e\u003c/a\u003e fix: harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a418c6bd3c62673e91df01690fd9eccafe262041\"\u003e\u003ccode\u003ea418c6b\u003c/code\u003e\u003c/a\u003e fix: link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/b31dd1472c091891ee6a87cb46e8313cf3dde9be\"\u003e\u003ccode\u003eb31dd14\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/17c67a2f62181c85220275e8f87c5985135bd62f\"\u003e\u003ccode\u003e17c67a2\u003c/code\u003e\u003c/a\u003e fix: remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6eb2f4d942e79e6f48f772fa16dcddc6e6dbb4eb\"\u003e\u003ccode\u003e6eb2f4d\u003c/code\u003e\u003c/a\u003e fix: reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a5a864178ccd0616e5aea56b66f8ce6b031ce50b\"\u003e\u003ccode\u003ea5a8641\u003c/code\u003e\u003c/a\u003e fix: only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.38...v0.0.42\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.38\u0026new-version=0.0.42)](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/Software-Hardware-Integration-Lab/Documentation/pull/70","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Software-Hardware-Integration-Lab%2FDocumentation/issues/70","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/70/packages"}},{"old_version":"0.0.33","new_version":"0.0.42","update_type":"patch","path":null,"pr_created_at":"2026-05-19T04:51:31.000Z","version_change":"0.0.33 → 0.0.42","issue":{"uuid":"4474502719","node_id":"PR_kwDORXN-Gc7c69Us","number":36,"state":"closed","title":"build(deps): bump the uv group with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-22T00:46:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T04:51:31.000Z","updated_at":"2026-05-22T00:46:36.000Z","time_to_close":244503,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"uv","update_count":7,"packages":[{"name":"pydantic","old_version":"2.13.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"tox-uv","old_version":"1.35.1","new_version":"1.35.2","repository_url":"https://github.com/tox-dev/tox-uv"},{"name":"ty","old_version":"0.0.31","new_version":"0.0.36","repository_url":"https://github.com/astral-sh/ty"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"prek","old_version":"0.3.9","new_version":"0.3.13","repository_url":"https://github.com/j178/prek"},{"name":"pymdown-extensions","old_version":"10.21.2","new_version":"10.21.3","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"zensical","old_version":"0.0.33","new_version":"0.0.42","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.0` | `2.13.4` |\n| [tox-uv](https://github.com/tox-dev/tox-uv) | `1.35.1` | `1.35.2` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.31` | `0.0.36` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.13` |\n| [prek](https://github.com/j178/prek) | `0.3.9` | `0.3.13` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21.2` | `10.21.3` |\n| [zensical](https://github.com/zensical/zensical) | `0.0.33` | `0.0.42` |\n\nUpdates `pydantic` from 2.13.0 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox-uv` from 1.35.1 to 1.35.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox-uv/releases\"\u003etox-uv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.35.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHonor constraints opt for all packages by \u003ca href=\"https://github.com/stephenfin\"\u003e\u003ccode\u003e@​stephenfin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/pull/332\"\u003etox-dev/tox-uv#332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(lock): honor --recreate in uv-venv-lock-runner by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/pull/338\"\u003etox-dev/tox-uv#338\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/stephenfin\"\u003e\u003ccode\u003e@​stephenfin\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/pull/332\"\u003etox-dev/tox-uv#332\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox-uv/compare/1.35.1...1.35.2\"\u003ehttps://github.com/tox-dev/tox-uv/compare/1.35.1...1.35.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/595721d2a0c8695aeb9bb59e3042a79d2dff2b90\"\u003e\u003ccode\u003e595721d\u003c/code\u003e\u003c/a\u003e 🐛 fix(lock): honor --recreate in uv-venv-lock-runner (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/1026808b9d98b5c1f9d92e84b5cccfde23a01bed\"\u003e\u003ccode\u003e1026808\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/3f7ea4d7f0495f32d95a3b7f67ddc164b85b17bd\"\u003e\u003ccode\u003e3f7ea4d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/f976fc1a0548d4b4544a87e637c0fc31f6d14372\"\u003e\u003ccode\u003ef976fc1\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/c0fabe3f6c4627869552ae74a53721aaf998ce02\"\u003e\u003ccode\u003ec0fabe3\u003c/code\u003e\u003c/a\u003e Honor constraints opt for all packages (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/d4aa96d0a0583e08a45ccfc6f9a08f89425a38ea\"\u003e\u003ccode\u003ed4aa96d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/331\"\u003e#331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/ac785195b51a3a1835702925d4150bba74134ccd\"\u003e\u003ccode\u003eac78519\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/329\"\u003e#329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox-uv/commit/8bab9b8484aefa61c220e38e36b497af0f590130\"\u003e\u003ccode\u003e8bab9b8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox-uv/issues/328\"\u003e#328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/tox-uv/compare/1.35.1...1.35.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.31 to 0.0.36\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.36\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Go To-Definition for self-imported submodules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25106\"\u003e#25106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eClassVar[Self]\u003c/code\u003e assignment checks for class objects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24657\"\u003e#24657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix attribute access on \u003ccode\u003eCallable\u003c/code\u003e-bounded TypeVars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24793\"\u003e#24793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from TypedDict schema cycle with \u003ccode\u003eSelf\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25094\"\u003e#25094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from non-name walrus target access (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25121\"\u003e#25121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix singleton classification for runtime typing objects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25099\"\u003e#25099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGuard self-referential \u003ccode\u003eTypeOf\u003c/code\u003e recursion in generic callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24668\"\u003e#24668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve lexical ParamSpec scope for returned Callable annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24909\"\u003e#24909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve walrus bindings through negated short-circuit conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25163\"\u003e#25163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClassify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit folding ranges for an entire block (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25113\"\u003e#25113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect the \u003ccode\u003eincludeDeclaration\u003c/code\u003e request parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24960\"\u003e#24960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25147\"\u003e#25147\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound loop-header analysis for large loops (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24972\"\u003e#24972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert inference hash maps to boxed slices on finish (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25102\"\u003e#25102\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for sentinel values (\u003ca href=\"https://peps.python.org/pep-0661/\"\u003ePEP 661\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25082\"\u003e#25082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHoist path assignment implication checks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25107\"\u003e#25107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RasmusNygren\"\u003e\u003ccode\u003e@​RasmusNygren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Minibrams\"\u003e\u003ccode\u003e@​Minibrams\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ty 0.0.36\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/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.36\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Go To-Definition for self-imported submodules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25106\"\u003e#25106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eClassVar[Self]\u003c/code\u003e assignment checks for class objects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24657\"\u003e#24657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix attribute access on \u003ccode\u003eCallable\u003c/code\u003e-bounded TypeVars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24793\"\u003e#24793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from TypedDict schema cycle with \u003ccode\u003eSelf\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25094\"\u003e#25094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic from non-name walrus target access (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25121\"\u003e#25121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix singleton classification for runtime typing objects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25099\"\u003e#25099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGuard self-referential \u003ccode\u003eTypeOf\u003c/code\u003e recursion in generic callables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24668\"\u003e#24668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve lexical ParamSpec scope for returned Callable annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24909\"\u003e#24909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve walrus bindings through negated short-circuit conditions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25163\"\u003e#25163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClassify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit folding ranges for an entire block (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25113\"\u003e#25113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect the \u003ccode\u003eincludeDeclaration\u003c/code\u003e request parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24960\"\u003e#24960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25147\"\u003e#25147\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound loop-header analysis for large loops (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24972\"\u003e#24972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert inference hash maps to boxed slices on finish (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25102\"\u003e#25102\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for sentinel values (\u003ca href=\"https://peps.python.org/pep-0661/\"\u003ePEP 661\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25082\"\u003e#25082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHoist path assignment implication checks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25107\"\u003e#25107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RasmusNygren\"\u003e\u003ccode\u003e@​RasmusNygren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Minibrams\"\u003e\u003ccode\u003e@​Minibrams\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.35\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-10.\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/astral-sh/ty/commit/a63e55929645f8eeaa6f28117afda8d2ed39d1a4\"\u003e\u003ccode\u003ea63e559\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.36 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3463\"\u003e#3463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/94370d5b43c48d01720a9e65d8d8d5286b6697b1\"\u003e\u003ccode\u003e94370d5\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3449\"\u003e#3449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/bc12d1cade50bc9407486057116fa0538bfb31ac\"\u003e\u003ccode\u003ebc12d1c\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.35 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3436\"\u003e#3436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/fb34d89e4acb379f6d8239d338881a6d1cce6642\"\u003e\u003ccode\u003efb34d89\u003c/code\u003e\u003c/a\u003e Build riscv64 manylinux binary (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/05def00f5eb67a599b314e1d550b4ce07ae08727\"\u003e\u003ccode\u003e05def00\u003c/code\u003e\u003c/a\u003e Update maturin to v1.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/569c081af4159100bfe7be97624da9ef9910d8c8\"\u003e\u003ccode\u003e569c081\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3416\"\u003e#3416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/608f8ff6e705b656392a89a1cf4e0b977fb10ab4\"\u003e\u003ccode\u003e608f8ff\u003c/code\u003e\u003c/a\u003e Update renovate configuration (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3379\"\u003e#3379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/518b61d7c2a2eff95e8826a9bba4a392574258b0\"\u003e\u003ccode\u003e518b61d\u003c/code\u003e\u003c/a\u003e Update uraimo/run-on-arch-action action to v3.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3405\"\u003e#3405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/55429594f26e78d277b29aaadc10ca46f9277148\"\u003e\u003ccode\u003e5542959\u003c/code\u003e\u003c/a\u003e Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3404\"\u003e#3404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/d00448eb0204e2dd11943d21e8e08a225914775f\"\u003e\u003ccode\u003ed00448e\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.34 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3392\"\u003e#3392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.31...0.0.36\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.11 to 0.15.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2afb467ce397e4a89c13a0a814c62cfecb0e9e49\"\u003e\u003ccode\u003e2afb467\u003c/code\u003e\u003c/a\u003e Bump 0.15.13 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25157\"\u003e#25157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b\"\u003e\u003ccode\u003e3008796\u003c/code\u003e\u003c/a\u003e [ty] classify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8\"\u003e\u003ccode\u003e79470e3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0\"\u003e\u003ccode\u003e2522549\u003c/code\u003e\u003c/a\u003e Remove shellcheck from prek (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25154\"\u003e#25154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06\"\u003e\u003ccode\u003e7db7170\u003c/code\u003e\u003c/a\u003e [ty] Support TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25\"\u003e#25\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0\"\u003e\u003ccode\u003ebb3dd53\u003c/code\u003e\u003c/a\u003e [ty] Run full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a\"\u003e\u003ccode\u003e828cdb7\u003c/code\u003e\u003c/a\u003e [ty] Isolate file-watching test environment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25151\"\u003e#25151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d\"\u003e\u003ccode\u003e89e1d86\u003c/code\u003e\u003c/a\u003e [ty] Preserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da\"\u003e\u003ccode\u003e86f3064\u003c/code\u003e\u003c/a\u003e [ty] Avoid accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a\"\u003e\u003ccode\u003eed819f9\u003c/code\u003e\u003c/a\u003e [ty] Treat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.3.9 to 0.3.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.3.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-06.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect hook filters for message files (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Godot Engine to users in README (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Calinou\"\u003e\u003ccode\u003e@​Calinou\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.3.13\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.3.13/prek-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.3.13/prek-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload prek 0.3.13\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-apple-darwin.tar.gz\"\u003eprek-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-apple-darwin.tar.gz\"\u003eprek-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-pc-windows-msvc.zip\"\u003eprek-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-pc-windows-msvc.zip\"\u003eprek-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-pc-windows-msvc.zip\"\u003eprek-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-unknown-linux-gnu.tar.gz\"\u003eprek-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-unknown-linux-gnu.tar.gz\"\u003eprek-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-riscv64gc-unknown-linux-gnu.tar.gz\"\u003eprek-riscv64gc-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eRISCV Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/j178/prek/releases/download/v0.3.13/prek-riscv64gc-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.3.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-06.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect hook filters for message files (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Godot Engine to users in README (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Calinou\"\u003e\u003ccode\u003e@​Calinou\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.3.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-05.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eauto_update.cooldown_days\u003c/code\u003e is now available in both the user-level global\nconfig (\u003ccode\u003e~/.config/prek/prek.toml\u003c/code\u003e on Linux and macOS, or\n\u003ccode\u003e$XDG_CONFIG_HOME/prek/prek.toml\u003c/code\u003e when set; \u003ccode\u003e%APPDATA%\\prek\\prek.toml\u003c/code\u003e on\nWindows) and project config. Set a user default for \u003ccode\u003eprek auto-update\u003c/code\u003e, then\noverride it per project when a repository needs a different update cadence.\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e[auto_update]\ncooldown_days = 7\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd global auto-update cooldown config (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd project auto-update cooldown config (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2044\"\u003e#2044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003elanguage: dart\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1146\"\u003e#1146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePass commit message file to workspace hooks (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve non-UTF8 filenames from git (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2023\"\u003e#2023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eruby: put resolved Ruby's bin dir on \u003ccode\u003e$PATH\u003c/code\u003e for \u003ccode\u003egem\u003c/code\u003e invocations (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs with the new logo and icon (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePoint schema docs to SchemaStore (\u003ca href=\"https://redirect.github.com/j178/prek/pull/2039\"\u003e#2039\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/j178/prek/commit/81b290ef0630d1e130dc37ae1916da0e51b8a002\"\u003e\u003ccode\u003e81b290e\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.13 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2050\"\u003e#2050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/3f5e5c6e54bdd9b1640228cdd69a449e18ddf9f8\"\u003e\u003ccode\u003e3f5e5c6\u003c/code\u003e\u003c/a\u003e Respect hook filters for message files (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/1fab88775affde4fd0c75b2f9102a5df88195efc\"\u003e\u003ccode\u003e1fab887\u003c/code\u003e\u003c/a\u003e Add Godot Engine to users in README (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/93a71e0b730d30d2fa56f9e47f2a293beb007988\"\u003e\u003ccode\u003e93a71e0\u003c/code\u003e\u003c/a\u003e Remove deleted \u003ccode\u003edist/post/index.cjs\u003c/code\u003e from publish prek version workflow (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2046\"\u003e#2046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/56d6d0c13ef36a4ab6a705621fba41448f2b503d\"\u003e\u003ccode\u003e56d6d0c\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.12 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2045\"\u003e#2045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/5f94f6f8ea8e5df0fb6604b4b8ec63072e1dc8f3\"\u003e\u003ccode\u003e5f94f6f\u003c/code\u003e\u003c/a\u003e Add project auto-update cooldown config (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2044\"\u003e#2044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/c52833e9991584d03bcd7e2b6fc01fa43e1f0d09\"\u003e\u003ccode\u003ec52833e\u003c/code\u003e\u003c/a\u003e Add global auto-update cooldown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/8af3054dc690fd06fe91b2b0c0ca4fe8e4418051\"\u003e\u003ccode\u003e8af3054\u003c/code\u003e\u003c/a\u003e Pass commit message file to workspace hooks (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/1bf54f5fa9638ad66a7d0b160170da75de1eec81\"\u003e\u003ccode\u003e1bf54f5\u003c/code\u003e\u003c/a\u003e Update Rust crate serde-saphyr to 0.0.25 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2036\"\u003e#2036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/8c9761a523bcb180ff35fcfcd8e85184f87eaceb\"\u003e\u003ccode\u003e8c9761a\u003c/code\u003e\u003c/a\u003e Bump rand to 0.9.4 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/2040\"\u003e#2040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.3.9...v0.3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.21.2 to 10.21.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.21.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix regression that allows a snippet to be loaded outside of the base path using directory traversal when\n\u003ccode\u003erestrict_base_path\u003c/code\u003e is enabled (the default). Found by \u003ca href=\"https://github.com/gistrec\"\u003e\u003ccode\u003e@​gistrec\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/42628414c6591b1a1ce211157090783e3b2242d6\"\u003e\u003ccode\u003e4262841\u003c/code\u003e\u003c/a\u003e Fix spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/63b7835776d703d6c339cf2110d9888f676efc0c\"\u003e\u003ccode\u003e63b7835\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/3d185501daaa1424c4a8d42124112c44ef6ab635\"\u003e\u003ccode\u003e3d18550\u003c/code\u003e\u003c/a\u003e Docs: update js deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.21.2...10.21.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zensical` from 0.0.33 to 0.0.42\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/#reading-tabular-data\"\u003eintegrating tabular data\u003c/a\u003e as Markdown tables, covering the functionality of the \u003ca href=\"https://pypi.org/project/mkdocs-table-reader-plugin/\"\u003emkdocs-table-reader-plugin\u003c/a\u003e, as well as the \u003ca href=\"https://zensical.org/docs/setup/basics/#watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/\"\u003emacros\u003c/a\u003e, which we shipped in \u003ca href=\"https://github.com/zensical/zensical/releases/tag/v0.0.40\"\u003e0.0.40\u003c/a\u003e. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAdditionally, the stability of link \u003ca href=\"https://zensical.org/docs/setup/validation/\"\u003evalidation\u003c/a\u003e has been drastically improved, reducing the rate of false positives. We're working on support for validating links using \u003ca href=\"https://mkdocstrings.github.io/autorefs/\"\u003eautorefs\u003c/a\u003e, which we'll provide in one of the next versions.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ed24ea24 \u003cstrong\u003ecompat\u003c/strong\u003e – support table reader functionality\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/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/cdee1e8bc77e83ebbb089cab0b5a0984cc6305cc\"\u003e\u003ccode\u003ecdee1e8\u003c/code\u003e\u003c/a\u003e fix: disabling link validation doesn't disable link and reference collection ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a5d97abe0bc15b10e4656767de658daab59c759\"\u003e\u003ccode\u003e7a5d97a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/680\"\u003e#680\u003c/a\u003e from zensical/fix/validation-edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/4355dad3ce47a0e647e2187a770a2b9b0b2d502e\"\u003e\u003ccode\u003e4355dad\u003c/code\u003e\u003c/a\u003e fix: harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a418c6bd3c62673e91df01690fd9eccafe262041\"\u003e\u003ccode\u003ea418c6b\u003c/code\u003e\u003c/a\u003e fix: link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/b31dd1472c091891ee6a87cb46e8313cf3dde9be\"\u003e\u003ccode\u003eb31dd14\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/17c67a2f62181c85220275e8f87c5985135bd62f\"\u003e\u003ccode\u003e17c67a2\u003c/code\u003e\u003c/a\u003e fix: remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6eb2f4d942e79e6f48f772fa16dcddc6e6dbb4eb\"\u003e\u003ccode\u003e6eb2f4d\u003c/code\u003e\u003c/a\u003e fix: reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a5a864178ccd0616e5aea56b66f8ce6b031ce50b\"\u003e\u003ccode\u003ea5a8641\u003c/code\u003e\u003c/a\u003e fix: only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.33...v0.0.42\"\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/OlegZv/machineq/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlegZv%2Fmachineq/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"}},{"old_version":"0.0.23","new_version":"0.0.42","update_type":"patch","path":null,"pr_created_at":"2026-05-19T02:06:29.000Z","version_change":"0.0.23 → 0.0.42","issue":{"uuid":"4473859387","node_id":"PR_kwDOABR-A87c45-k","number":21,"state":"closed","title":"chore(deps): bump zensical from 0.0.23 to 0.0.42","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T22:32:04.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T02:06:29.000Z","updated_at":"2026-05-25T22:32:06.000Z","time_to_close":591935,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"zensical","old_version":"0.0.23","new_version":"0.0.42","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.23 to 0.0.42.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/#reading-tabular-data\"\u003eintegrating tabular data\u003c/a\u003e as Markdown tables, covering the functionality of the \u003ca href=\"https://pypi.org/project/mkdocs-table-reader-plugin/\"\u003emkdocs-table-reader-plugin\u003c/a\u003e, as well as the \u003ca href=\"https://zensical.org/docs/setup/basics/#watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/\"\u003emacros\u003c/a\u003e, which we shipped in \u003ca href=\"https://github.com/zensical/zensical/releases/tag/v0.0.40\"\u003e0.0.40\u003c/a\u003e. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAdditionally, the stability of link \u003ca href=\"https://zensical.org/docs/setup/validation/\"\u003evalidation\u003c/a\u003e has been drastically improved, reducing the rate of false positives. We're working on support for validating links using \u003ca href=\"https://mkdocstrings.github.io/autorefs/\"\u003eautorefs\u003c/a\u003e, which we'll provide in one of the next versions.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ed24ea24 \u003cstrong\u003ecompat\u003c/strong\u003e – support table reader functionality\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/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/cdee1e8bc77e83ebbb089cab0b5a0984cc6305cc\"\u003e\u003ccode\u003ecdee1e8\u003c/code\u003e\u003c/a\u003e fix: disabling link validation doesn't disable link and reference collection ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a5d97abe0bc15b10e4656767de658daab59c759\"\u003e\u003ccode\u003e7a5d97a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/680\"\u003e#680\u003c/a\u003e from zensical/fix/validation-edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/4355dad3ce47a0e647e2187a770a2b9b0b2d502e\"\u003e\u003ccode\u003e4355dad\u003c/code\u003e\u003c/a\u003e fix: harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a418c6bd3c62673e91df01690fd9eccafe262041\"\u003e\u003ccode\u003ea418c6b\u003c/code\u003e\u003c/a\u003e fix: link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/b31dd1472c091891ee6a87cb46e8313cf3dde9be\"\u003e\u003ccode\u003eb31dd14\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/17c67a2f62181c85220275e8f87c5985135bd62f\"\u003e\u003ccode\u003e17c67a2\u003c/code\u003e\u003c/a\u003e fix: remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6eb2f4d942e79e6f48f772fa16dcddc6e6dbb4eb\"\u003e\u003ccode\u003e6eb2f4d\u003c/code\u003e\u003c/a\u003e fix: reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a5a864178ccd0616e5aea56b66f8ce6b031ce50b\"\u003e\u003ccode\u003ea5a8641\u003c/code\u003e\u003c/a\u003e fix: only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.23...v0.0.42\"\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=zensical\u0026package-manager=uv\u0026previous-version=0.0.23\u0026new-version=0.0.42)](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/mbainter/mbainter.github.io/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbainter%2Fmbainter.github.io/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"0.0.36","new_version":"0.0.42","update_type":"patch","path":null,"pr_created_at":"2026-05-17T02:19:19.000Z","version_change":"0.0.36 → 0.0.42","issue":{"uuid":"4462005905","node_id":"PR_kwDOSNSaVM7cTnIW","number":8,"state":"closed","title":"Bump zensical from 0.0.36 to 0.0.42","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-24T02:18:39.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-17T02:19:19.000Z","updated_at":"2026-05-24T02:18:40.000Z","time_to_close":604760,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"zensical","old_version":"0.0.36","new_version":"0.0.42","repository_url":"https://github.com/zensical/zensical"}],"path":null,"ecosystem":"pip"},"body":"Bumps [zensical](https://github.com/zensical/zensical) from 0.0.36 to 0.0.42.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zensical/zensical/releases\"\u003ezensical's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.42\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version includes a number of bug fixes and refactorings to improve the stability and accuracy of link validation, and fixes a reload loop when the \u003ccode\u003ecustom_dir\u003c/code\u003e, which is auto-watched, is explicitly added to \u003ccode\u003ewatch\u003c/code\u003e. Moreover, GLightbox is now only downloaded when needed, which fixes an issue when using Zensical in air-gapped environments.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6b54e14 \u003cstrong\u003eui\u003c/strong\u003e – update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003ecdee1e8 \u003cstrong\u003ezensical\u003c/strong\u003e – disabling link validation doesn't disable link and reference collection (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4355dad \u003cstrong\u003ecompat\u003c/strong\u003e – harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003ea418c6b \u003cstrong\u003ecompat\u003c/strong\u003e – link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003eb31dd14 \u003cstrong\u003ecompat\u003c/strong\u003e – \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e17c67a2 \u003cstrong\u003ecompat\u003c/strong\u003e – remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e6eb2f4d \u003cstrong\u003ecompat\u003c/strong\u003e – reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ea5a8641 \u003cstrong\u003ezensical\u003c/strong\u003e – only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e8207554 \u003cstrong\u003ecompat\u003c/strong\u003e – don't consider \u003ccode\u003e[]\u003c/code\u003e and \u003ccode\u003e[][]\u003c/code\u003e link references (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec338b27 \u003cstrong\u003ecompat\u003c/strong\u003e – two backticks with no closing run trip up link parser  (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/663\"\u003e#663\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ed707aa9 \u003cstrong\u003ecompat\u003c/strong\u003e – prevent reload loop by de-duplicating watched theme files (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactorings\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e53f593f \u003cstrong\u003ecompat\u003c/strong\u003e – avoid mutating configurations list\u003c/li\u003e\n\u003cli\u003ea77087a \u003cstrong\u003ecompat\u003c/strong\u003e – reorganize config module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.41\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis version adds support for \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/#reading-tabular-data\"\u003eintegrating tabular data\u003c/a\u003e as Markdown tables, covering the functionality of the \u003ca href=\"https://pypi.org/project/mkdocs-table-reader-plugin/\"\u003emkdocs-table-reader-plugin\u003c/a\u003e, as well as the \u003ca href=\"https://zensical.org/docs/setup/basics/#watch\"\u003e\u003ccode\u003ewatch\u003c/code\u003e\u003c/a\u003e option to automatically rebuild on changes in unmonitored files. Table reading is implemented as part of \u003ca href=\"https://zensical.org/docs/setup/extensions/macros/\"\u003emacros\u003c/a\u003e, which we shipped in \u003ca href=\"https://github.com/zensical/zensical/releases/tag/v0.0.40\"\u003e0.0.40\u003c/a\u003e. You can now embed CSV and other file formats with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{{ read_csv(\u0026quot;data/team.csv\u0026quot;) }}\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAdditionally, the stability of link \u003ca href=\"https://zensical.org/docs/setup/validation/\"\u003evalidation\u003c/a\u003e has been drastically improved, reducing the rate of false positives. We're working on support for validating links using \u003ca href=\"https://mkdocstrings.github.io/autorefs/\"\u003eautorefs\u003c/a\u003e, which we'll provide in one of the next versions.\u003c/p\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ed24ea24 \u003cstrong\u003ecompat\u003c/strong\u003e – support table reader functionality\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/zensical/zensical/commit/7a141c5678ebcedb05e8b4be8f8d6f8bce990943\"\u003e\u003ccode\u003e7a141c5\u003c/code\u003e\u003c/a\u003e chore: release v0.0.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6b54e140c8a40fc6328a8dd4bbf87629fa1a8c87\"\u003e\u003ccode\u003e6b54e14\u003c/code\u003e\u003c/a\u003e fix: update ui to v0.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/cdee1e8bc77e83ebbb089cab0b5a0984cc6305cc\"\u003e\u003ccode\u003ecdee1e8\u003c/code\u003e\u003c/a\u003e fix: disabling link validation doesn't disable link and reference collection ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/7a5d97abe0bc15b10e4656767de658daab59c759\"\u003e\u003ccode\u003e7a5d97a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/zensical/zensical/issues/680\"\u003e#680\u003c/a\u003e from zensical/fix/validation-edge-cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/4355dad3ce47a0e647e2187a770a2b9b0b2d502e\"\u003e\u003ccode\u003e4355dad\u003c/code\u003e\u003c/a\u003e fix: harden link validation for files with CRLF line endings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a418c6bd3c62673e91df01690fd9eccafe262041\"\u003e\u003ccode\u003ea418c6b\u003c/code\u003e\u003c/a\u003e fix: link validation doesn't ignore fenced code blocks when \u003ccode\u003e\\r\u003c/code\u003e is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/b31dd1472c091891ee6a87cb46e8313cf3dde9be\"\u003e\u003ccode\u003eb31dd14\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003e$\u003c/code\u003e at end of line breaks link validation (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/17c67a2f62181c85220275e8f87c5985135bd62f\"\u003e\u003ccode\u003e17c67a2\u003c/code\u003e\u003c/a\u003e fix: remove abbreviations from table of contents (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/6eb2f4d942e79e6f48f772fa16dcddc6e6dbb4eb\"\u003e\u003ccode\u003e6eb2f4d\u003c/code\u003e\u003c/a\u003e fix: reserve theme name \u003ccode\u003ezensical\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zensical/zensical/commit/a5a864178ccd0616e5aea56b66f8ce6b031ce50b\"\u003e\u003ccode\u003ea5a8641\u003c/code\u003e\u003c/a\u003e fix: only wait for config update after a first successful build (\u003ca href=\"https://redirect.github.com/zensical/zensical/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zensical/zensical/compare/v0.0.36...v0.0.42\"\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=zensical\u0026package-manager=pip\u0026previous-version=0.0.36\u0026new-version=0.0.42)](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/pacharanero/bishopswharfyork.com/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacharanero%2Fbishopswharfyork.com/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}}]}