{"id":6255,"name":"jbuilder","ecosystem":"rubygems","repository_url":"https://github.com/rails/jbuilder","issues_count":6310,"created_at":"2025-06-06T22:01:52.004Z","updated_at":"2025-06-06T22:01:52.004Z","purl":"pkg:gem/jbuilder","metadata":{"id":233289,"name":"jbuilder","ecosystem":"rubygems","description":"Create JSON structures via a Builder-style DSL","homepage":"https://github.com/rails/jbuilder","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/rails/jbuilder","keywords_array":[],"namespace":null,"versions_count":85,"first_release_published_at":"2011-11-30T18:32:12.861Z","latest_release_published_at":"2024-09-15T14:37:16.264Z","latest_release_number":"2.13.0","last_synced_at":"2025-06-07T02:07:04.235Z","created_at":"2022-04-06T01:48:02.676Z","updated_at":"2025-06-07T02:08:04.899Z","registry_url":"https://rubygems.org/gems/jbuilder","install_command":"gem install jbuilder -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/jbuilder/","metadata":{"funding":null},"repo_metadata":{"id":1932363,"uuid":"2861056","full_name":"rails/jbuilder","owner":"rails","description":"Jbuilder: generate JSON objects with a Builder-style DSL","archived":false,"fork":false,"pushed_at":"2025-04-04T00:14:28.000Z","size":647,"stargazers_count":4376,"open_issues_count":57,"forks_count":440,"subscribers_count":85,"default_branch":"main","last_synced_at":"2025-06-03T12:15:26.896Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-11-27T14:02:35.000Z","updated_at":"2025-06-02T22:21:22.000Z","dependencies_parsed_at":"2024-11-06T06:05:01.302Z","dependency_job_id":"7a8f1f51-3ad8-441c-af18-7df8eb8f5aeb","html_url":"https://github.com/rails/jbuilder","commit_stats":{"total_commits":630,"total_committers":147,"mean_commits":4.285714285714286,"dds":0.6111111111111112,"last_synced_commit":"9aa3dd9d0e8142d58108ea00fdcc6cabda1df18d"},"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258326225,"owners_count":22683585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"rails","name":"Ruby on Rails","uuid":"4223","kind":"organization","description":"","email":null,"website":"https://rubyonrails.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4223?v=4","repositories_count":116,"last_synced_at":"2023-04-09T03:40:20.529Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails","funding_links":[],"total_stars":114333,"followers":null,"following":null,"created_at":"2022-11-02T16:17:13.297Z","updated_at":"2023-04-09T03:40:20.550Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails/repositories"},"tags":[{"name":"v2.13.0","sha":"9aa3dd9d0e8142d58108ea00fdcc6cabda1df18d","kind":"commit","published_at":"2024-09-15T14:36:46.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.13.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.13.0/manifests"},{"name":"v2.12.0","sha":"080ce0b4d142715e1b6ba5ae3735b440ef9020a4","kind":"commit","published_at":"2024-04-29T00:50:27.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.12.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.12.0/manifests"},{"name":"v2.11.5","sha":"c6bda15cbfab1319e6449cb267522278396f73ba","kind":"tag","published_at":"2021-12-21T04:03:39.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.11.5","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.11.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.5/manifests"},{"name":"v2.11.4","sha":"a87fad364c2df58560c57c4780c0bc9d762e0cd0","kind":"commit","published_at":"2021-12-17T14:29:21.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.11.4","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.11.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.4/manifests"},{"name":"v2.11.3","sha":"1d64c439c3f3beccff7c4aef5f65396d430d938f","kind":"commit","published_at":"2021-11-14T14:40:05.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.11.3","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.3/manifests"},{"name":"v2.11.2","sha":"c0813f487c36d9a80ac8a14c35a06db725c25475","kind":"commit","published_at":"2021-01-27T12:36:24.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.11.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.2/manifests"},{"name":"v2.11.1","sha":"52efea7083f79e5380826b51a4bc05b998ac843b","kind":"commit","published_at":"2021-01-24T09:42:34.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.11.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.1/manifests"},{"name":"v2.11.0","sha":"153656dc88a39432a14be914b60074a17b56422e","kind":"commit","published_at":"2021-01-22T16:04:07.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.11.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.11.0/manifests"},{"name":"v2.10.2","sha":"f6898db1897a8da9354d9359e9958ff44752fa44","kind":"commit","published_at":"2021-01-22T15:17:56.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.10.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.10.2/manifests"},{"name":"v2.10.1","sha":"07d31ca6b8791b1767f9186a372ae3d3cbf16cf5","kind":"tag","published_at":"2020-09-12T14:41:21.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.10.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.10.1/manifests"},{"name":"v2.10.0","sha":"e0ac4a1f2fa3d22f9f3bb94194ed499ca91cf40e","kind":"tag","published_at":"2020-02-10T01:41:10.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.10.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.10.0/manifests"},{"name":"v2.9.1","sha":"821f514741a3e9102082a6e98eb59a08671f75d0","kind":"commit","published_at":"2019-05-14T17:38:48.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.9.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.9.1/manifests"},{"name":"v2.9.0","sha":"08b123593d3ff275f68e851757086da8a4840823","kind":"commit","published_at":"2019-05-13T15:49:05.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.9.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.9.0/manifests"},{"name":"v2.8.0","sha":"8ee1586b6c022c8e42f1f9814542bfd3d8a6c50f","kind":"tag","published_at":"2019-04-18T11:04:08.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.8.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.8.0/manifests"},{"name":"v2.7.0","sha":"eb5d37636fe3d7b2e3f01202ba3fd74693e1405e","kind":"commit","published_at":"2017-06-05T10:07:15.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.7.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.7.0/manifests"},{"name":"v2.6.4","sha":"6627fd25496f06baca3a16fa4bbd9f2e80fdb409","kind":"commit","published_at":"2017-05-10T16:20:43.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.6.4","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.4/manifests"},{"name":"v2.6.3","sha":"333396e3618150c4c3352a6bf330168646458530","kind":"tag","published_at":"2017-02-24T02:45:14.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.6.3","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.3/manifests"},{"name":"v2.6.2","sha":"02fc9c8110e5fcfe4ab5b7b0fd17e1dd8f052174","kind":"tag","published_at":"2017-02-22T03:39:18.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.6.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.2/manifests"},{"name":"v2.6.1","sha":"801df9e828dafc4a5289feeee2612edf5fe7ffb3","kind":"commit","published_at":"2016-11-28T12:37:52.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.6.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.1/manifests"},{"name":"v2.6.0","sha":"003a369f7432c7173d00c453484ae11f1c952a15","kind":"tag","published_at":"2016-07-20T22:55:51.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.6.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.6.0/manifests"},{"name":"v2.5.0","sha":"b56455bf1ff080a5616bf17b91721836a8ec2482","kind":"tag","published_at":"2016-05-30T21:10:24.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.5.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.5.0/manifests"},{"name":"v2.4.1","sha":"02757012f035d25d1f068e5f525a14f8126f28ab","kind":"tag","published_at":"2016-02-09T06:33:18.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.4.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.4.1/manifests"},{"name":"v2.4.0","sha":"690c13b83d900232a4e44322846e33922b30a9db","kind":"tag","published_at":"2015-12-27T08:29:52.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.4.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.4.0/manifests"},{"name":"v2.3.2","sha":"86fb406a512817ca1ada99a2b3e3f9b9cfb5d03e","kind":"tag","published_at":"2015-09-30T18:31:43.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.3.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.3.2/manifests"},{"name":"v2.3.1","sha":"83fb774d9ef269d6f408dd3388d1c8cba9374b77","kind":"tag","published_at":"2015-07-06T02:48:09.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.3.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"0557fd466476b66e73cbfc8c765c37167e9287fc","kind":"tag","published_at":"2015-06-15T07:21:03.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.3.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.3.0/manifests"},{"name":"v2.2.16","sha":"9b06899ea8f37afd7c0a69912384029b98fa8113","kind":"tag","published_at":"2015-05-18T04:31:21.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.16","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.16/manifests"},{"name":"v2.2.15","sha":"28c67d21f90bb089daa5191f9ba5e90915ec70e8","kind":"tag","published_at":"2015-05-18T03:26:37.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.15","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.15/manifests"},{"name":"v2.2.14","sha":"423a493e63db128960300fdf1117d8f2babd2f8c","kind":"tag","published_at":"2015-05-17T21:31:38.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.14","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.14/manifests"},{"name":"v2.2.13","sha":"c62904c968c38278dd8ecd5b4dd744622b821398","kind":"tag","published_at":"2015-04-10T18:33:37.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.13","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.13/manifests"},{"name":"v2.2.12","sha":"a6b829cb52905e3eb33293f2ca0c0c94534b4aa9","kind":"tag","published_at":"2015-03-20T04:23:14.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.12","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.12/manifests"},{"name":"v2.2.11","sha":"15625fda624540d916ae1a3e6d6082eb5a1d63c0","kind":"tag","published_at":"2015-03-07T05:48:34.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.11","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.11/manifests"},{"name":"v2.2.10","sha":"80ae387a90ab5a08d9ef859e416104c5e906736b","kind":"tag","published_at":"2015-03-06T20:49:54.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.10","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.10/manifests"},{"name":"v2.2.9","sha":"731b47663132fd68bd41df15d54c93dae478de94","kind":"tag","published_at":"2015-03-03T03:30:17.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.9","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.9/manifests"},{"name":"v2.2.8","sha":"baa7a66f948fc2cb9a8ce5f62713eeeb5b979568","kind":"tag","published_at":"2015-02-22T05:54:27.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.8","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.8/manifests"},{"name":"v2.2.7","sha":"bb35edc7f420217a655a014800289d90bae70c3f","kind":"tag","published_at":"2015-02-15T04:10:00.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.7","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.7/manifests"},{"name":"v2.2.6","sha":"ce5ff2f5bd332292a3d6d6c0afc6aaeaa439be87","kind":"tag","published_at":"2014-12-18T02:55:38.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.6","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.6/manifests"},{"name":"v2.2.5","sha":"85d543f2a242e56d42c6ae88f6354e686bc1731f","kind":"tag","published_at":"2014-11-15T23:55:00.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.5","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.5/manifests"},{"name":"v2.2.4","sha":"086a011f5f592c24ab88b05b2ae4d65104438ea4","kind":"tag","published_at":"2014-10-25T00:34:30.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.4","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.4/manifests"},{"name":"v2.2.3","sha":"c1d532679f14e2e0747cea24087f550429376edd","kind":"tag","published_at":"2014-10-18T18:54:30.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.3","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.3/manifests"},{"name":"v2.2.2","sha":"0358aa0478dab34229ef8cd1e4a56421924bd82b","kind":"tag","published_at":"2014-10-08T04:24:19.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.2/manifests"},{"name":"v2.2.1","sha":"a21523476f8addc0703780a348ef703aeecf0feb","kind":"tag","published_at":"2014-10-07T02:40:35.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"ef278adc0011b95787dea9885c2cda4cf07bada8","kind":"tag","published_at":"2014-10-06T00:17:11.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.2.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.2.0/manifests"},{"name":"v2.1.3","sha":"f358fa626cb2882bc655390c73573460d0feaca6","kind":"tag","published_at":"2014-07-16T15:11:51.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.1.3","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.1.3/manifests"},{"name":"v2.1.2","sha":"f0ff7101d9534e91e669d2ba9d38126663676bff","kind":"tag","published_at":"2014-07-07T17:35:44.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.1.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"ca1a95b90d33961de037f0c4d48b4f7b9ae8cc8f","kind":"tag","published_at":"2014-06-16T14:05:14.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.1.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"52389e6a89e5434ca372e4cbcecb537ecb47e19b","kind":"tag","published_at":"2014-06-09T20:34:49.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.1.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.1.0/manifests"},{"name":"v2.0.8","sha":"f672a65ce2644fc736ba13bdcde6dca7867cc851","kind":"tag","published_at":"2014-06-06T18:52:18.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.8","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.8/manifests"},{"name":"v2.0.7","sha":"9b332330585a14c7b69a43ff76f4acdd7413ad39","kind":"tag","published_at":"2014-05-02T19:25:35.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.7","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.7/manifests"},{"name":"v2.0.6","sha":"0d63ed6ce8119b1842bfebe710993c987f23f48f","kind":"commit","published_at":"2014-04-08T18:55:12.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.6","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.6/manifests"},{"name":"v2.0.5","sha":"d27d0dba7ecdd57fca3445c9bdf38dfc00c6464d","kind":"tag","published_at":"2014-03-22T00:22:17.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.5","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.5/manifests"},{"name":"v2.0.4","sha":"64e0428128b0bb859f5b061c5f833a44553b87ce","kind":"tag","published_at":"2014-03-04T23:40:00.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.4","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.4/manifests"},{"name":"v2.0.3","sha":"92b1511307eca178f177e5dff78e1288994f40a1","kind":"tag","published_at":"2014-02-17T18:38:30.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.3","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.3/manifests"},{"name":"v2.0.2","sha":"2c51baa42ae3c7e40a372655cbcd194183f66cb0","kind":"tag","published_at":"2014-01-02T19:23:58.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.2/manifests"},{"name":"v2.0.1","sha":"5232a510021b4647974fd80257dfa53d59dd2d25","kind":"tag","published_at":"2013-12-22T04:11:06.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"073c4c7f066bc2931bd8da50a9b8227e1dc1ec5d","kind":"tag","published_at":"2013-12-20T15:04:36.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.0/manifests"},{"name":"v2.0.0.beta2","sha":"1e32d579a9618dd918cc3b80eab9685377ac4a5b","kind":"tag","published_at":"2013-12-03T16:55:03.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.0.beta2","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.0.beta2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.0.beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.0.beta2/manifests"},{"name":"v1.5.3","sha":"280c379b4c29be9a725efcb20d1c5e5da899efb8","kind":"tag","published_at":"2013-12-03T16:51:39.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.5.3","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.5.3/manifests"},{"name":"v2.0.0.beta","sha":"c2e7766672406dac1f376c27bb9977c3cbc6577d","kind":"tag","published_at":"2013-10-24T01:52:54.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v2.0.0.beta","html_url":"https://github.com/rails/jbuilder/releases/tag/v2.0.0.beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.0.beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v2.0.0.beta/manifests"},{"name":"v1.5.2","sha":"dd3b82e705d2c63003aa09187c60c7e11c2a9f56","kind":"tag","published_at":"2013-10-09T02:31:47.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.5.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.5.2/manifests"},{"name":"v1.5.1","sha":"ffcf5d67b6b0cfe650dc2e149d6d33feb15e536d","kind":"tag","published_at":"2013-08-24T15:51:30.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.5.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.5.1/manifests"},{"name":"v1.5.0","sha":"1725d704f816eaacc8502ad13aa15f2fad2699d0","kind":"tag","published_at":"2013-07-27T16:39:27.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.5.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.5.0/manifests"},{"name":"v1.4.2","sha":"a7403175fa80c5a5b640e3e8b0e338bf12182acc","kind":"tag","published_at":"2013-06-05T07:13:26.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.4.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.4.2/manifests"},{"name":"v1.4.1","sha":"7b62f15517a41096f7c6e7fbacd0a7a3252476b6","kind":"tag","published_at":"2013-05-12T11:41:41.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.4.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"61f2797757dc64aab39910a3a2c4be61b55fa2a9","kind":"tag","published_at":"2013-05-04T07:28:59.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.4.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"cc52e66288fa89d14c1cf5d3234fe43c2fa86d6e","kind":"tag","published_at":"2013-04-11T08:23:12.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.3.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.3.0/manifests"},{"name":"v1.2.1","sha":"892f620085a93dc70972e173f848528bfb11ac4f","kind":"tag","published_at":"2013-04-09T09:47:50.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.2.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"37188b3cefe0b78aad863a0854b85db47caae493","kind":"tag","published_at":"2013-03-25T05:08:44.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.2.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.2.0/manifests"},{"name":"v1.0.2","sha":"46068d190835a02164f9b4518cb990c8e13b7b8c","kind":"commit","published_at":"2013-01-11T14:53:51.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.0.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"35a2a2dfdc9da8b9cedff75f1b8a0cb8f11480a8","kind":"commit","published_at":"2013-01-10T20:09:59.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.0.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"70cca0cf093e6b068be97c218959d093a89138b8","kind":"commit","published_at":"2013-01-10T18:08:24.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v1.0.0","html_url":"https://github.com/rails/jbuilder/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v1.0.0/manifests"},{"name":"v0.9.1","sha":"9ef54c611000f07fc1911daa3effaacf9cc2e4a2","kind":"commit","published_at":"2012-12-20T11:25:07.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v0.9.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v0.9.1/manifests"},{"name":"v0.3.2","sha":"46679c6a2b152d4feaae02b9d0cf2064cf32119c","kind":"commit","published_at":"2012-01-23T13:27:43.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v0.3.2","html_url":"https://github.com/rails/jbuilder/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"667571ef225233ea1dc771ed08db01c4bef47178","kind":"commit","published_at":"2012-01-23T08:19:45.000Z","download_url":"https://codeload.github.com/rails/jbuilder/tar.gz/v0.3.1","html_url":"https://github.com/rails/jbuilder/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fjbuilder/tags/v0.3.1/manifests"}]},"repo_metadata_updated_at":"2025-06-07T02:08:04.899Z","dependent_packages_count":249,"downloads":246601116,"downloads_period":"total","dependent_repos_count":609213,"rankings":{"downloads":0.08585988113424248,"dependent_repos_count":0.02341633121842977,"dependent_packages_count":0.16447185022468527,"stargazers_count":0.31110268618770975,"forks_count":1.2795352415784838,"docker_downloads_count":0.9857160379567579,"average":0.47501700471671815},"purl":"pkg:gem/jbuilder","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/jbuilder","docker_dependents_count":640,"docker_downloads_count":99291587,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/jbuilder","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/jbuilder/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/jbuilder/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/jbuilder/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/jbuilder/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/jbuilder/related_packages","maintainers":[{"uuid":"43492","login":"jhawthorn","name":null,"email":null,"url":null,"packages_count":136,"html_url":"https://rubygems.org/profiles/jhawthorn","role":null,"created_at":"2022-11-09T09:36:40.737Z","updated_at":"2022-11-09T09:36:40.737Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jhawthorn/packages"},{"uuid":"207","login":"tenderlove","name":null,"email":null,"url":null,"packages_count":183,"html_url":"https://rubygems.org/profiles/tenderlove","role":null,"created_at":"2022-11-09T09:36:40.827Z","updated_at":"2022-11-09T09:36:40.827Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/tenderlove/packages"},{"uuid":"54617","login":"kamipo","name":null,"email":null,"url":null,"packages_count":61,"html_url":"https://rubygems.org/profiles/kamipo","role":null,"created_at":"2022-11-09T09:36:40.719Z","updated_at":"2022-11-09T09:36:40.719Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/kamipo/packages"},{"uuid":"46413","login":"byroot","name":null,"email":null,"url":null,"packages_count":104,"html_url":"https://rubygems.org/profiles/byroot","role":null,"created_at":"2022-11-09T09:36:40.761Z","updated_at":"2022-11-09T09:36:40.761Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/byroot/packages"},{"uuid":"1550","login":"webster132","name":null,"email":null,"url":null,"packages_count":95,"html_url":"https://rubygems.org/profiles/webster132","role":null,"created_at":"2022-11-09T09:36:40.783Z","updated_at":"2022-11-09T09:36:40.783Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/webster132/packages"},{"uuid":"43998","login":"guilleiguaran","name":null,"email":null,"url":null,"packages_count":85,"html_url":"https://rubygems.org/profiles/guilleiguaran","role":null,"created_at":"2022-11-09T09:36:40.878Z","updated_at":"2022-11-09T09:36:40.878Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/guilleiguaran/packages"},{"uuid":"32977","login":"fxn","name":null,"email":null,"url":null,"packages_count":61,"html_url":"https://rubygems.org/profiles/fxn","role":null,"created_at":"2022-11-09T09:36:40.869Z","updated_at":"2022-11-09T09:36:40.869Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/fxn/packages"},{"uuid":"429","login":"cantoniodasilva","name":null,"email":null,"url":null,"packages_count":67,"html_url":"https://rubygems.org/profiles/cantoniodasilva","role":null,"created_at":"2022-11-09T09:36:40.850Z","updated_at":"2022-11-09T09:36:40.850Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/cantoniodasilva/packages"},{"uuid":"47349","login":"rafaelfranca","name":null,"email":null,"url":null,"packages_count":120,"html_url":"https://rubygems.org/profiles/rafaelfranca","role":null,"created_at":"2022-11-09T09:36:40.820Z","updated_at":"2022-11-09T09:36:40.820Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/rafaelfranca/packages"},{"uuid":"337","login":"jeremydaer","name":null,"email":null,"url":null,"packages_count":81,"html_url":"https://rubygems.org/profiles/jeremydaer","role":null,"created_at":"2022-11-09T09:36:40.885Z","updated_at":"2022-11-09T09:36:40.885Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jeremydaer/packages"},{"uuid":"528","login":"matthewd","name":null,"email":null,"url":null,"packages_count":66,"html_url":"https://rubygems.org/profiles/matthewd","role":null,"created_at":"2022-11-09T09:36:40.899Z","updated_at":"2022-11-09T09:36:40.899Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/matthewd/packages"},{"uuid":"96878","login":"eileencodes","name":null,"email":null,"url":null,"packages_count":51,"html_url":"https://rubygems.org/profiles/eileencodes","role":null,"created_at":"2022-11-09T09:36:40.907Z","updated_at":"2022-11-09T09:36:40.907Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/eileencodes/packages"},{"uuid":"42995","login":"rwz","name":null,"email":null,"url":null,"packages_count":21,"html_url":"https://rubygems.org/profiles/rwz","role":null,"created_at":"2022-11-09T09:36:40.805Z","updated_at":"2022-11-09T09:36:40.805Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/rwz/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":198121,"maintainers_count":66429,"namespaces_count":0,"keywords_count":17804,"github":"rubygems","metadata":{"funded_packages_count":7046},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2025-06-07T05:38:31.497Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}},"unique_repositories_count":4308,"unique_repositories_count_past_30_days":2,"recent_issues":[{"uuid":"5940475177","node_id":"PR_kwDOQTePMc8AAAABJiJrsw","number":20,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":true,"comments_count":1,"pull_request":true,"closed_at":"2026-10-20T11:03:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-20T11:00:03.000Z","updated_at":"2026-10-20T11:03:27.000Z","time_to_close":194,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/joaotorres/avocado/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotorres%2Favocado/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"5582461986","node_id":"PR_kwDOB4ZGwM8AAAABFG1xow","number":343,"state":"open","title":"Bump the ruby-dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-25T11:58:24.000Z","updated_at":"2026-09-25T11:58:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-dependencies","update_count":34,"packages":[{"name":"sqlite3","old_version":"1.6.1","new_version":"2.9.6","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"puma","old_version":"6.6.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"turbo-rails","old_version":"1.4.0","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"jbuilder","old_version":"2.11.5","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"config","old_version":"4.1.0","new_version":"5.6.1","repository_url":"https://github.com/rubyconfig/config"},{"name":"google-apis-analyticsdata_v1beta","old_version":"0.32.0","new_version":"0.41.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.17.4","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"rails","old_version":"7.2.3.2","new_version":"7.2.4","repository_url":"https://github.com/rails/rails"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.257.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.17.4","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"devise","old_version":"5.0.3","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"jquery-rails","old_version":"4.5.1","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"aws-sdk-rails","old_version":"3.7.1","new_version":"5.2.0","repository_url":"https://github.com/aws/aws-sdk-rails"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.257.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-s3","old_version":"1.216.0","new_version":"1.232.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"rails-html-sanitizer","old_version":"1.7.0","new_version":"1.7.1","repository_url":"https://github.com/rails/rails-html-sanitizer"},{"name":"sprockets","old_version":"3.7.2","new_version":"4.4.1","repository_url":"https://github.com/rails/sprockets"},{"name":"rubyzip","old_version":"2.3.2","new_version":"3.7.0","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"ffi","old_version":"1.15.5","new_version":"1.17.4","repository_url":"https://github.com/ffi/ffi"},{"name":"nokogiri","old_version":"1.18.10","new_version":"1.19.4","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"loofah","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/flavorjones/loofah"},{"name":"rack","old_version":"2.2.23","new_version":"3.2.7","repository_url":"https://github.com/rack/rack"},{"name":"globalid","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/rails/globalid"},{"name":"net-imap","old_version":"0.5.15","new_version":"0.6.7","repository_url":"https://github.com/ruby/net-imap"},{"name":"faraday","old_version":"2.14.3","new_version":"2.14.4","repository_url":"https://github.com/lostisland/faraday"},{"name":"json","old_version":"2.19.3","new_version":"3.0.2","repository_url":"https://github.com/ruby/json"},{"name":"sentry-ruby","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"pg","old_version":"1.4.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"byebug","old_version":"11.1.3","new_version":"13.0.0","repository_url":"https://github.com/deivid-rodriguez/byebug"},{"name":"capybara","old_version":"3.38.0","new_version":"3.40.0","repository_url":"https://github.com/teamcapybara/capybara"},{"name":"selenium-webdriver","old_version":"4.8.1","new_version":"4.49.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rspec-rails","old_version":"6.0.4","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"web-console","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/rails/web-console"},{"name":"listen","old_version":"3.8.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.1.1","new_version":"4.7.0","repository_url":"https://github.com/rails/spring"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `1.6.1` | `2.9.6` |\n| [puma](https://github.com/puma/puma) | `6.6.1` | `8.0.2` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `1.4.0` | `2.0.23` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.11.5` | `2.15.1` |\n| [config](https://github.com/rubyconfig/config) | `4.1.0` | `5.6.1` |\n| [google-apis-analyticsdata_v1beta](https://github.com/googleapis/google-api-ruby-client) | `0.32.0` | `0.41.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.17.4` |\n| [rails](https://github.com/rails/rails) | `7.2.3.2` | `7.2.4` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.257.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.17.4` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.3` | `5.0.4` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.5.1` | `4.6.1` |\n| [aws-sdk-rails](https://github.com/aws/aws-sdk-rails) | `3.7.1` | `5.2.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.257.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.216.0` | `1.232.1` |\n| [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) | `1.7.0` | `1.7.1` |\n| [sprockets](https://github.com/rails/sprockets) | `3.7.2` | `4.4.1` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `2.3.2` | `3.7.0` |\n| [ffi](https://github.com/ffi/ffi) | `1.15.5` | `1.17.4` |\n| [nokogiri](https://github.com/sparklemotion/nokogiri) | `1.18.10` | `1.19.4` |\n| [loofah](https://github.com/flavorjones/loofah) | `2.25.1` | `2.25.2` |\n| [rack](https://github.com/rack/rack) | `2.2.23` | `3.2.7` |\n| [globalid](https://github.com/rails/globalid) | `1.3.0` | `1.4.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.15` | `0.6.7` |\n| [faraday](https://github.com/lostisland/faraday) | `2.14.3` | `2.14.4` |\n| [json](https://github.com/ruby/json) | `2.19.3` | `3.0.2` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [pg](https://github.com/ged/ruby-pg) | `1.4.6` | `1.6.3` |\n| [byebug](https://github.com/deivid-rodriguez/byebug) | `11.1.3` | `13.0.0` |\n| [capybara](https://github.com/teamcapybara/capybara) | `3.38.0` | `3.40.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.8.1` | `4.49.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.4` | `8.0.4` |\n| [web-console](https://github.com/rails/web-console) | `4.2.0` | `4.2.1` |\n| [listen](https://github.com/guard/listen) | `3.8.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.1.1` | `4.7.0` |\n\n\nUpdates `sqlite3` from 1.6.1 to 2.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003ed8b1f7d23efd7abac285775a9566562fc7debfef79d594e3a20354406fb7907c  gems/sqlite3-2.9.6-aarch64-linux-gnu.gem\r\n3579e1c98cdc7ff5c3722847bb63ed4e1efb7ff675cb5e1e48ef2d4da5fb3bc9  gems/sqlite3-2.9.6-aarch64-linux-musl.gem\r\n33541500e3615da02afe54a9cc38b17a6985d3cf9d8b76d6d0a83002f114e7ec  gems/sqlite3-2.9.6-arm-linux-gnu.gem\r\nc5490af48bb228fefa54314e9541375c3907e70f8109f3881b5ff97e1c93ae33  gems/sqlite3-2.9.6-arm-linux-musl.gem\r\n849b5d7f795e60fe25076d62c72dd722beb45b3850b516ad978d60ee848ec15b  gems/sqlite3-2.9.6-arm64-darwin.gem\r\n1f2b88f417fd0a8c1d5ef19c7e817d8b9c61bee6e33b6b36255fb6e40148e6f8  gems/sqlite3-2.9.6-x64-mingw-ucrt.gem\r\nfbaa9f46f9708f57dd8a459b37fc269f9613e0cacf1547df01aa439cc45c20c0  gems/sqlite3-2.9.6-x86-linux-gnu.gem\r\n6715026fbb5530e810b28ef43b9c4f84cd3c991f67b9d808a31fcc32b847abbd  gems/sqlite3-2.9.6-x86-linux-musl.gem\r\nb5842fea77781c14da03fa7bc0feb82db03a69e135affcb6f5399cbd2797a5f3  gems/sqlite3-2.9.6-x86_64-darwin.gem\r\n613188ce02f614126ddbc38c5e217ccffd6306d0dcd9adca9764547aa890a634  gems/sqlite3-2.9.6-x86_64-linux-gnu.gem\r\nd493b11818a3573387a1d56e1ee8fa00da23a683a7a1cc063e7a0feeed843abf  gems/sqlite3-2.9.6-x86_64-linux-musl.gem\r\n956fe606956420d04ac7157d3ace620c8caba2135b2e05c76e483493da24d08e  gems/sqlite3-2.9.6.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e2.9.5 / 2026-06-07\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_3.html\"\u003ev3.53.2\u003c/a\u003e (from v3.53.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/709\"\u003e#709\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free issue with custom functions, when the same function name is used with multiple arities. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/710\"\u003e#710\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use-after-free issue with aggregate functions, if a statement is used after a soft database close. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/711\"\u003e#711\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\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/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.5 / 2026-06-07\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_3.html\"\u003ev3.53.2\u003c/a\u003e (from v3.53.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/709\"\u003e#709\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free issue with custom functions, when the same function name is used with multiple arities. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/710\"\u003e#710\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use-after-free issue with aggregate functions, if a statement is used after a soft database close. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/711\"\u003e#711\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.4 / 2026-05-05\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_1.html\"\u003ev3.53.1\u003c/a\u003e (from v3.53.0). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/704\"\u003e#704\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.3 / 2026-04-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_0.html\"\u003ev3.53.0\u003c/a\u003e (from v3.51.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/a52dc0d61351570eeff1a1ffb15054b795dfeebc\"\u003e\u003ccode\u003ea52dc0d\u003c/code\u003e\u003c/a\u003e version bump to v2.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/cc5ac0cdf05af8148f4363410da0ba32508d9c97\"\u003e\u003ccode\u003ecc5ac0c\u003c/code\u003e\u003c/a\u003e Root the aggregate argument array so GC cannot free live values (GHSA-mwm8-39...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/abcb0f60c777d29cc1c8ed37327cd164f90420f1\"\u003e\u003ccode\u003eabcb0f6\u003c/code\u003e\u003c/a\u003e Reject database filenames and VFS names containing NUL (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/1d86b7a46c842a5157cc1562f16ad6c8756004b4\"\u003e\u003ccode\u003e1d86b7a\u003c/code\u003e\u003c/a\u003e Raise when open_v2 or open16 is called on an open database (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/723017134144333bb782d96aeec82450ed5b5c87\"\u003e\u003ccode\u003e7230171\u003c/code\u003e\u003c/a\u003e Stop a raise inside a UDF block from deadlocking other threads (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/2677f9a7a81fc48e8df3ba668606f4c60bd6ad42\"\u003e\u003ccode\u003e2677f9a\u003c/code\u003e\u003c/a\u003e Pass TEXT values containing embedded NULs to UDFs intact (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/3de8f6ee30741bde839a98ce88b9023eac09c555\"\u003e\u003ccode\u003e3de8f6e\u003c/code\u003e\u003c/a\u003e doc: update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/ac6bd2f79598290a6625d413fd309a7ae2f85143\"\u003e\u003ccode\u003eac6bd2f\u003c/code\u003e\u003c/a\u003e Release aggregate instances when sqlite finishes with them (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/32460e99f0d82a2a966b84f37a73cdaab96652c1\"\u003e\u003ccode\u003e32460e9\u003c/code\u003e\u003c/a\u003e Stop sqlite calling into moved Ruby objects (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/f600993d286539411aa81f3b43d1c3678a63fd09\"\u003e\u003ccode\u003ef600993\u003c/code\u003e\u003c/a\u003e build(deps-dev): update rubocop-minitest requirement (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v1.6.1...v2.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.6.1 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.1 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.6.1...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 1.4.0 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\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/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.19\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in README.md by \u003ca href=\"https://github.com/brunocalmels\"\u003e\u003ccode\u003e@​brunocalmels\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/746\"\u003ehotwired/turbo-rails#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove compact call on locals in broadcast_rendering_with_defaults by \u003ca href=\"https://github.com/mathias234\"\u003e\u003ccode\u003e@​mathias234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/720\"\u003ehotwired/turbo-rails#720\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/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v1.4.0...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.11.5 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eJbuilder.encode\u003c/code\u003e properly forwards arguments to \u003ccode\u003e.new\u003c/code\u003e by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\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/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support to Ruby \u0026lt; 3.0 and Rails \u0026lt; 7.0\u003c/li\u003e\n\u003cli\u003eTest against Rails 8 and fix Rails 7 logger dependency by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/582\"\u003erails/jbuilder#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd status: :see_other to update action by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/583\"\u003erails/jbuilder#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce close final statement in templates by \u003ca href=\"https://github.com/ienders\"\u003e\u003ccode\u003e@​ienders\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/578\"\u003erails/jbuilder#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_is_collection?\u003c/code\u003e method by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/590\"\u003erails/jbuilder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e#frozen_string_literal: true\u003c/code\u003e to all files by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/599\"\u003erails/jbuilder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_key\u003c/code\u003e to prevent string allocation when formatting \u003ccode\u003eSymbol\u003c/code\u003es by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/593\"\u003erails/jbuilder#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize key formatter by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/597\"\u003erails/jbuilder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize internal \u003ccode\u003eextract!\u003c/code\u003e calls to save on memory allocation by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/598\"\u003erails/jbuilder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix regression in API controllers with view_cache_dependencies helper by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/575\"\u003erails/jbuilder#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003emethod_missing\u003c/code\u003e via \u003ccode\u003ealias_method\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/600\"\u003erails/jbuilder#600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup project for Rails 7+ support by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/594\"\u003erails/jbuilder#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix warnings and prevent Jbuilder::VERSION constant from being obliterated by \u003ca href=\"https://github.com/pixeltrix\"\u003e\u003ccode\u003e@​pixeltrix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/574\"\u003erails/jbuilder#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize memory allocation when rendering partials by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/591\"\u003erails/jbuilder#591\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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.11.5...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `config` from 4.1.0 to 5.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/releases\"\u003econfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e by \u003ca href=\"https://github.com/pkuczynski\"\u003e\u003ccode\u003e@​pkuczynski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003erubyconfig/config#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.6.0...5.6.1\"\u003ehttps://github.com/rubyconfig/config/compare/5.6.0...5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: added extra sources in initializer by \u003ca href=\"https://github.com/Nuzair46\"\u003e\u003ccode\u003e@​Nuzair46\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003erubyconfig/config#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.2...5.6.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.2...5.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\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/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.0...5.5.2\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.0...5.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables by \u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efunding_url\u003c/code\u003e rather than \u003ccode\u003epost_install_message\u003c/code\u003e by \u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\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/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.4.0...5.5.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.4.0...5.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\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/rubyconfig/config/blob/master/CHANGELOG.md\"\u003econfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace IO.read with File.read \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003e#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eextra_sources\u003c/code\u003e in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library with Ruby 3.3.5 and 3.4+ (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.1\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix funding_url to funding_uri in gemspec (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse funding_url rather than post_install_message (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent name collision with private methods from ancestors (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/8b6ffe6dcc91f52f06d5a1502333108d1c6033ca\"\u003e\u003ccode\u003e8b6ffe6\u003c/code\u003e\u003c/a\u003e release: 5.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/d639f9db7355195f1ea7d21ddae32f0c166759ae\"\u003e\u003ccode\u003ed639f9d\u003c/code\u003e\u003c/a\u003e ci: limit workflow permissions (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/e0bf18fab4feed4f5413c6528c198009b36fa536\"\u003e\u003ccode\u003ee0bf18f\u003c/code\u003e\u003c/a\u003e fix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/263e66a4a70c053f1181f8f65d666d22a6f60b64\"\u003e\u003ccode\u003e263e66a\u003c/code\u003e\u003c/a\u003e test: bump puma in rails 5.2 test app to fix security warning (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/c833d1964b0e10ae71ccc780bc46766baeb7e22e\"\u003e\u003ccode\u003ec833d19\u003c/code\u003e\u003c/a\u003e release: 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/4dc0f3e6e945a6159f35630098f8de0311a6908a\"\u003e\u003ccode\u003e4dc0f3e\u003c/code\u003e\u003c/a\u003e ci: fix jruby rails \u0026gt;= 7.2 (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1f17cd8d6215cf38e702f58c0f701e813c7ce0ef\"\u003e\u003ccode\u003e1f17cd8\u003c/code\u003e\u003c/a\u003e feat: added extra sources in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/97b3e8cbf47f022a27ff4962c059b0fc139a1369\"\u003e\u003ccode\u003e97b3e8c\u003c/code\u003e\u003c/a\u003e ci: add rails 7.2 and 8.0 to the test matrix and bump some older dependencies...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1b5581d23b47c81a233d61c28f0c6716d74d8f63\"\u003e\u003ccode\u003e1b5581d\u003c/code\u003e\u003c/a\u003e ci: add Ruby 3.4 to the test matrix (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/a4c978f4a64975fd609780541b2b243883217e4f\"\u003e\u003ccode\u003ea4c978f\u003c/code\u003e\u003c/a\u003e ci: remove unnecessary ubuntu packages installation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyconfig/config/compare/4.1.0...5.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-analyticsdata_v1beta` from 0.32.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-analyticsdata_v1beta/CHANGELOG.md\"\u003egoogle-apis-analyticsdata_v1beta's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.41.0 (2026-06-14)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.19.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.40.0 (2025-05-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.17.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.39.0 (2024-11-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20241117\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.38.0 (2024-09-01)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240825\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.37.0 (2024-08-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240731\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.36.0 (2024-05-19)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240512\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.35.0 (2024-02-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.14.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.34.0 (2024-02-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240128\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.13.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.33.0 (2024-01-22)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.13.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/compare/0.32.0...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleauth` from 1.3.0 to 1.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/releases\"\u003egoogleauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleauth: v1.17.4\u003c/h2\u003e\n\u003ch3\u003e1.17.4 (2026-08-13)\u003c/h3\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CLI/installed app example to use loopback IP redirect (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.3\u003c/h2\u003e\n\u003ch3\u003e1.17.3 (2026-07-27)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option validation and error handling to ServiceAccountCredentials.make_creds (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/588\"\u003e#588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/3da9927091e3ffc4f2d062a404d837de962a6f97\"\u003e3da9927\u003c/a\u003e), refs \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/482\"\u003e#482\u003c/a\u003e \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/544\"\u003e#544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.2\u003c/h2\u003e\n\u003ch3\u003e1.17.2 (2026-07-23)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ereturn auth header from source_credentials in ImpersonatedServiceAccountCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.1\u003c/h2\u003e\n\u003ch3\u003e1.17.1 (2026-06-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erepair impersonated email helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/578\"\u003e#578\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/6317f9b3f44a26ffff569ed29a09b929cc2ab45e\"\u003e6317f9b\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/577\"\u003e#577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.0\u003c/h2\u003e\n\u003ch3\u003e1.17.0 (2026-06-04)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eport googleauth from multi_json to standard lib json (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5fe4ed96a042f36874a609349be5911db1247c8b\"\u003e5fe4ed9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.2\u003c/h2\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.1\u003c/h2\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/blob/main/CHANGELOG.md\"\u003egoogleauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.17.4 (2026-08-13)\u003c/h3\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CLI/installed app example to use loopback IP redirect (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.3 (2026-07-27)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option validation and error handling to ServiceAccountCredentials.make_creds (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/588\"\u003e#588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/3da9927091e3ffc4f2d062a404d837de962a6f97\"\u003e3da9927\u003c/a\u003e), refs \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/482\"\u003e#482\u003c/a\u003e \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/544\"\u003e#544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.2 (2026-07-23)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ereturn auth header from source_credentials in ImpersonatedServiceAccountCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.1 (2026-06-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erepair impersonated email helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/578\"\u003e#578\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/6317f9b3f44a26ffff569ed29a09b929cc2ab45e\"\u003e6317f9b\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/577\"\u003e#577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.0 (2026-06-04)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eport googleauth from multi_json to standard lib json (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5fe4ed96a042f36874a609349be5911db1247c8b\"\u003e5fe4ed9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.0 (2025-11-21)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003c!-- 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 h...\n\n_Description has been truncated_","html_url":"https://github.com/dpla/dashboard-analytics/pull/343","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpla%2Fdashboard-analytics/issues/343","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/343/packages"},{"uuid":"5085324440","node_id":"PR_kwDOAW-RD877ytkL","number":807,"state":"open","title":"Bump the all-dependencies group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["ruby","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-06T23:10:09.000Z","updated_at":"2026-09-10T23:10:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":35,"packages":[{"name":"shakapacker","old_version":"10.2.0","new_version":"10.3.2","repository_url":"https://github.com/shakacode/shakapacker"},{"name":"rails","old_version":"8.1.3","new_version":"8.1.3.1","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.5.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"puma","old_version":"6.4.2","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"thruster","old_version":"0.1.16","new_version":"0.1.26","repository_url":"https://github.com/basecamp/thruster"},{"name":"uglifier","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/lautis/uglifier"},{"name":"jbuilder","old_version":"2.12.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"redis","old_version":"5.3.0","new_version":"6.0.0","repository_url":"https://github.com/redis/redis-rb"},{"name":"sdoc","old_version":"2.6.1","new_version":"2.6.5","repository_url":"https://github.com/zzak/sdoc"},{"name":"rails-html-sanitizer","old_version":"1.7.0","new_version":"1.7.1","repository_url":"https://github.com/rails/rails-html-sanitizer"},{"name":"autoprefixer-rails","old_version":"10.4.16.0","new_version":"10.4.21.0","repository_url":"https://github.com/ai/autoprefixer-rails"},{"name":"redcarpet","old_version":"3.6.0","new_version":"3.6.1","repository_url":"https://github.com/vmg/redcarpet"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"spring","old_version":"4.2.1","new_version":"4.7.0","repository_url":"https://github.com/rails/spring"},{"name":"factory_bot_rails","old_version":"6.4.3","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"foreman","old_version":"0.88.1","new_version":"0.90.0","repository_url":"https://github.com/ddollar/foreman"},{"name":"rubocop","old_version":"1.69.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-performance","old_version":"1.23.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.29.1","new_version":"2.37.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.4.0","new_version":"3.10.2","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"debug","old_version":"1.9.2","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"pry","old_version":"0.14.2","new_version":"0.16.0","repository_url":"https://github.com/pry/pry"},{"name":"pry-doc","old_version":"1.5.0","new_version":"1.7.0","repository_url":"https://github.com/pry/pry-doc"},{"name":"pry-stack_explorer","old_version":"0.6.1","new_version":"0.6.3","repository_url":"https://github.com/pry/pry-stack_explorer"},{"name":"capybara-screenshot","old_version":"1.0.26","new_version":"1.0.27","repository_url":"https://github.com/mattheworiordan/capybara-screenshot"},{"name":"coveralls_reborn","old_version":"0.25.0","new_version":"1.0.0","repository_url":"https://github.com/tagliala/coveralls-ruby-reborn"},{"name":"database_cleaner","old_version":"2.0.2","new_version":"2.1.0","repository_url":"https://github.com/DatabaseCleaner/database_cleaner"},{"name":"launchy","old_version":"3.0.1","new_version":"3.1.1","repository_url":"https://github.com/copiousfreetime/launchy"},{"name":"rails_best_practices","old_version":"1.23.2","new_version":"1.23.4","repository_url":"https://github.com/flyerhzm/rails_best_practices"},{"name":"rspec-rails","old_version":"6.0.4","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"selenium-webdriver","old_version":"4.22.0","new_version":"4.48.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"stimulus-rails","old_version":"1.3.3","new_version":"1.3.4","repository_url":"https://github.com/hotwired/stimulus-rails"},{"name":"turbo-rails","old_version":"2.0.11","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [shakapacker](https://github.com/shakacode/shakapacker) | `10.2.0` | `10.3.2` |\n| [rails](https://github.com/rails/rails) | `8.1.3` | `8.1.3.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.5.6` | `1.6.3` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.26.0` |\n| [puma](https://github.com/puma/puma) | `6.4.2` | `8.0.2` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.16` | `0.1.26` |\n| [uglifier](https://github.com/lautis/uglifier) | `4.2.0` | `4.2.1` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.12.0` | `2.15.1` |\n| [redis](https://github.com/redis/redis-rb) | `5.3.0` | `6.0.0` |\n| [sdoc](https://github.com/zzak/sdoc) | `2.6.1` | `2.6.5` |\n| [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) | `1.7.0` | `1.7.1` |\n| [autoprefixer-rails](https://github.com/ai/autoprefixer-rails) | `10.4.16.0` | `10.4.21.0` |\n| [redcarpet](https://github.com/vmg/redcarpet) | `3.6.0` | `3.6.1` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [spring](https://github.com/rails/spring) | `4.2.1` | `4.7.0` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.4.3` | `6.5.1` |\n| [foreman](https://github.com/ddollar/foreman) | `0.88.1` | `0.90.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.69.0` | `1.90.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.23.1` | `1.27.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.29.1` | `2.37.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.4.0` | `3.10.2` |\n| [debug](https://github.com/ruby/debug) | `1.9.2` | `1.11.1` |\n| [pry](https://github.com/pry/pry) | `0.14.2` | `0.16.0` |\n| [pry-doc](https://github.com/pry/pry-doc) | `1.5.0` | `1.7.0` |\n| [pry-stack_explorer](https://github.com/pry/pry-stack_explorer) | `0.6.1` | `0.6.3` |\n| [capybara-screenshot](https://github.com/mattheworiordan/capybara-screenshot) | `1.0.26` | `1.0.27` |\n| [coveralls_reborn](https://github.com/tagliala/coveralls-ruby-reborn) | `0.25.0` | `1.0.0` |\n| [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) | `2.0.2` | `2.1.0` |\n| [launchy](https://github.com/copiousfreetime/launchy) | `3.0.1` | `3.1.1` |\n| [rails_best_practices](https://github.com/flyerhzm/rails_best_practices) | `1.23.2` | `1.23.4` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.4` | `8.0.4` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.22.0` | `4.48.0` |\n| [stimulus-rails](https://github.com/hotwired/stimulus-rails) | `1.3.3` | `1.3.4` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.11` | `2.0.23` |\n\n\nUpdates `shakapacker` from 10.2.0 to 10.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shakacode/shakapacker/releases\"\u003eshakapacker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.3.2\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBumped the development and CI pin for Rspack from \u003ccode\u003e2.0.1\u003c/code\u003e to \u003ccode\u003e2.2.0\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1258\"\u003e#1258\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1258\"\u003eshakacode/shakapacker#1258\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The \u003ccode\u003e@rspack/core\u003c/code\u003e, \u003ccode\u003e@rspack/cli\u003c/code\u003e, \u003ccode\u003e@rspack/dev-server\u003c/code\u003e, and \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e peer ranges are unchanged at \u003ccode\u003e^2.0.0\u003c/code\u003e, so applications may stay on any Rspack \u003ccode\u003e2.x\u003c/code\u003e release; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (\u003ccode\u003ebin/shakapacker-config --annotate\u003c/code\u003e) also now list the complete \u003ccode\u003eoptimization.moduleIds\u003c/code\u003e and \u003ccode\u003eoptimization.chunkIds\u003c/code\u003e value sets for both bundlers, including \u003ccode\u003e'compat-hashed'\u003c/code\u003e, which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e not telling Rspack apps that a \u003ccode\u003e.swcrc\u003c/code\u003e is ignored outright.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1276\"\u003eshakacode/shakapacker#1276\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Doctor previously told Rspack apps only that moving \u003ccode\u003e.swcrc\u003c/code\u003e settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not help, while deliberately making no claim about the \u003ccode\u003e.swcrc\u003c/code\u003e itself, because the behavior had never been verified. It has now been verified against \u003ccode\u003e@rspack/core\u003c/code\u003e 2.0.1 and 2.2.0: Rspack's \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e never reads \u003ccode\u003e.swcrc\u003c/code\u003e. A \u003ccode\u003e.swcrc\u003c/code\u003e setting \u003ccode\u003ejsc.target\u003c/code\u003e and injecting an optimizer global produced byte-identical output to no \u003ccode\u003e.swcrc\u003c/code\u003e at all, while the same options passed inline as loader options did change the output. A \u003ccode\u003e.swcrc\u003c/code\u003e enabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and with \u003ccode\u003eswcrc\u003c/code\u003e/\u003ccode\u003econfigFile\u003c/code\u003e set, so this is not merely inline options taking precedence. Doctor now states that a \u003ccode\u003e.swcrc\u003c/code\u003e is not read on Rspack and that every setting in it is silently inert - the mirror image of the \u003ccode\u003econfig/swc.config.js\u003c/code\u003e case in \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e - and continues to point at overriding the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule. Webpack messaging is unchanged. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1263\"\u003e#1263\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e staying silent about SWC configuration on Rspack apps that do not set \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1269\"\u003e#1269\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1269\"\u003eshakacode/shakapacker#1269\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Shakapacker's Rspack rules always transpile with \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e and never consult \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, so \u003ccode\u003econfig/swc.config.js\u003c/code\u003e goes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, so those apps got no warning at all. Those warnings now reach any Rspack app: that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is not read, and, for a \u003ccode\u003e.swcrc\u003c/code\u003e, that moving its settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not affect the build. The webpack-only SWC content checks and the \u0026quot;merged with Shakapacker's defaults\u0026quot; messaging stay gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, and apps with \u003ccode\u003ejavascript_transpiler: none\u003c/code\u003e remain opted out. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1265\"\u003e#1265\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e and \u003ccode\u003erake shakapacker:migrate_to_swc\u003c/code\u003e telling Rspack apps that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is merged into their build.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1260\"\u003e#1260\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1260\"\u003eshakacode/shakapacker#1260\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Rspack builds never read \u003ccode\u003econfig/swc.config.js\u003c/code\u003e, because Shakapacker's Rspack rules set their \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e options inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a \u003ccode\u003e.swcrc\u003c/code\u003e to migrate those settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e. The migrator's post-migration guidance and the generated file header instead show how to override the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule: apply \u003ccode\u003ewebpack-merge\u003c/code\u003e's \u003ccode\u003emergeWithRules\u003c/code\u003e to the \u003cem\u003eoutput\u003c/em\u003e of \u003ccode\u003egenerateRspackConfig()\u003c/code\u003e, since that function merges with plain \u003ccode\u003emerge\u003c/code\u003e, which concatenates \u003ccode\u003emodule.rules\u003c/code\u003e, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed post-publish GitHub release failures hiding successful package publication details.\u003c/strong\u003e The release task now prints its normal publication summary and the exact \u003ccode\u003esync_github_release\u003c/code\u003e recovery command before exiting nonzero. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1250\"\u003e#1250\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1250\"\u003eshakacode/shakapacker#1250\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs to fail closed when \u003ccode\u003ePATH\u003c/code\u003e is unset.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1240\"\u003eshakacode/shakapacker#1240\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e now report the missing-Node error without executing an app-root \u003ccode\u003enode\u003c/code\u003e binary when \u003ccode\u003ePATH\u003c/code\u003e is unset, while explicit \u003ccode\u003ePATH\u003c/code\u003e values retain their existing Node-resolution behavior. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1234\"\u003e#1234\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the deprecation warning for the legacy \u003ccode\u003ebundler\u003c/code\u003e config key claiming the value was understood while it was ignored.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1270\"\u003e#1270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1270\"\u003eshakacode/shakapacker#1270\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. An app whose \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e set only \u003ccode\u003ebundler:\u003c/code\u003e was told the key was deprecated and then built with a different bundler, because \u003ccode\u003eassets_bundler\u003c/code\u003e always resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to set \u003ccode\u003eassets_bundler\u003c/code\u003e instead. One resolution change accompanies it: a config that leaves \u003ccode\u003eassets_bundler:\u003c/code\u003e blank while setting \u003ccode\u003ebundler:\u003c/code\u003e previously resolved the legacy value in Ruby and now resolves \u003ccode\u003ewebpack\u003c/code\u003e, matching what \u003ccode\u003epackage/config.ts\u003c/code\u003e already built for it. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1262\"\u003e#1262\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.3.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed 502 responses for proxied dev server assets under \u003ccode\u003erack-proxy\u003c/code\u003e v1.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1222\"\u003eshakacode/shakapacker#1222\u003c/a\u003e) by \u003ca href=\"https://github.com/jcbpl\"\u003ejcbpl\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed dev-server liveness checks treating refused macOS 27 connections as running.\u003c/strong\u003e The Ruby probe now verifies the connected socket's \u003ccode\u003eSO_ERROR\u003c/code\u003e result before proxying asset requests, avoiding false-positive dev-server detection and resulting 502 responses. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1225\"\u003e#1225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1225\"\u003eshakacode/shakapacker#1225\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1224\"\u003e#1224\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed webpack Babel, SWC, and esbuild rules skipping explicitly included \u003ccode\u003e.cjs\u003c/code\u003e files.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1219\"\u003e#1219\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1219\"\u003eshakacode/shakapacker#1219\u003c/a\u003e) by \u003ca href=\"https://github.com/oiahoon\"\u003eoiahoon\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1218\"\u003e#1218\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdded a \u003ccode\u003eshakapacker:doctor\u003c/code\u003e warning for Rspack React Refresh v2 configs that still use the v1 default-export constructor pattern.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1207\"\u003e#1207\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1207\"\u003eshakacode/shakapacker#1207\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Existing configs with \u003ccode\u003econst ReactRefreshPlugin = require(\u0026quot;@rspack/plugin-react-refresh\u0026quot;)\u003c/code\u003e followed by \u003ccode\u003enew ReactRefreshPlugin()\u003c/code\u003e can fail after upgrading to \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e v2 with \u003ccode\u003eReactRefreshPlugin is not a constructor\u003c/code\u003e; Doctor now points to the affected JS/TS config file and suggests the named-export/default/module compatibility form. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1204\"\u003e#1204\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the missing-\u003ccode\u003e@babel/core\u003c/code\u003e failure to report an actionable install message.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1212\"\u003e#1212\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1212\"\u003eshakacode/shakapacker#1212\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Babel-transpiled builds whose app lacks \u003ccode\u003e@babel/core\u003c/code\u003e previously surfaced a raw module-resolution error from the Babel 8 compatibility check; the rule now explains which package to install and how to switch \u003ccode\u003ejavascript_transpiler\u003c/code\u003e instead. Refs \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1163\"\u003e#1163\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDocumented the required \u003ccode\u003ecss-loader@^7.1.4\u003c/code\u003e in the v10 Rspack upgrade instructions.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1211\"\u003e#1211\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1211\"\u003eshakacode/shakapacker#1211\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The v10 upgrade guide's copy-paste Rspack v2 commands omitted \u003ccode\u003ecss-loader\u003c/code\u003e, so apps following them could upgrade into an unsatisfied peer dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAllowed \u003ccode\u003ewebpack-dev-server\u003c/code\u003e v6\u003c/strong\u003e. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1102\"\u003e#1102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1102\"\u003eshakacode/shakapacker#1102\u003c/a\u003e) by \u003ca href=\"https://github.com/G-Rath\"\u003eG-Rath\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed implicit SWC defaults for existing webpack/Babel apps without \u003ccode\u003eswc-loader\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Webpack apps that omit both \u003ccode\u003ejavascript_transpiler\u003c/code\u003e and the deprecated \u003ccode\u003ewebpack_loader\u003c/code\u003e now fall back to Babel with a warning when Shakapacker's bundled SWC default is active, \u003ccode\u003eswc-loader\u003c/code\u003e is missing, and Babel is present. Explicit transpiler settings, webpack apps with \u003ccode\u003eswc-loader\u003c/code\u003e, and Rspack's built-in SWC path keep their existing behavior. Closes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1203\"\u003e#1203\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed JavaScript config loading for missing Rails environments to use the production fallback.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. When \u003ccode\u003eRAILS_ENV\u003c/code\u003e has no matching section in \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e, the Node package config now merges the \u003ccode\u003eproduction\u003c/code\u003e section instead of only bundled defaults, matching Ruby configuration loading and honoring explicit production \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, \u003ccode\u003esource_path\u003c/code\u003e, \u003ccode\u003edev_server\u003c/code\u003e, and related settings for custom environments such as staging.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs delegating Node resolution to Ruby \u003ccode\u003eexec\u003c/code\u003e in unset and empty \u003ccode\u003ePATH\u003c/code\u003e environments.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1200\"\u003eshakacode/shakapacker#1200\u003c/a\u003e) and [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1201\"\u003eshakacode/shakapacker#1201\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Restores shell-compatible Node lookup for \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e after the \u003ccode\u003ev10.2.0\u003c/code\u003e Ruby-binstub regression, while keeping friendly missing-Node errors for \u003ccode\u003eENOENT\u003c/code\u003e and \u003ccode\u003eEACCES\u003c/code\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/shakacode/shakapacker/blob/main/CHANGELOG.md\"\u003eshakapacker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v10.3.2] - August 28, 2026\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBumped the development and CI pin for Rspack from \u003ccode\u003e2.0.1\u003c/code\u003e to \u003ccode\u003e2.2.0\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1258\"\u003e#1258\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1258\"\u003eshakacode/shakapacker#1258\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The \u003ccode\u003e@rspack/core\u003c/code\u003e, \u003ccode\u003e@rspack/cli\u003c/code\u003e, \u003ccode\u003e@rspack/dev-server\u003c/code\u003e, and \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e peer ranges are unchanged at \u003ccode\u003e^2.0.0\u003c/code\u003e, so applications may stay on any Rspack \u003ccode\u003e2.x\u003c/code\u003e release; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (\u003ccode\u003ebin/shakapacker-config --annotate\u003c/code\u003e) also now list the complete \u003ccode\u003eoptimization.moduleIds\u003c/code\u003e and \u003ccode\u003eoptimization.chunkIds\u003c/code\u003e value sets for both bundlers, including \u003ccode\u003e'compat-hashed'\u003c/code\u003e, which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e not telling Rspack apps that a \u003ccode\u003e.swcrc\u003c/code\u003e is ignored outright.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1276\"\u003eshakacode/shakapacker#1276\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Doctor previously told Rspack apps only that moving \u003ccode\u003e.swcrc\u003c/code\u003e settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not help, while deliberately making no claim about the \u003ccode\u003e.swcrc\u003c/code\u003e itself, because the behavior had never been verified. It has now been verified against \u003ccode\u003e@rspack/core\u003c/code\u003e 2.0.1 and 2.2.0: Rspack's \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e never reads \u003ccode\u003e.swcrc\u003c/code\u003e. A \u003ccode\u003e.swcrc\u003c/code\u003e setting \u003ccode\u003ejsc.target\u003c/code\u003e and injecting an optimizer global produced byte-identical output to no \u003ccode\u003e.swcrc\u003c/code\u003e at all, while the same options passed inline as loader options did change the output. A \u003ccode\u003e.swcrc\u003c/code\u003e enabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and with \u003ccode\u003eswcrc\u003c/code\u003e/\u003ccode\u003econfigFile\u003c/code\u003e set, so this is not merely inline options taking precedence. Doctor now states that a \u003ccode\u003e.swcrc\u003c/code\u003e is not read on Rspack and that every setting in it is silently inert - the mirror image of the \u003ccode\u003econfig/swc.config.js\u003c/code\u003e case in \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e - and continues to point at overriding the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule. Webpack messaging is unchanged. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1263\"\u003e#1263\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e staying silent about SWC configuration on Rspack apps that do not set \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1269\"\u003e#1269\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1269\"\u003eshakacode/shakapacker#1269\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Shakapacker's Rspack rules always transpile with \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e and never consult \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, so \u003ccode\u003econfig/swc.config.js\u003c/code\u003e goes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, so those apps got no warning at all. Those warnings now reach any Rspack app: that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is not read, and, for a \u003ccode\u003e.swcrc\u003c/code\u003e, that moving its settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not affect the build. The webpack-only SWC content checks and the \u0026quot;merged with Shakapacker's defaults\u0026quot; messaging stay gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, and apps with \u003ccode\u003ejavascript_transpiler: none\u003c/code\u003e remain opted out. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1265\"\u003e#1265\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e and \u003ccode\u003erake shakapacker:migrate_to_swc\u003c/code\u003e telling Rspack apps that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is merged into their build.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1260\"\u003e#1260\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1260\"\u003eshakacode/shakapacker#1260\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Rspack builds never read \u003ccode\u003econfig/swc.config.js\u003c/code\u003e, because Shakapacker's Rspack rules set their \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e options inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a \u003ccode\u003e.swcrc\u003c/code\u003e to migrate those settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e. The migrator's post-migration guidance and the generated file header instead show how to override the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule: apply \u003ccode\u003ewebpack-merge\u003c/code\u003e's \u003ccode\u003emergeWithRules\u003c/code\u003e to the \u003cem\u003eoutput\u003c/em\u003e of \u003ccode\u003egenerateRspackConfig()\u003c/code\u003e, since that function merges with plain \u003ccode\u003emerge\u003c/code\u003e, which concatenates \u003ccode\u003emodule.rules\u003c/code\u003e, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed post-publish GitHub release failures hiding successful package publication details.\u003c/strong\u003e The release task now prints its normal publication summary and the exact \u003ccode\u003esync_github_release\u003c/code\u003e recovery command before exiting nonzero. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1250\"\u003e#1250\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1250\"\u003eshakacode/shakapacker#1250\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs to fail closed when \u003ccode\u003ePATH\u003c/code\u003e is unset.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1240\"\u003eshakacode/shakapacker#1240\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e now report the missing-Node error without executing an app-root \u003ccode\u003enode\u003c/code\u003e binary when \u003ccode\u003ePATH\u003c/code\u003e is unset, while explicit \u003ccode\u003ePATH\u003c/code\u003e values retain their existing Node-resolution behavior. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1234\"\u003e#1234\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the deprecation warning for the legacy \u003ccode\u003ebundler\u003c/code\u003e config key claiming the value was understood while it was ignored.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1270\"\u003e#1270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1270\"\u003eshakacode/shakapacker#1270\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. An app whose \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e set only \u003ccode\u003ebundler:\u003c/code\u003e was told the key was deprecated and then built with a different bundler, because \u003ccode\u003eassets_bundler\u003c/code\u003e always resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to set \u003ccode\u003eassets_bundler\u003c/code\u003e instead. One resolution change accompanies it: a config that leaves \u003ccode\u003eassets_bundler:\u003c/code\u003e blank while setting \u003ccode\u003ebundler:\u003c/code\u003e previously resolved the legacy value in Ruby and now resolves \u003ccode\u003ewebpack\u003c/code\u003e, matching what \u003ccode\u003epackage/config.ts\u003c/code\u003e already built for it. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1262\"\u003e#1262\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v10.3.1] - August 3, 2026\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed 502 responses for proxied dev server assets under \u003ccode\u003erack-proxy\u003c/code\u003e v1.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1222\"\u003eshakacode/shakapacker#1222\u003c/a\u003e) by \u003ca href=\"https://github.com/jcbpl\"\u003ejcbpl\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed dev-server liveness checks treating refused macOS 27 connections as running.\u003c/strong\u003e The Ruby probe now verifies the connected socket's \u003ccode\u003eSO_ERROR\u003c/code\u003e result before proxying asset requests, avoiding false-positive dev-server detection and resulting 502 responses. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1225\"\u003e#1225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1225\"\u003eshakacode/shakapacker#1225\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1224\"\u003e#1224\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed webpack Babel, SWC, and esbuild rules skipping explicitly included \u003ccode\u003e.cjs\u003c/code\u003e files.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1219\"\u003e#1219\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1219\"\u003eshakacode/shakapacker#1219\u003c/a\u003e) by \u003ca href=\"https://github.com/oiahoon\"\u003eoiahoon\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1218\"\u003e#1218\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdded a \u003ccode\u003eshakapacker:doctor\u003c/code\u003e warning for Rspack React Refresh v2 configs that still use the v1 default-export constructor pattern.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1207\"\u003e#1207\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1207\"\u003eshakacode/shakapacker#1207\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Existing configs with \u003ccode\u003econst ReactRefreshPlugin = require(\u0026quot;@rspack/plugin-react-refresh\u0026quot;)\u003c/code\u003e followed by \u003ccode\u003enew ReactRefreshPlugin()\u003c/code\u003e can fail after upgrading to \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e v2 with \u003ccode\u003eReactRefreshPlugin is not a constructor\u003c/code\u003e; Doctor now points to the affected JS/TS config file and suggests the named-export/default/module compatibility form. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1204\"\u003e#1204\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the missing-\u003ccode\u003e@babel/core\u003c/code\u003e failure to report an actionable install message.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1212\"\u003e#1212\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1212\"\u003eshakacode/shakapacker#1212\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Babel-transpiled builds whose app lacks \u003ccode\u003e@babel/core\u003c/code\u003e previously surfaced a raw module-resolution error from the Babel 8 compatibility check; the rule now explains which package to install and how to switch \u003ccode\u003ejavascript_transpiler\u003c/code\u003e instead. Refs \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1163\"\u003e#1163\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDocumented the required \u003ccode\u003ecss-loader@^7.1.4\u003c/code\u003e in the v10 Rspack upgrade instructions.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1211\"\u003e#1211\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1211\"\u003eshakacode/shakapacker#1211\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The v10 upgrade guide's copy-paste Rspack v2 commands omitted \u003ccode\u003ecss-loader\u003c/code\u003e, so apps following them could upgrade into an unsatisfied peer dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v10.3.0] - July 5, 2026\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAllowed \u003ccode\u003ewebpack-dev-server\u003c/code\u003e v6\u003c/strong\u003e. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1102\"\u003e#1102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1102\"\u003eshakacode/shakapacker#1102\u003c/a\u003e) by \u003ca href=\"https://github.com/G-Rath\"\u003eG-Rath\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed implicit SWC defaults for existing webpack/Babel apps without \u003ccode\u003eswc-loader\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Webpack apps that omit both \u003ccode\u003ejavascript_transpiler\u003c/code\u003e and the deprecated \u003ccode\u003ewebpack_loader\u003c/code\u003e now fall back to Babel with a warning when Shakapacker's bundled SWC default is active, \u003ccode\u003eswc-loader\u003c/code\u003e is missing, and Babel is present. Explicit transpiler settings, webpack apps with \u003ccode\u003eswc-loader\u003c/code\u003e, and Rspack's built-in SWC path keep their existing behavior. Closes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1203\"\u003e#1203\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed JavaScript config loading for missing Rails environments to use the production fallback.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. When \u003ccode\u003eRAILS_ENV\u003c/code\u003e has no matching section in \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e, the Node package config now merges the \u003ccode\u003eproduction\u003c/code\u003e section instead of only bundled defaults, matching Ruby configuration loading and honoring explicit production \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, \u003ccode\u003esource_path\u003c/code\u003e, \u003ccode\u003edev_server\u003c/code\u003e, and related settings for custom environments such as staging.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstub Node resolution after the \u003ccode\u003ev10.2.0\u003c/code\u003e Ruby-binstub regression.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1200\"\u003eshakacode/shakapacker#1200\u003c/a\u003e) and [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1201\"\u003eshakacode/shakapacker#1201\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Restores shell-compatible Node lookup for \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e when \u003ccode\u003ePATH\u003c/code\u003e is empty, while keeping friendly missing-Node errors for \u003ccode\u003eENOENT\u003c/code\u003e and \u003ccode\u003eEACCES\u003c/code\u003e. For an unset \u003ccode\u003ePATH\u003c/code\u003e, PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e deliberately delegates Node resolution to Ruby \u003ccode\u003eexec\u003c/code\u003e's default-path behavior; PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e later changed that case to fail closed.\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/shakacode/shakapacker/commit/f152fe6d65407f4c14757adb5e750df2af9bd591\"\u003e\u003ccode\u003ef152fe6\u003c/code\u003e\u003c/a\u003e Release 10.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/594a691997e632bdd9b1f564fbe4d12b7c59ea08\"\u003e\u003ccode\u003e594a691\u003c/code\u003e\u003c/a\u003e Update changelog for 10.3.2 (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/843409ab02d878f5bed5f4014cdca68f312e60ec\"\u003e\u003ccode\u003e843409a\u003c/code\u003e\u003c/a\u003e Tell Rspack apps that .swcrc is ignored outright, not just unmigratable (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/ee6bba96eb1fcc9848a9e3b135d3225a25ee89f8\"\u003e\u003ccode\u003eee6bba9\u003c/code\u003e\u003c/a\u003e Warn Rspack apps that SWC config files are unread for any javascript_transpil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/ac81bcf1cdc4c988c718a24ff919293205a22b09\"\u003e\u003ccode\u003eac81bcf\u003c/code\u003e\u003c/a\u003e Fix the misleading deprecation warning for the ignored legacy bundler key (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/7eddfe1864bc0e89b59ede208e677037e0ea4982\"\u003e\u003ccode\u003e7eddfe1\u003c/code\u003e\u003c/a\u003e Document how to override builtin:swc-loader options on Rspack (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1267\"\u003e#1267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/24f3c2e26d9eb396e503fa75a3584a476ae2a046\"\u003e\u003ccode\u003e24f3c2e\u003c/code\u003e\u003c/a\u003e Trigger Node based checks on markdown-only pull requests (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/8d6ed807be5584375e9e0f59b885c47719c842ee\"\u003e\u003ccode\u003e8d6ed80\u003c/code\u003e\u003c/a\u003e Make AGENTS.md canonical for shared agent guidance (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/980c1946e3fdfdc8dda9699666ccf6c08d345f12\"\u003e\u003ccode\u003e980c194\u003c/code\u003e\u003c/a\u003e Document rspack 2.2 user-facing changes: SWC Wasm plugin break, rspackPublicP...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/d51c1a8b8a364f5a675207c1a3ffc984a20aa832\"\u003e\u003ccode\u003ed51c1a8\u003c/code\u003e\u003c/a\u003e Bump rspack dev pin from 2.0.1 to 2.2.0 and correct moduleIds/chunkIds config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shakacode/shakapacker/compare/v10.2.0...v10.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.1.3 to 8.1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3.1\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction View\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Mailer\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Cable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Storage\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDisable libvips's unfuzzed image loaders and savers.\u003c/p\u003e\n\u003cp\u003elibvips flags some of its loaders and savers as \u0026quot;unfuzzed\u0026quot; or \u0026quot;untrusted\u0026quot;, meaning they are only\nsafe for trusted content. Active Storage will call \u003ccode\u003eVips.block_untrusted(true)\u003c/code\u003e to disable them\nwhile booting. An application that needs a specific loader or saver may re-enable it in an\ninitializer.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3989ebf3473d71e4ceca28154b0b57b5bf22db24\"\u003e\u003ccode\u003e3989ebf\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/349e7a5d5b4b715af1e416db824f3c078a7d59e5\"\u003e\u003ccode\u003e349e7a5\u003c/code\u003e\u003c/a\u003e Disable libvips's unfuzzed image loaders and savers\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3...v8.1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.5.6 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.1 [2025-08-03] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for platforms \u003ccode\u003eaarch64-linux-musl\u003c/code\u003e and \u003ccode\u003ex86_64-linux-musl\u003c/code\u003e without the need to install package \u003ccode\u003egcompat\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/657\"\u003e#657\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSerialize CompositeCoder#dimensions only when set. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/652\"\u003e#652\u003c/a\u003e\nThis fixes the compatibility to pg-1.5.9, when deserializing Marshal data from pg-1.6, as long as the new attribute isn't used.\u003c/li\u003e\n\u003cli\u003eRemove dependency to MSYS2 package \u0026quot;postgresql\u0026quot; from binary Windows gem \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/654\"\u003e#654\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 [2025-07-27] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for Ruby 3.4.\u003c/li\u003e\n\u003cli\u003eAdd fat binary gem for platform \u003ccode\u003eaarch64-mingw-ucrt\u003c/code\u003e aka Windows on ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/626\"\u003e#626\u003c/a\u003e, for platform Macos on Intel and ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/643\"\u003e#643\u003c/a\u003e, for platform \u003ccode\u003eaarch64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/646\"\u003e#646\u003c/a\u003e and for platform \u003ccode\u003ex86_64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/551#issuecomment-2504715762\"\u003e#551\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.5.1 and PostgreSQL-17.5.\u003c/li\u003e\n\u003cli\u003eAdd a patch to libpq to avoid starvation on bigger SSL records, which some database engines other than vanilla PostgreSQL use.\nThis patch applies to platform specific binary gems only.\n\u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/616\"\u003e#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new query cancel functions of PostgreSQL-17.\nThis adds the new class \u003ccode\u003ePG::CancelConnection\u003c/code\u003e which provides the ability to cancel a query per blocking or per non-blocking functions.\nIf the new functions are available they are used and the older are no longer compiled in.\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/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.5.6...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.4...v1.24.5\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.4...v1.24.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.6\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003c!-- 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/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.4.2 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.1 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.4.2...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.16 to 0.1.26\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thru...\n\n_Description has been truncated_","html_url":"https://github.com/shakacode/react-webpack-rails-tutorial/pull/807","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakacode%2Freact-webpack-rails-tutorial/issues/807","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/807/packages"},{"uuid":"4824986745","node_id":"PR_kwDOQVU4o87upFr8","number":59,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-07-07T03:58:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-07T03:34:35.000Z","updated_at":"2026-07-07T03:58:33.000Z","time_to_close":1436,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/clintzold/zold-ceramics/pull/59","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/clintzold%2Fzold-ceramics/issues/59","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/59/packages"},{"uuid":"4643136497","node_id":"PR_kwDOS34Les7lcocI","number":3,"state":"closed","title":"Bump the bundler group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-18T03:09:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-11T18:24:26.000Z","updated_at":"2026-06-18T03:09:20.000Z","time_to_close":549893,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":10,"packages":[{"name":"aws-sdk-s3","old_version":"1.223.0","new_version":"1.225.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"bootsnap","old_version":"1.24.4","new_version":"1.24.6","repository_url":"https://github.com/rails/bootsnap"},{"name":"good_job","old_version":"4.18.2","new_version":"4.19.0","repository_url":"https://github.com/bensheldon/good_job"},{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"pagy","old_version":"43.5.4","new_version":"43.5.6","repository_url":"https://github.com/ddnexus/pagy"},{"name":"puma","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"rubocop","old_version":"1.86.2","new_version":"1.87.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-rails","old_version":"2.35.2","new_version":"2.35.4","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.9.0","new_version":"3.10.2","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rspec-openapi","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/exoego/rspec-openapi"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.223.0` | `1.225.1` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.4` | `1.24.6` |\n| [good_job](https://github.com/bensheldon/good_job) | `4.18.2` | `4.19.0` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.15.0` | `2.15.1` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.5.4` | `43.5.6` |\n| [puma](https://github.com/puma/puma) | `8.0.1` | `8.0.2` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.86.2` | `1.87.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.35.2` | `2.35.4` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.9.0` | `3.10.2` |\n| [rspec-openapi](https://github.com/exoego/rspec-openapi) | `0.26.0` | `0.28.0` |\n\n\nUpdates `aws-sdk-s3` from 1.223.0 to 1.225.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.225.1 (2026-06-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Fix \u003ccode\u003edownload_file\u003c/code\u003e single-request mode not writing to a temporary file when given a String/Pathname destination.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.225.0 (2026-06-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Adding new BDD representation of endpoint ruleset\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.224.0 (2026-05-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.24.4 to 1.24.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.6\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\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/rails/bootsnap/commit/026e183e7f4f4f0eab52d6b9eebafe548cde08a2\"\u003e\u003ccode\u003e026e183\u003c/code\u003e\u003c/a\u003e Release 1.24.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/263e34652b4884da97b5e4974ef53fce5753b890\"\u003e\u003ccode\u003e263e346\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/556\"\u003e#556\u003c/a\u003e from byroot/remove-canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c31cd81f39285ed43898377ff8af2dcf0d851e9\"\u003e\u003ccode\u003e7c31cd8\u003c/code\u003e\u003c/a\u003e Check for [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e] by checking Ruby version rather than a canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/54eba7643b359d85d518374af9e8b126a25a99d7\"\u003e\u003ccode\u003e54eba76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/554\"\u003e#554\u003c/a\u003e from byroot/namespace-overflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/fe963d56fc5981eb5c08f4352ca2937226ef2c48\"\u003e\u003ccode\u003efe963d5\u003c/code\u003e\u003c/a\u003e bs_cache_path: account for namespace length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b42db6610163d682fb27f986f7155882844ba2e\"\u003e\u003ccode\u003e7b42db6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/553\"\u003e#553\u003c/a\u003e from arpitjain099/chore/declare-workflow-perms\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/113b184cc52613c543af3e8155cab24851fd9d35\"\u003e\u003ccode\u003e113b184\u003c/code\u003e\u003c/a\u003e ci: add permissions: contents: read to ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.4...v1.24.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `good_job` from 4.18.2 to 4.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bensheldon/good_job/releases\"\u003egood_job's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.19.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4190-2026-05-27\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet default queue_select_limit to 1000 by \u003ca href=\"https://github.com/MahmoudBakr23\"\u003e\u003ccode\u003e@​MahmoudBakr23\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1762\"\u003ebensheldon/good_job#1762\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNice changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTruncate long labels in dashboard badges by \u003ca href=\"https://github.com/MahmoudBakr23\"\u003e\u003ccode\u003e@​MahmoudBakr23\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1766\"\u003ebensheldon/good_job#1766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake execution state completely Fiber-safe via Rails isolated execution state by \u003ca href=\"https://github.com/ollym\"\u003e\u003ccode\u003e@​ollym\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1765\"\u003ebensheldon/good_job#1765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes and refactors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect ENV variable guard for GOOD_JOB_ENABLE_PAUSES by \u003ca href=\"https://github.com/jqr\"\u003e\u003ccode\u003e@​jqr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1772\"\u003ebensheldon/good_job#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit keyword arguments for concurrency controls by \u003ca href=\"https://github.com/bdewater-thatch\"\u003e\u003ccode\u003e@​bdewater-thatch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1770\"\u003ebensheldon/good_job#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePG::ProgramLimitExceeded\u003c/code\u003e in jobs index search for large error payloads by \u003ca href=\"https://github.com/createdbypete\"\u003e\u003ccode\u003e@​createdbypete\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1769\"\u003ebensheldon/good_job#1769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PG::AmbiguousColumn in skiplocked/hybrid claim with ordered queues + concurrency rules by \u003ca href=\"https://github.com/createdbypete\"\u003e\u003ccode\u003e@​createdbypete\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1768\"\u003ebensheldon/good_job#1768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse table_name instead of hardcoding :good_jobs in schema introspection by \u003ca href=\"https://github.com/eidarus\"\u003e\u003ccode\u003e@​eidarus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1774\"\u003ebensheldon/good_job#1774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle nil updated_at in stale? method by \u003ca href=\"https://github.com/gavinballard\"\u003e\u003ccode\u003e@​gavinballard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1764\"\u003ebensheldon/good_job#1764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Concurrency::Rule to use explicit ivars instead of options hash by \u003ca href=\"https://github.com/bensheldon\"\u003e\u003ccode\u003e@​bensheldon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1776\"\u003ebensheldon/good_job#1776\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/NobodysNightmare\"\u003e\u003ccode\u003e@​NobodysNightmare\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1773\"\u003ebensheldon/good_job#1773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jqr\"\u003e\u003ccode\u003e@​jqr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1772\"\u003ebensheldon/good_job#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/createdbypete\"\u003e\u003ccode\u003e@​createdbypete\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1769\"\u003ebensheldon/good_job#1769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eidarus\"\u003e\u003ccode\u003e@​eidarus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1774\"\u003ebensheldon/good_job#1774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahmoudBakr23\"\u003e\u003ccode\u003e@​MahmoudBakr23\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1762\"\u003ebensheldon/good_job#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gavinballard\"\u003e\u003ccode\u003e@​gavinballard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1764\"\u003ebensheldon/good_job#1764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ollym\"\u003e\u003ccode\u003e@​ollym\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1765\"\u003ebensheldon/good_job#1765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.2...v4.19.0\"\u003ehttps://github.com/bensheldon/good_job/compare/v4.18.2...v4.19.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/bensheldon/good_job/blob/main/CHANGELOG.md\"\u003egood_job's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/bensheldon/good_job/tree/v4.19.0\"\u003ev4.19.0\u003c/a\u003e (2026-05-27)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.2...v4.19.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eImplemented enhancements:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTruncate long labels in dashboard badges \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1766\"\u003e#1766\u003c/a\u003e (\u003ca href=\"https://github.com/MahmoudBakr23\"\u003eMahmoudBakr23\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet default queue_select_limit to 1000 \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1762\"\u003e#1762\u003c/a\u003e (\u003ca href=\"https://github.com/MahmoudBakr23\"\u003eMahmoudBakr23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed bugs:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse table_name instead of hardcoding :good_jobs in schema introspection \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1774\"\u003e#1774\u003c/a\u003e (\u003ca href=\"https://github.com/eidarus\"\u003eeidarus\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect ENV variable guard for GOOD_JOB_ENABLE_PAUSES \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1772\"\u003e#1772\u003c/a\u003e (\u003ca href=\"https://github.com/jqr\"\u003ejqr\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePG::ProgramLimitExceeded\u003c/code\u003e in jobs index search for large error payloads \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1769\"\u003e#1769\u003c/a\u003e (\u003ca href=\"https://github.com/createdbypete\"\u003ecreatedbypete\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PG::AmbiguousColumn in skiplocked/hybrid claim with ordered queues + concurrency rules \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1768\"\u003e#1768\u003c/a\u003e (\u003ca href=\"https://github.com/createdbypete\"\u003ecreatedbypete\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake execution state completely Fiber-safe via Rails isolated execution state \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1765\"\u003e#1765\u003c/a\u003e (\u003ca href=\"https://github.com/ollym\"\u003eollym\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle nil updated_at in stale? method \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1764\"\u003e#1764\u003c/a\u003e (\u003ca href=\"https://github.com/gavinballard\"\u003egavinballard\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eClosed issues:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eenable_pauses ENV var check has singular/plural mismatch \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaises \u003ccode\u003ePG::AmbiguousColumn\u003c/code\u003e under hybrid lock strategy on ordered queues with throttle \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1767\"\u003e#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle long labels more gracefully \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1674\"\u003e#1674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Duplicate index \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1661\"\u003e#1661\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJob runner process enters a loop on create_listen_task - stale check fails \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1649\"\u003e#1649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a default queue_select_limit \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1596\"\u003e#1596\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMerged pull requests:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrune CI test matrix to boundary Ruby versions per Rails version \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1777\"\u003e#1777\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor Concurrency::Rule to use explicit ivars instead of options hash \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1776\"\u003e#1776\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in README.md \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1773\"\u003e#1773\u003c/a\u003e (\u003ca href=\"https://github.com/NobodysNightmare\"\u003eNobodysNightmare\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit keyword arguments for concurrency controls \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1770\"\u003e#1770\u003c/a\u003e (\u003ca href=\"https://github.com/bdewater-thatch\"\u003ebdewater-thatch\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/bensheldon/good_job/commit/d80fa633cae917be6230b125123478073948e037\"\u003e\u003ccode\u003ed80fa63\u003c/code\u003e\u003c/a\u003e Release good_job v4.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/8bae5979cf4aea7214ca5a4826ab67d8ec31b1d4\"\u003e\u003ccode\u003e8bae597\u003c/code\u003e\u003c/a\u003e Make execution state completely Fiber-safe via Rails isolated execution state...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/dcae2b22f114829981ec453f5b2560fe4d8f50c6\"\u003e\u003ccode\u003edcae2b2\u003c/code\u003e\u003c/a\u003e Refactor Concurrency::Rule to use explicit ivars instead of options hash (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1776\"\u003e#1776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/613b0838c3db3a96955b515a6cba87635f3cc2f6\"\u003e\u003ccode\u003e613b083\u003c/code\u003e\u003c/a\u003e Prune CI test matrix to boundary Ruby versions per Rails version (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/1f78c18653dd37e9e0c49d562986b86a41743988\"\u003e\u003ccode\u003e1f78c18\u003c/code\u003e\u003c/a\u003e Truncate long labels in dashboard badges (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1766\"\u003e#1766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/13aa3972b335b26e9bcff07c7fe33a41a50c86e6\"\u003e\u003ccode\u003e13aa397\u003c/code\u003e\u003c/a\u003e Handle nil updated_at in stale? method (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/befffb0c126162f51a98fa705cc1479408551a39\"\u003e\u003ccode\u003ebefffb0\u003c/code\u003e\u003c/a\u003e Set default queue_select_limit to 1000 (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/78b2e42b341311b7413b481d25d4522e7f333bdd\"\u003e\u003ccode\u003e78b2e42\u003c/code\u003e\u003c/a\u003e use \u003ccode\u003etable_name\u003c/code\u003e instead of hardcoding \u003ccode\u003e:good_jobs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1774\"\u003e#1774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/64be61090014e0448282d344c7dda80aef3502b9\"\u003e\u003ccode\u003e64be610\u003c/code\u003e\u003c/a\u003e Fix PG::AmbiguousColumn in skiplocked/hybrid claim with ordered queues + conc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/2f6264dc1177df11f002e8b1c13d28827c0a8565\"\u003e\u003ccode\u003e2f6264d\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ePG::ProgramLimitExceeded\u003c/code\u003e in jobs index search for large error payloads ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.2...v4.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.15.0 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pagy` from 43.5.4 to 43.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ddnexus/pagy/releases\"\u003epagy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 43.5.6\u003c/h2\u003e\n\u003ch3\u003eChanges in 43.5.6\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eValidate I18n locale input, coerce dev_tools wand_scale, add input-safety docs (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/908\"\u003e#908\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eCoerce dev_tools wand_scale to a float\u003c/li\u003e\n\u003cli\u003eValidate the I18n locale against a BCP 47 pattern\u003c/li\u003e\n\u003cli\u003eUpdate docs and comments about safety\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"https://ddnexus.github.io/pagy/changelog\"\u003eCHANGELOG\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eVersion 43\u003c/h3\u003e\n\u003cp\u003eWe needed a leap version to unequivocally signal that it's not just a major version: it's a complete redesign of the legacy code at all levels, usage and API included.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhy 43?\u003c/strong\u003e Because it's exactly one step beyond \u003cem\u003e\u0026quot;The answer to the ultimate question of life, the Universe, and everything.\u0026quot;\u003c/em\u003e 😉\u003c/p\u003e\n\u003ch4\u003eImprovements\u003c/h4\u003e\n\u003cp\u003eThis version introduces several enhancements, such as new \u003ccode\u003e:countish\u003c/code\u003e and \u003ccode\u003e:keynav_js\u003c/code\u003e paginators and improved automation and configuration processes, reducing setup requirements by 99%. The update also includes a simpler API and new interactive development tools, making it a comprehensive upgrade from previous versions.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/countish\"\u003e:countish\u003c/a\u003e Paginator\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eFaster than OFFSET and supporting the full UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/keynav_js\"\u003eKeynav\u003c/a\u003e Pagination\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eThe pagy-exclusive technique using the fastest \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/keyset\"\u003ekeyset\u003c/a\u003e pagination alongside all frontend helpers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew interactive dev-tools\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/resources/stylesheets/#pagy-wand\"\u003ePagyWand\u003c/a\u003e to integrate the pagy CSS with your app themes.\u003c/li\u003e\n\u003cli\u003eNew \u003cstrong\u003ePagy AI\u003c/strong\u003e available right inside your own app.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIntelligent automation\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ddnexus.github.io/pagy/toolbox/configuration/initializer\"\u003eConfiguration\u003c/a\u003e requirements reduced by 99%.\u003c/li\u003e\n\u003cli\u003eSimplified \u003ca href=\"https://ddnexus.github.io/pagy/resources/javascript\"\u003eJavaScript\u003c/a\u003e setup.\u003c/li\u003e\n\u003cli\u003eAutomatic \u003ca href=\"https://ddnexus.github.io/pagy/resources/i18n\"\u003eI18n\u003c/a\u003e loading.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/ddnexus/pagy#examples\"\u003eSimpler API\u003c/a\u003e\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eYou solely need the \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators\"\u003epagy\u003c/a\u003e method and the \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/helpers\"\u003e\u003ccode\u003e@​pagy\u003c/code\u003e\u003c/a\u003e instance to paginate any collection and use any navigation tag and helper.\u003c/li\u003e\n\u003cli\u003eMethods are autoloaded only if used, and consume no memory otherwise.\u003c/li\u003e\n\u003cli\u003eMethods have narrower scopes and can be \u003ca href=\"https://ddnexus.github.io/pagy/guides/how-to#override-pagy-methods\"\u003eoverridden\u003c/a\u003e without deep knowledge.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/guides/quick-start\"\u003edocumentation\u003c/a\u003e\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eVery concise, straightforward, and easy to navigate and understand.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrade to 43\u003c/h3\u003e\n\u003cp\u003eSee the \u003ca href=\"https://ddnexus.github.io/pagy/guides/upgrade-guide/\"\u003eUpgrade Guide\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ddnexus/pagy/blob/master/docs/CHANGELOG.md\"\u003epagy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch4\u003eVersion 43.5.6\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eValidate I18n locale input, coerce dev_tools wand_scale, add input-safety docs (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/908\"\u003e#908\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eCoerce dev_tools wand_scale to a float\u003c/li\u003e\n\u003cli\u003eValidate the I18n locale against a BCP 47 pattern\u003c/li\u003e\n\u003cli\u003eUpdate docs and comments about safety\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.5.5\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRescue malformed page request param in Pagy::Keyset and KeynavJsPaginator (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/907\"\u003e#907\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eRescue malformed page request param in Pagy::Keyset and KeynavJsPaginator\u003c/li\u003e\n\u003cli\u003eSimplify decoding logic\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/ddnexus/pagy/commit/ef90524ef31ae03c0c57755d1d462f4233aab22f\"\u003e\u003ccode\u003eef90524\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/d6e546fbc4e606c514d96ca054405fd61d084cd8\"\u003e\u003ccode\u003ed6e546f\u003c/code\u003e\u003c/a\u003e Version 43.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/efcf09690e9fa7d7abdfb987b785a55f87e287df\"\u003e\u003ccode\u003eefcf096\u003c/code\u003e\u003c/a\u003e 💎 Validate I18n locale input, coerce dev_tools wand_scale, add input-safety d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/cbc77ebba1fc839345e78714eef41e3f672b6205\"\u003e\u003ccode\u003ecbc77eb\u003c/code\u003e\u003c/a\u003e Update gems and packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/2641e8c8c455ded17339c29f288138225197f97c\"\u003e\u003ccode\u003e2641e8c\u003c/code\u003e\u003c/a\u003e Improve docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/eb4a810caf7ee60c69c0c521ef0f9ef7e06ba396\"\u003e\u003ccode\u003eeb4a810\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/8ee37a02e19c7438670147b77ee3185b8cf9c7e1\"\u003e\u003ccode\u003e8ee37a0\u003c/code\u003e\u003c/a\u003e Version 43.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/ac62e00af1517af27d01d6f79c43facc29c320d5\"\u003e\u003ccode\u003eac62e00\u003c/code\u003e\u003c/a\u003e Improve comment/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/81215c4e3961eb985f69e40032fe5d8a86b62268\"\u003e\u003ccode\u003e81215c4\u003c/code\u003e\u003c/a\u003e Update gem and packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/916130148262d86ccb6e9c6cbd88f1165597ae65\"\u003e\u003ccode\u003e9161301\u003c/code\u003e\u003c/a\u003e 💎 Rescue malformed page request param in Pagy::Keyset and KeynavJsPaginator (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ddnexus/pagy/compare/43.5.4...43.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 8.0.1 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\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/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v8.0.1...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.86.2 to 1.87.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.87.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15167\"\u003e#15167\u003c/a\u003e: Add \u003ccode\u003e--enable-all-cops\u003c/code\u003e and \u003ccode\u003e--disable-all-cops\u003c/code\u003e command line options that override \u003ccode\u003eAllCops/EnabledByDefault\u003c/code\u003e and \u003ccode\u003eAllCops/DisabledByDefault\u003c/code\u003e in configuration files. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept the new \u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e directive comments. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15173\"\u003e#15173\u003c/a\u003e: Add optional Rubydex integration via \u003ccode\u003eAllCops/UseProjectIndex\u003c/code\u003e to enable cross-file detection in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e (experimental). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15168\"\u003e#15168\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the first argument is a call-like expression with its own parentheses, such as \u003ccode\u003eyield(...)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e when one side is an array or hash literal containing non-literal elements. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15182\"\u003e#15182\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/Alias\u003c/code\u003e causing a syntax error when the return value of \u003ccode\u003ealias_method\u003c/code\u003e is used, such as an argument to \u003ccode\u003epublic\u003c/code\u003e, \u003ccode\u003eprivate\u003c/code\u003e, \u003ccode\u003eprotected\u003c/code\u003e, or \u003ccode\u003emodule_function\u003c/code\u003e, or the right-hand side of an assignment. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15174\"\u003e#15174\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e causing a syntax error when the namespace contains a method call (e.g., \u003ccode\u003eclass self.class::Foo; end\u003c/code\u003e). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15180\"\u003e#15180\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/FileWrite\u003c/code\u003e causing a syntax error when the written heredoc is chained with another method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15186\"\u003e#15186\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/HashConversion\u003c/code\u003e causing a syntax error when \u003ccode\u003eHash[...]\u003c/code\u003e is passed an anonymous splat (\u003ccode\u003e*\u003c/code\u003e). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15192\"\u003e#15192\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/StructInheritance\u003c/code\u003e causing a syntax error when the inherited \u003ccode\u003eStruct.new\u003c/code\u003e is called without parentheses. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15170\"\u003e#15170\u003c/a\u003e: Fix an infinite loop for \u003ccode\u003eLayout/RedundantLineBreak\u003c/code\u003e when a single-line block is chained with a safe navigation method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15175\"\u003e#15175\u003c/a\u003e: Fix \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e to indent block bodies relative to the method selector for trailing-dot multi-line method chains when \u003ccode\u003eEnforcedStyleAlignWith\u003c/code\u003e is \u003ccode\u003erelative_to_receiver\u003c/code\u003e. (\u003ca href=\"https://github.com/ddbrendan\"\u003e\u003ccode\u003e@​ddbrendan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15135\"\u003e#15135\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e that swallowed chained method calls into a trailing inline comment on the line above the closing parenthesis. (\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15184\"\u003e#15184\u003c/a\u003e: Fix various typos and grammar mistakes in documentation and cop descriptions. (\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15171\"\u003e#15171\u003c/a\u003e: Cache \u003ccode\u003eFilePatterns#match?\u003c/code\u003e results per path so cops sharing the same \u003ccode\u003eInclude\u003c/code\u003e/\u003ccode\u003eExclude\u003c/code\u003e configuration do not each repeat \u003ccode\u003eFile.fnmatch?\u003c/code\u003e work on every file. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\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/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.87.0 (2026-05-30)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15167\"\u003e#15167\u003c/a\u003e: Add \u003ccode\u003e--enable-all-cops\u003c/code\u003e and \u003ccode\u003e--disable-all-cops\u003c/code\u003e command line options that override \u003ccode\u003eAllCops/EnabledByDefault\u003c/code\u003e and \u003ccode\u003eAllCops/DisabledByDefault\u003c/code\u003e in configuration files. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept the new \u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e directive comments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15173\"\u003e#15173\u003c/a\u003e: Add optional Rubydex integration via \u003ccode\u003eAllCops/UseProjectIndex\u003c/code\u003e to enable cross-file detection in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e (experimental). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15168\"\u003e#15168\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the first argument is a call-like expression with its own parentheses, such as \u003ccode\u003eyield(...)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e when one side is an array or hash literal containing non-literal elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15182\"\u003e#15182\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/Alias\u003c/code\u003e causing a syntax error when the return value of \u003ccode\u003ealias_method\u003c/code\u003e is used, such as an argument to \u003ccode\u003epublic\u003c/code\u003e, \u003ccode\u003eprivate\u003c/code\u003e, \u003ccode\u003eprotected\u003c/code\u003e, or \u003ccode\u003emodule_function\u003c/code\u003e, or the right-hand side of an assignment. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15174\"\u003e#15174\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e causing a syntax error when the namespace contains a method call (e.g., \u003ccode\u003eclass self.class::Foo; end\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15180\"\u003e#15180\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/FileWrite\u003c/code\u003e causing a syntax error when the written heredoc is chained with another method call. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15186\"\u003e#15186\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/HashConversion\u003c/code\u003e causing a syntax error when \u003ccode\u003eHash[...]\u003c/code\u003e is passed an anonymous splat (\u003ccode\u003e*\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15192\"\u003e#15192\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/StructInheritance\u003c/code\u003e causing a syntax error when the inherited \u003ccode\u003eStruct.new\u003c/code\u003e is called without parentheses. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15170\"\u003e#15170\u003c/a\u003e: Fix an infinite loop for \u003ccode\u003eLayout/RedundantLineBreak\u003c/code\u003e when a single-line block is chained with a safe navigation method call. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15175\"\u003e#15175\u003c/a\u003e: Fix \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e to indent block bodies relative to the method selector for trailing-dot multi-line method chains when \u003ccode\u003eEnforcedStyleAlignWith\u003c/code\u003e is \u003ccode\u003erelative_to_receiver\u003c/code\u003e. ([\u003ca href=\"https://github.com/ddbrendan\"\u003e\u003ccode\u003e@​ddbrendan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15135\"\u003e#15135\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e that swallowed chained method calls into a trailing inline comment on the line above the closing parenthesis. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15184\"\u003e#15184\u003c/a\u003e: Fix various typos and grammar mistakes in documentation and cop descriptions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15171\"\u003e#15171\u003c/a\u003e: Cache \u003ccode\u003eFilePatterns#match?\u003c/code\u003e results per path so cops sharing the same \u003ccode\u003eInclude\u003c/code\u003e/\u003ccode\u003eExclude\u003c/code\u003e configuration do not each repeat \u003ccode\u003eFile.fnmatch?\u003c/code\u003e work on every file. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\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/rubocop/rubocop/commit/e5b788dba181ad94de30cfbad661c5d6aa08a4e5\"\u003e\u003ccode\u003ee5b788d\u003c/code\u003e\u003c/a\u003e Cut 1.87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65aece887ba956fe585873d9bfcf4034effce9cd\"\u003e\u003ccode\u003e65aece8\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/810c790a68123a8c4aae6607bfa792e9d9275585\"\u003e\u003ccode\u003e810c790\u003c/code\u003e\u003c/a\u003e Fix incorrect autocorrect for \u003ccode\u003eStyle/StructInheritance\u003c/code\u003e cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/1ec05543769f7cd7b89bf9bf2d6c0e2f071af6a1\"\u003e\u003ccode\u003e1ec0554\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e] Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept new SimpleCov dir...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/11cd569b1512310aa1ae253ff3e4793bdeb08091\"\u003e\u003ccode\u003e11cd569\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15190\"\u003e#15190\u003c/a\u003e from koic/fix_false_positives_in_style_yoda_condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/ceff1364bf05d61ea2aff88c0082b30ef8c3c70a\"\u003e\u003ccode\u003eceff136\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e] Fix false positives for \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4a12596a39e512dcf7aa4aea728c1c688a704fc7\"\u003e\u003ccode\u003e4a12596\u003c/code\u003e\u003c/a\u003e Fix incorrect autocorrect for \u003ccode\u003eStyle/HashConversion\u003c/code\u003e cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4801e9d2bafc6208770b0a5b930562c517f77275\"\u003e\u003ccode\u003e4801e9d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15184\"\u003e#15184\u003c/a\u003e from rubocop/fix-typos-and-grammar-in-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/bfe7dc5e3893ce4ce9276e088122106ea8690b7f\"\u003e\u003ccode\u003ebfe7dc5\u003c/code\u003e\u003c/a\u003e Fix various typos and grammar mistakes in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/6988aa464bd5d797d715a187ef9814bed26a5659\"\u003e\u003ccode\u003e6988aa4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15182\"\u003e#15182\u003c/a\u003e from koic/fix_incorrect_autocorrect_for_style_alias...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.86.2...v1.87.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rails` from 2.35.2 to 2.35.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/releases\"\u003erubocop-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Rails v2.35.4\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1418\"\u003e#1418\u003c/a\u003e: Fix a false positive for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003erequire\u003c/code\u003e is given an array literal, such as \u003ccode\u003eparams.require([:foo, :bar]).permit(:baz)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e: Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003epermit\u003c/code\u003e receives a single dynamic argument, such as \u003ccode\u003eparams.require(:user).permit(permitted_attributes)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e: Fix \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to allow \u003ccode\u003eparams[:foo].inspect\u003c/code\u003e. (\u003ca href=\"https://github.com/jdelStrother\"\u003e\u003ccode\u003e@​jdelStrother\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.3\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1630\"\u003e#1630\u003c/a\u003e: Fix a false positive in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when negating \u003ccode\u003eparams[:key]\u003c/code\u003e with \u003ccode\u003e!\u003c/code\u003e, such as \u003ccode\u003e!params[:key]\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1629\"\u003e#1629\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using the safe navigation operator (\u003ccode\u003e\u0026amp;.\u003c/code\u003e) on \u003ccode\u003eparams[:key]\u003c/code\u003e. Autocorrecting \u003ccode\u003eparams[:key]\u0026amp;.downcase\u003c/code\u003e to \u003ccode\u003eparams.expect(:key).downcase\u003c/code\u003e silently changes behavior — a missing param goes from returning \u003ccode\u003enil\u003c/code\u003e to raising \u003ccode\u003eActionController::ParameterMissing\u003c/code\u003e. (\u003ca href=\"https://github.com/lucasmazza\"\u003e\u003ccode\u003e@​lucasmazza\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/rubocop/rubocop-rails/blob/master/CHANGELOG.md\"\u003erubocop-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.35.4 (2026-06-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1418\"\u003e#1418\u003c/a\u003e: Fix a false positive for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003erequire\u003c/code\u003e is given an array literal, such as \u003ccode\u003eparams.require([:foo, :bar]).permit(:baz)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e: Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003epermit\u003c/code\u003e receives a single dynamic argument, such as \u003ccode\u003eparams.require(:user).permit(permitted_attributes)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e: Fix \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to allow \u003ccode\u003eparams[:foo].inspect\u003c/code\u003e. ([\u003ca href=\"https://github.com/jdelStrother\"\u003e\u003ccode\u003e@​jdelStrother\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.3 (2026-05-27)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1630\"\u003e#1630\u003c/a\u003e: Fix a false positive in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when negating \u003ccode\u003eparams[:key]\u003c/code\u003e with \u003ccode\u003e!\u003c/code\u003e, such as \u003ccode\u003e!params[:key]\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1629\"\u003e#1629\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using the safe navigation operator (\u003ccode\u003e\u0026amp;.\u003c/code\u003e) on \u003ccode\u003eparams[:key]\u003c/code\u003e. Autocorrecting \u003ccode\u003eparams[:key]\u0026amp;.downcase\u003c/code\u003e to \u003ccode\u003eparams.expect(:key).downcase\u003c/code\u003e silently changes behavior — a missing param goes from returning \u003ccode\u003enil\u003c/code\u003e to raising \u003ccode\u003eActionController::ParameterMissing\u003c/code\u003e. ([\u003ca href=\"https://github.com/lucasmazza\"\u003e\u003ccode\u003e@​lucasmazza\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/rubocop/rubocop-rails/commit/a4d53a50899c429235110e812106e74294123f72\"\u003e\u003ccode\u003ea4d53a5\u003c/code\u003e\u003c/a\u003e Cut 2.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/e9e592da6223cea219a5de3d0a3d7a5c6b48349f\"\u003e\u003ccode\u003ee9e592d\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/84eb5fe95485676529d3a83e4eeeabcfee764a06\"\u003e\u003ccode\u003e84eb5fe\u003c/code\u003e\u003c/a\u003e [Doc] Update the doc for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/5490e3ef9c222da82be8446adb63b878f8167a67\"\u003e\u003ccode\u003e5490e3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1636\"\u003e#1636\u003c/a\u003e from koic/fix_strong_parameters_expect_dynamic_permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/cfe75e93436af56b8d5c5ef7f04f4075dc70f5a9\"\u003e\u003ccode\u003ecfe75e9\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e] Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/4817d57aaa784720c309318df5db7065a7657fb5\"\u003e\u003ccode\u003e4817d57\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1633\"\u003e#1633\u003c/a\u003e from koic/doc_strong_parameters_expect_safety\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/d9824c64da286a4eac7b11e6dbc7b63bb28efcfe\"\u003e\u003ccode\u003ed9824c6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1634\"\u003e#1634\u003c/a\u003e from koic/fix_strong_parameters_expect_array_require\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/e30a80b7ac818dd04987fc2411fd187e092e18f4\"\u003e\u003ccode\u003ee30a80b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e from jdelStrother/params-inspect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/70651a0bd9c3d458690eb62fc341a3c4aeb20edb\"\u003e\u003ccode\u003e70651a0\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003einspect\u003c/code\u003e in Rails/StrongParametersExpect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/a8f6e0c043f6711055ea1d57d94babf9c4ce7ac1\"\u003e\u003ccode\u003ea8f6e0c\u003c/code\u003e\u003c/a\u003e [Doc] Document additional unsafety of \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.35.2...v2.35.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rspec` from 3.9.0 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/releases\"\u003erubocop-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix false positives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when \u003ccode\u003eCustomTransform\u003c/code\u003e maps a namespace to an empty string. (\u003ca href=\"https://github.com/sakuro\"\u003e\u003ccode\u003e@​sakuro\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with options. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eStrict\u003c/code\u003e option to \u003ccode\u003eRSpec/SharedContext\u003c/code\u003e to flag \u003ccode\u003eshared_context\u003c/code\u003e whenever it contains examples, even alongside setup code. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eNegatedMatcher\u003c/code\u003e configuration option \u003ccode\u003eRSpec/ExpectChange\u003c/code\u003e. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with interpolations. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to suggest \u003ccode\u003einclude\u003c/code\u003e matcher when \u003ccode\u003ematch\u003c/code\u003e is used with simple string literals without regex-specific features. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/DiscardedMatcher\u003c/code\u003e to detect matchers in void context (e.g. missing \u003ccode\u003e.and\u003c/code\u003e between compound matchers). (\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eitblock\u003c/code\u003e nodes. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRSpec/ScatteredLet\u003c/code\u003e now preserves the order of \u003ccode\u003elet\u003c/code\u003es during auto-correction. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/EmptyLineAfterFinalLet\u003c/code\u003e inside \u003ccode\u003eshared_examples\u003c/code\u003e / \u003ccode\u003einclude_examples\u003c/code\u003e / \u003ccode\u003eit_behaves_like\u003c/code\u003e blocks. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ContainExactly\u003c/code\u003e when \u003ccode\u003econtain_exactly\u003c/code\u003e has multiple splat arguments. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd autocorrect support for \u003ccode\u003eRSpec/SubjectDeclaration\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix false negatives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when the expected class path only partially matches a path segment. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/ExpectActual\u003c/code\u003e when the matcher takes no arguments (e.g. \u003ccode\u003eexpect(\u0026quot;foo\u0026quot;).to be_present\u003c/code\u003e, \u003ccode\u003eexpect(1).to be\u003c/code\u003e). (\u003ca href=\"https://github.com/cvx\"\u003e\u003ccode\u003e@​cvx\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/rubocop/rubocop-rspec/blob/master/CHANGELOG.md\"\u003erubocop-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.2 (2026-06-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix false positives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when \u003ccode\u003eCustomTransform\u003c/code\u003e maps a namespace to an empty string. ([\u003ca href=\"https://github.com/sakuro\"\u003e\u003ccode\u003e@​sakuro\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with options. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.1 (2026-06-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eStrict\u003c/code\u003e option to \u003ccode\u003eRSpec/SharedContext\u003c/code\u003e to flag \u003ccode\u003eshared_context\u003c/code\u003e whenever it contains examples, even alongside setup code. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eNegatedMatcher\u003c/code\u003e configuration option \u003ccode\u003eRSpec/ExpectChange\u003c/code\u003e. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with interpolations. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2026-06-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to suggest \u003ccode\u003einclude\u003c/code\u003e matcher when \u003ccode\u003ematch\u003c/code\u003e is used with simple string literals without regex-specific features. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/DiscardedMatcher\u003c/code\u003e to detect matchers in void context (e.g. missing \u003ccode\u003e.and\u003c/code\u003e between compound matchers). ([\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eitblock\u003c/code\u003e nodes. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRSpec/ScatteredLet\u003c/code\u003e now preserves the order of \u003ccode\u003elet\u003c/code\u003es during auto-correction. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/EmptyLineAfterFinalLet\u003c/code\u003e inside \u003ccode\u003eshared_examples\u003c/code\u003e / \u003ccode\u003einclude_examples\u003c/code\u003e / \u003ccode\u003eit_behaves_like\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ContainExactly\u003c/code\u003e when \u003ccode\u003econtain_exactly\u003c/code\u003e has multiple splat arguments. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd autocorrect support for \u003ccode\u003eRSpec/SubjectDeclaration\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix false negatives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when the expected class path only partially matches a path segment. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/ExpectActual\u003c/code\u003e when the matcher takes no arguments (e.g. \u003ccode\u003eexpect(\u0026quot;foo\u0026quot;).to be_present\u003c/code\u003e, \u003ccode\u003eexpect(1).to be\u003c/code\u003e). ([\u003ca href=\"https://github.com/cvx\"\u003e\u003ccode\u003e@​cvx\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/rubocop/rubocop-rspec/commit/2488441eb70a9dd40843492d4ce76d491ee98a8f\"\u003e\u003ccode\u003e2488441\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2189\"\u003e#2189\u003c/a\u003e from rubocop/release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/c9e53cf7e52f01baf54d9f9e1cb76f8788a3f2b7\"\u003e\u003ccode\u003ec9e53cf\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/7ae0a42f6e2510b910959b3457164ea87fa15635\"\u003e\u003ccode\u003e7ae0a42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2186\"\u003e#2186\u003c/a\u003e from sakuro/fix/spec-file-path-format-empty-custom-t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/8b0b5e9dd4035dfa8d51a7d42fad35b363f700d2\"\u003e\u003ccode\u003e8b0b5e9\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into fix/spec-file-path-format-empty-custom-transform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/dc4465cb76cf0b8a6c088cb8ed983ab63e0e7740\"\u003e\u003ccode\u003edc4465c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2188\"\u003e#2188\u003c/a\u003e from rubocop/fix-2185\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/d5de6b244e5992e6b0487e6c5f31e85cb48bc88c\"\u003e\u003ccode\u003ed5de6b2\u003c/code\u003e\u003c/a\u003e Consider regexp with options a non-simple regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/bad0cb3d8a6703f10a620b0c91dbb8e32db273bb\"\u003e\u003ccode\u003ebad0cb3\u003c/code\u003e\u003c/a\u003e :bug: Fix RSpec/SpecFilePathFormat false positives when CustomTransform maps ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/ec3eeab2e7041d1891b0355c5516b7b161b811a2\"\u003e\u003ccode\u003eec3eeab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2183\"\u003e#2183\u003c/a\u003e from rubocop/fix-match-with-simple-regex-with-interp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/16bbf497ec1af234fc8ecbdacabfb519469af2c0\"\u003e\u003ccode\u003e16bbf49\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/2a78abd918ea7ebeea829318b05eee358885ae7a\"\u003e\u003ccode\u003e2a78abd\u003c/code\u003e\u003c/a\u003e Ignore interpolation in MatchWithSimpleRegex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rspec/compare/v3.9.0...v3.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rspec-openapi` from 0.26.0 to 0.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/exoego/rspec-openapi/releases\"\u003erspec-openapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.28.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐞 Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: merge heterogeneous nested-array items across outer array items by \u003ca href=\"https://github.com/Spence1115\"\u003e\u003ccode\u003e@​Spence1115\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/350\"\u003eexoego/rspec-openapi#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: recurse arrays and skip empty items in build_merged_schema_from_variations by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/352\"\u003eexoego/rspec-openapi#352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: exclude unnecessary file in gem (46 files -\u0026gt; 27 files, 38KB -\u0026gt; 30KB) by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/348\"\u003eexoego/rspec-openapi#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/349\"\u003eexoego/rspec-openapi#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v0.28.0 by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/353\"\u003eexoego/rspec-openapi#353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/exoego/rspec-openapi/compare/v0.27.0...v0.28.0\"\u003ehttps://github.com/exoego/rspec-openapi/compare/v0.27.0...v0.28.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐞 Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: merge heterogeneous nested-array items across outer array items by \u003ca href=\"https://github.com/Spence1115\"\u003e\u003ccode\u003e@​Spence1115\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/350\"\u003eexoego/rspec-openapi#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: recurse arrays and skip empty items in build_merged_schema_from_variations by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/352\"\u003eexoego/rspec-openapi#352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: exclude unnecessary file in gem (46 files -\u0026gt; 27 files, 38KB -\u0026gt; 30KB) by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/348\"\u003eexoego/rspec-openapi#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/349\"\u003eexoego/rspec-openapi#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v0.28.0 by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/353\"\u003eexoego/rspec-openapi#353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/exoego/rspec-openapi/compare/v0.27.0...v0.28.0\"\u003ehttps://github.com/exoego/rspec-openapi/compare/v0.27.0...v0.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.27.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🎉 Exciting New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: make parameters optional if not appeared in all test cases by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/338\"\u003eexoego/rspec-openapi#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: handle empty YAML/JSON files gracefully by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/339\"\u003eexoego/rspec-openapi#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003estyle: enforce brackets style for Style/SymbolArray by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/340\"\u003eexoego/rspec-openapi#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estyle: enforce brackets style for Style/WordArray by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/341\"\u003eexoego/rspec-openapi#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estyle: autocorrect by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/342\"\u003eexoego/rspec-openapi#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: refactor schema builder  by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/343\"\u003eexoego/rspec-openapi#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: schema_builder by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/344\"\u003eexoego/rspec-openapi#344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: return Hash from extractor request_attributes by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/345\"\u003eexoego/rspec-openapi#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: refactor rails test line length by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/346\"\u003eexoego/rspec-openapi#346\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v0.27.0 by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/347\"\u003eexoego/rspec-openapi#347\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/exoego/rspec-openapi/compare/v0.26.0...v0.27.0\"\u003ehttps://github.com/exoego/rspec-openapi/compare/v0.26.0...v0.27.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- 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/exoego/rspec-openapi/commit/3d614a476bfa0c87163c7d9bd5087256d25dfb86\"\u003e\u003ccode\u003e3d614a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/353\"\u003e#353\u003c/a\u003e from exoego/release/v0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/314f3334210be876fd918751105d4c5a1aceba8e\"\u003e\u003ccode\u003e314f333\u003c/code\u003e\u003c/a\u003e Bump version to 0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/4eee52a37c44ff9b779b50bd3fcf156f5a98d3f9\"\u003e\u003ccode\u003e4eee52a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/352\"\u003e#352\u003c/a\u003e from exoego/fix/nested-array-merge-across-items-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/1bb0ba624af7b5f5ac12f09fe99a0e3c4ac45ac9\"\u003e\u003ccode\u003e1bb0ba6\u003c/code\u003e\u003c/a\u003e fix: recurse arrays and skip empty items in build_merged_schema_from_variations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/3630b7cda528df4bcce371853fbceda9d98a6538\"\u003e\u003ccode\u003e3630b7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/350\"\u003e#350\u003c/a\u003e from Spence1115/fix/nested-array-merge-across-items\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/9ead9b0fd0e4a9fe93b7e1c85d944cd1f299c2e3\"\u003e\u003ccode\u003e9ead9b0\u003c/code\u003e\u003c/a\u003e fix: merge heterogeneous nested-array items across outer array items\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/85c54b03dbcc0fe8fb56985cdfd6a6239ba5610a\"\u003e\u003ccode\u003e85c54b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/349\"\u003e#349\u003c/a\u003e from exoego/dependabot/github_actions/actions/setup-n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/943049a6591c95c45435cf2387fb452af21ceea5\"\u003e\u003ccode\u003e943049a\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/bd6c3dcda4f78e62a329ffb59102f5d00e902c74\"\u003e\u003ccode\u003ebd6c3dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/348\"\u003e#348\u003c/a\u003e from exoego/chore/slim-gem-build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/229a1e5d821b79aad8427780da54c58bbe5cd78c\"\u003e\u003ccode\u003e229a1e5\u003c/code\u003e\u003c/a\u003e Apply suggestion from \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/exoego/rspec-openapi/compare/v0.26.0...v0.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/bagajab/resume-builder-backend/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bagajab%2Fresume-builder-backend/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"4629815588","node_id":"PR_kwDOJKv3g87kxpOt","number":1259,"state":"closed","title":"Bump the bundler group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-15T02:07:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-10T09:24:34.000Z","updated_at":"2026-06-15T02:07:40.000Z","time_to_close":405784,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":16,"packages":[{"name":"aws-sdk-s3","old_version":"1.219.0","new_version":"1.225.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.24.6","repository_url":"https://github.com/rails/bootsnap"},{"name":"faker","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"laa_crime_forms_common","old_version":"","new_version":"[oauth2](https://github.com/ruby-oauth/oauth2)","repository_url":"https://github.com/ministryofjustice/laa-crime-forms-common"},{"name":"`2.0.22`","old_version":"","new_version":"[propshaft](https://github.com/rails/propshaft)"},{"name":"`1.3.2`","old_version":"","new_version":"[sidekiq](https://github.com/sidekiq/sidekiq)"},{"name":"`8.1.6`","old_version":"","new_version":"[sentry-rails](https://github.com/getsentry/sentry-ruby)"},{"name":"`6.6.0`","old_version":"","new_version":"[overcommit](https://github.com/sds/overcommit)"},{"name":"`0.70.0`","old_version":"","new_version":"[axe-core-rspec](https://github.com/dequelabs/axe-core-gems)"},{"name":"`4.11.3`","old_version":"","new_version":"[rubocop](https://github.com/rubocop/rubocop)"},{"name":"`1.87.0`","old_version":"","new_version":"[rubocop-rails](https://github.com/rubocop/rubocop-rails)"},{"name":"`2.35.3`","old_version":"","new_version":"[selenium-webdriver](https://github.com/SeleniumHQ/selenium)"},{"name":"`4.44.0`","old_version":"","new_version":"[super_diff](https://github.com/splitwise/super_diff)"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.219.0` | `1.225.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.24.6` |\n| [faker](https://github.com/faker-ruby/faker) | `3.7.1` | `3.8.0` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.14.1` | `2.15.1` |\n| [laa_crime_forms_common](https://github.com/ministryofjustice/laa-crime-forms-common) | ``e94f122`` | ``41fa1ce`` |\n| [oauth2](https://github.com/ruby-oauth/oauth2) | `2.0.18` | `2.0.22` |\n| [propshaft](https://github.com/rails/propshaft) | `1.3.1` | `1.3.2` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.2` | `8.1.6` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `6.5.0` | `6.6.0` |\n| [overcommit](https://github.com/sds/overcommit) | `0.69.0` | `0.70.0` |\n| [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) | `4.11.1` | `4.11.3` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.86.1` | `1.87.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.3` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.43.0` | `4.44.0` |\n| [super_diff](https://github.com/splitwise/super_diff) | `0.18.0` | `0.19.0` |\n\n\nUpdates `aws-sdk-s3` from 1.219.0 to 1.225.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.225.0 (2026-06-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Adding new BDD representation of endpoint ruleset\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.224.0 (2026-05-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.223.0 (2026-05-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.222.0 (2026-05-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.221.0 (2026-05-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Validate outpost access point resource name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.220.0 (2026-04-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - This release adds five additional checksum algorithms for S3 data integrity (MD5, SHA-512, XXHash3, XXHash64, XXHash128) and support for S3 Inventory on directory buckets (S3 Express One Zone).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.24.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.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/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.6\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\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/rails/bootsnap/commit/026e183e7f4f4f0eab52d6b9eebafe548cde08a2\"\u003e\u003ccode\u003e026e183\u003c/code\u003e\u003c/a\u003e Release 1.24.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/263e34652b4884da97b5e4974ef53fce5753b890\"\u003e\u003ccode\u003e263e346\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/556\"\u003e#556\u003c/a\u003e from byroot/remove-canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c31cd81f39285ed43898377ff8af2dcf0d851e9\"\u003e\u003ccode\u003e7c31cd8\u003c/code\u003e\u003c/a\u003e Check for [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e] by checking Ruby version rather than a canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/54eba7643b359d85d518374af9e8b126a25a99d7\"\u003e\u003ccode\u003e54eba76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/554\"\u003e#554\u003c/a\u003e from byroot/namespace-overflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/fe963d56fc5981eb5c08f4352ca2937226ef2c48\"\u003e\u003ccode\u003efe963d5\u003c/code\u003e\u003c/a\u003e bs_cache_path: account for namespace length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b42db6610163d682fb27f986f7155882844ba2e\"\u003e\u003ccode\u003e7b42db6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/553\"\u003e#553\u003c/a\u003e from arpitjain099/chore/declare-workflow-perms\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/113b184cc52613c543af3e8155cab24851fd9d35\"\u003e\u003ccode\u003e113b184\u003c/code\u003e\u003c/a\u003e ci: add permissions: contents: read to ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 3.7.1 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-ruby/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Lazy loading config by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3244\"\u003efaker-ruby/faker#3244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnabling lazy load\u003c/h2\u003e\n\u003cp\u003eThis version introduces lazy loading. It means users will only pay for what they use. Faker \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/experiments/lazy_load.md\"\u003eloads 2x faster\u003c/a\u003e when it's enabled.\u003c/p\u003e\n\u003cp\u003eLazy loading the generators is disabled by default. To enable it, choose one of the configuration options below:\u003c/p\u003e\n\u003ch3\u003e1 - Set lazy load as a Faker Config\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eFaker::Config.lazy_loading = true\u003c/code\u003e\u003c/p\u003e\n\u003ch3\u003e2 - Set lazy load as an environment variable\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eFAKER_LAZY_LOAD = 1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWe hope you get to see the improvement by enabling it. Please file a bug report for any issues!\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jeremyevans\"\u003e\u003ccode\u003e@​jeremyevans\u003c/code\u003e\u003c/a\u003e for the mentoring, and to \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e for pairing and code reviews.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.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/faker-ruby/faker/blob/main/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.8.0\"\u003ev3.8.0\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Lazy loading config by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3244\"\u003efaker-ruby/faker#3244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnabling lazy load\u003c/h3\u003e\n\u003cp\u003eThis version introduces lazy loading. It means users will only pay for what they use. Faker \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/experiments/lazy_load.md\"\u003eloads 2x faster\u003c/a\u003e when it's enabled.\u003c/p\u003e\n\u003cp\u003eLazy loading the generators is disabled by default. To enable it, choose one of the configuration options below:\u003c/p\u003e\n\u003ch4\u003e1 - Set lazy load as a Faker Config\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eFaker::Config.lazy_loading = true\u003c/code\u003e\u003c/p\u003e\n\u003ch4\u003e2 - Set lazy load as an environment variable\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eFAKER_LAZY_LOAD = 1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWe hope you get to see the improvement by enabling it. Please file a bug report for any issues!\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jeremyevans\"\u003e\u003ccode\u003e@​jeremyevans\u003c/code\u003e\u003c/a\u003e for the mentoring, and to \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e for pairing and code reviews.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\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/faker-ruby/faker/commit/e48d35f4fa0d4bda8257975d9549e4d9422a0ba4\"\u003e\u003ccode\u003ee48d35f\u003c/code\u003e\u003c/a\u003e bump faker to v3.8.0 (\u003ca href=\"https://redirect.github.com/faker-ruby/faker/issues/3245\"\u003e#3245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-ruby/faker/commit/7193b32ef1a6bb1445fbba203996b790d9b7b314\"\u003e\u003ccode\u003e7193b32\u003c/code\u003e\u003c/a\u003e Add Lazy loading config (\u003ca href=\"https://redirect.github.com/faker-ruby/faker/issues/3244\"\u003e#3244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.14.1 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `laa_crime_forms_common` from `e94f122` to `41fa1ce`\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/41fa1cec56a56340ed1d011b3c1964f1072cb906\"\u003e\u003ccode\u003e41fa1ce\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/119\"\u003e#119\u003c/a\u003e from ministryofjustice/CRM457-3022-github-security-ba...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/7991d9f65367005ae177c2b6965cada43d5a05cb\"\u003e\u003ccode\u003e7991d9f\u003c/code\u003e\u003c/a\u003e CRM457-3022 added cooldown config for dependabot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/ac6148ec20983f00aa5c7301781aa63d01df6683\"\u003e\u003ccode\u003eac6148e\u003c/code\u003e\u003c/a\u003e CRM457-3022 added pre-commit hook process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/e76aedc1b2e8a915bb8f154ed3ebe5aceb14cc7a\"\u003e\u003ccode\u003ee76aedc\u003c/code\u003e\u003c/a\u003e CRM457-3022 added SCA - software composition analysis action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/d4e472c1614d1641b63ea143a142204ccf32d837\"\u003e\u003ccode\u003ed4e472c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/114\"\u003e#114\u003c/a\u003e from ministryofjustice/CRM457-2999-github-actions-str...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/5dec183708d41188c5597d930e88a01507bf819f\"\u003e\u003ccode\u003e5dec183\u003c/code\u003e\u003c/a\u003e Update pipeline, pin actions to commit SHAs instead of versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/dd7de8cbe58898fa5ce9f46f033ddcd05095c950\"\u003e\u003ccode\u003edd7de8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/113\"\u003e#113\u003c/a\u003e from ministryofjustice/dependabot/bundler/activesuppo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/d93ab8075c0e5689c21fa58ff9c33244b591eb33\"\u003e\u003ccode\u003ed93ab80\u003c/code\u003e\u003c/a\u003e Bump activesupport from 8.1.1 to 8.1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/b40bb472dbf9690271e988d10ee795f066045b8d\"\u003e\u003ccode\u003eb40bb47\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/112\"\u003e#112\u003c/a\u003e from ministryofjustice/dependabot/bundler/json-2.15.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/119dce0ada4068e7cdfda9566f63ecdb53b17a4a\"\u003e\u003ccode\u003e119dce0\u003c/code\u003e\u003c/a\u003e Bump json from 2.15.2 to 2.15.2.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/compare/e94f122b9555ec36ffccb300d6cbd53158b23f54...41fa1cec56a56340ed1d011b3c1964f1072cb906\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oauth2` from 2.0.18 to 2.0.22\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases\"\u003eoauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.21...v2.0.22\"\u003e2.0.22\u003c/a\u003e - 2026-06-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.22\"\u003ev2.0.22\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 542/542 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 180/180 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised generated development tooling floors to \u003ccode\u003ekettle-dev\u003c/code\u003e \u0026gt;= 2.1.1 and\n\u003ccode\u003eversion_gem\u003c/code\u003e \u0026gt;= 1.1.11.\u003c/li\u003e\n\u003cli\u003eRaised the runtime dependency floor for \u003ccode\u003esnaky_hash\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 2.0.5\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[GHSA-pp92-crg2-gfv9] Prevent protocol-relative redirect \u003ccode\u003eLocation\u003c/code\u003e values from changing request authority, and strip \u003ccode\u003eAuthorization\u003c/code\u003e headers from cross-origin redirects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOfficial Discord 👉️ \u003ca href=\"https://discord.gg/3qme4XHNKN\"\u003e\u003cimg src=\"https://img.shields.io/discord/1373797679469170758?style=flat\" alt=\"Live Chat on Discord\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMany paths lead to being a sponsor or a backer of this project. Are you on such a path?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://opencollective.com/ruby-oauth#backer\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/backers/badge.svg?style=flat\" alt=\"OpenCollective Backers\" /\u003e\u003c/a\u003e \u003ca href=\"https://opencollective.com/ruby-oauth#sponsor\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/sponsors/badge.svg?style=flat\" alt=\"OpenCollective Sponsors\" /\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sponsors/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social\u0026amp;logo=github\" alt=\"Sponsor Me on Github\" /\u003e\u003c/a\u003e \u003ca href=\"https://liberapay.com/pboling/donate\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay\u0026amp;color=a51611\u0026amp;style=flat\" alt=\"Liberapay Goal Progress\" /\u003e\u003c/a\u003e \u003ca href=\"https://www.paypal.com/paypalme/peterboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat\u0026amp;logo=paypal\" alt=\"Donate on PayPal\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.buymeacoffee.com/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat\" alt=\"Buy me a coffee\" /\u003e\u003c/a\u003e \u003ca href=\"https://polar.sh/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/polar-donate-a51611.svg?style=flat\" alt=\"Donate on Polar\" /\u003e\u003c/a\u003e \u003ca href=\"https://ko-fi.com/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts at ko-fi.com\" /\u003e\u003c/a\u003e \u003ca href=\"https://patreon.com/galtzo\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts using Patreon\" /\u003e\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/blob/main/CHANGELOG.md\"\u003eoauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.22] - 2026-06-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.22][2.0.22t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 542/542 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 180/180 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised generated development tooling floors to \u003ccode\u003ekettle-dev\u003c/code\u003e \u0026gt;= 2.1.1 and\n\u003ccode\u003eversion_gem\u003c/code\u003e \u0026gt;= 1.1.11.\u003c/li\u003e\n\u003cli\u003eRaised the runtime dependency floor for \u003ccode\u003esnaky_hash\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 2.0.5\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[GHSA-pp92-crg2-gfv9] Prevent protocol-relative redirect \u003ccode\u003eLocation\u003c/code\u003e values from changing request authority, and strip \u003ccode\u003eAuthorization\u003c/code\u003e headers from cross-origin redirects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[2.0.21] - 2026-06-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.21][2.0.21t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 525/525 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 174/174 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/730\"\u003egh!730\u003c/a\u003e - Alternatives section to README by \u003ca href=\"https://github.com/jonathangrinstead\"\u003e\u003ccode\u003e@​jonathangrinstead\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates to alternatives section - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eAdded conditional \u003ccode\u003eappraisal2-rubocop\u003c/code\u003e Appraisal root loading on modern Ruby\nso generated Appraisal gemfiles are normalized during generation - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised generated \u003ccode\u003eversion_gem\u003c/code\u003e dependency floor to \u003ccode\u003eversion_gem\u003c/code\u003e \u0026gt;= 1.1.10 - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaised the runtime dependency floor for \u003ccode\u003eauth-sanitizer\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 0.2.1\u003c/code\u003e - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefreshed generated package metadata, support documentation, CI workflows,\nand development dependency floors from the current kettle-jem template - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumented the current per-version Ruby, JRuby, and TruffleRuby CI matrix in\ngenerated README badges and compatibility tables - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved the post-install message from the gemspec to keep installs quieter - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefreshed generated README support badges so Ruby 2.3 is listed as\nsupported but untested - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefreshed generated project metadata from the current kettle-jem template - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaised development tooling floors to \u003ccode\u003ekettle-dev\u003c/code\u003e \u0026gt;= 2.1.0 and\n\u003ccode\u003eappraisal2\u003c/code\u003e \u0026gt;= 3.1.1 for Appraisal2's split generate/install/update\ncommand semantics.\u003c/li\u003e\n\u003cli\u003eRefreshed generated Appraisal and CI templates to appraisal2-rubocop 0.2.0 - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\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/ruby-oauth/oauth2/commit/551f434a81912763fb5a8e240cd00a6532e26970\"\u003e\u003ccode\u003e551f434\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/849e7e5e1f867c2d05c05428922aed12bc6439cb\"\u003e\u003ccode\u003e849e7e5\u003c/code\u003e\u003c/a\u003e 🧪 Strengthen redirect security specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/442c1609858ebaecbac5eab77f4511bc81ed7383\"\u003e\u003ccode\u003e442c160\u003c/code\u003e\u003c/a\u003e 📝 Reference GHSA in security changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/f6fed86ddf4295c47f38df61ee37066b62a13ef2\"\u003e\u003ccode\u003ef6fed86\u003c/code\u003e\u003c/a\u003e ⬆️ Raise snaky_hash floor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/26bfeda3d8c0b34d6a51bfa30b7a8bf1b5f3b0f6\"\u003e\u003ccode\u003e26bfeda\u003c/code\u003e\u003c/a\u003e 🔧 Refresh kettle-jem templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/0f0a474f1b38453e119e660c2daca742d4378ce9\"\u003e\u003ccode\u003e0f0a474\u003c/code\u003e\u003c/a\u003e Fix credential leakage on redirects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/1118527f311a23d06feede403b88b8f6bd2a4eed\"\u003e\u003ccode\u003e1118527\u003c/code\u003e\u003c/a\u003e 🔒️ Checksums for v2.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/3f4154985fc0ab9b2b3fd0b085fa132fdc8bd8b4\"\u003e\u003ccode\u003e3f41549\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/3311b5b6b39c57c062a071356a55bcb826207e54\"\u003e\u003ccode\u003e3311b5b\u003c/code\u003e\u003c/a\u003e Raise auth-sanitizer floor to 0.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/5659d892c3dcb4266c682f1565d0266d0b321503\"\u003e\u003ccode\u003e5659d89\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.21\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.18...v2.0.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `propshaft` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd charset=utf-8 to Content-Type for CSS and HTML assets by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/264\"\u003erails/propshaft#264\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/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/265\"\u003erails/propshaft#265\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ehttps://github.com/rails/propshaft/compare/v1.3.1...v1.3.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/rails/propshaft/commit/eb5957157c2e59fabff5b15c710826670fd66c27\"\u003e\u003ccode\u003eeb59571\u003c/code\u003e\u003c/a\u003e Bump version for 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8335366ac8e4bcb71ef169f6465d1575f6fcadca\"\u003e\u003ccode\u003e8335366\u003c/code\u003e\u003c/a\u003e Add charset=utf-8 to Content-Type for CSS and HTML assets (\u003ca href=\"https://redirect.github.com/rails/propshaft/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/67def02992440379f43b821da8df3be6fd881b3b\"\u003e\u003ccode\u003e67def02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/265\"\u003e#265\u003c/a\u003e from flavorjones/fix-ci-minitest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/2f9965a5d1e47aa052daba4df8768908c2e54821\"\u003e\u003ccode\u003e2f9965a\u003c/code\u003e\u003c/a\u003e Support minitest 6 where possible, pin \u0026lt; 6 elsewhere\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.1.2 to 8.1.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix reported thread/memory leak when jobs fail \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7006\"\u003e#7006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsers can limit data displayed on Busy page with the \u003ccode\u003eonly\u003c/code\u003e parameter \u003ccode\u003e/busy?only=(jobs|processes)\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace Rack::Utils usage with standard library APIs\u003c/li\u003e\n\u003cli\u003eSeveral minor fixes from AI scanners.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sub-second precision when computing the \u003ccode\u003eretry_for\u003c/code\u003e deadline \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7003\"\u003e#7003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIdentify Sidekiq connnections in Redis with \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case where Web UI could show an empty Batch set \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe TTIN signal is undeprecated as the INFO signal is not supported on Linux\u003c/li\u003e\n\u003cli\u003eShow iteration job state on Busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6978\"\u003e#6978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge case leading to duplicate, concurrent execution \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\nIf 2 Capsules process jobs from the same queue, long-running\njobs could run in parallel during process shutdown.\u003c/li\u003e\n\u003cli\u003e[SECURITY] Remove as much YAML usage as possible. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\nLocalization files in \u003ccode\u003eweb/locales\u003c/code\u003e are now manually parsed.\nSidekiq::CLI will now only require YAML if you use a \u003ccode\u003e-C\u003c/code\u003e .yml file.\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/sidekiq/sidekiq/commit/90da768570b8da237566e9002093624a509b304b\"\u003e\u003ccode\u003e90da768\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/94c8888f9b3e9b781a06704b5950e78987902293\"\u003e\u003ccode\u003e94c8888\u003c/code\u003e\u003c/a\u003e update changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/393b56c1849a6f7cab365463a27f325856b6948f\"\u003e\u003ccode\u003e393b56c\u003c/code\u003e\u003c/a\u003e ensure that busy?only parameter survives Live Poll refresh, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6008c4f09ee368de5fcd638cc97c8aaad4d5ed9d\"\u003e\u003ccode\u003e6008c4f\u003c/code\u003e\u003c/a\u003e remove more rack::utils usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/f87657dafa55e6b05431079b24e63a921e7f5023\"\u003e\u003ccode\u003ef87657d\u003c/code\u003e\u003c/a\u003e Rename example erb to follow Herb's filenaming scheme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/7a4302d689c566c79d98050805f0f6edf758749b\"\u003e\u003ccode\u003e7a4302d\u003c/code\u003e\u003c/a\u003e Remove rack::utils usage, use CGI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/88c4d7b1abd30db013999020746d263bf3edc7e8\"\u003e\u003ccode\u003e88c4d7b\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/832b3439a99f14cca9bba6568075f7849cc6bce5\"\u003e\u003ccode\u003e832b343\u003c/code\u003e\u003c/a\u003e Implement  parameter to limit data displayed on Busy page, fixes \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6820de00f387ed57dd8cfaac420e4cc973b679b5\"\u003e\u003ccode\u003e6820de0\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::JobUtil (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6999\"\u003e#6999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/b8393fae0d4b5d72ee2a44fb247ab93ce7975612\"\u003e\u003ccode\u003eb8393fa\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::Paginator (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7000\"\u003e#7000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.1.2...v8.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-rails` from 6.5.0 to 6.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e(yabeda) Add sentry-yabeda adapter gem by \u003ca href=\"https://github.com/dingsdax\"\u003e\u003ccode\u003e@​dingsdax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2925\"\u003e#2925\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThere's a new \u003ccode\u003esentry-yabeda\u003c/code\u003e gem that integrates Sentry Metrics with \u003ca href=\"https://github.com/yabeda-rb/yabeda\"\u003eYabeda\u003c/a\u003e.\nAdd the new gem to your \u003ccode\u003eGemfile\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003egem \u0026quot;sentry-yabeda\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eInitialize Sentry with metrics enabled. The Yabeda adapter registers itself automatically when \u003ccode\u003esentry-yabeda\u003c/code\u003e is required — there's no extra setup:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  config.dsn = ENV[\u0026quot;SENTRY_DSN\u0026quot;]\n  config.enable_metrics = true\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd release detection from Kamal deployment by \u003ca href=\"https://github.com/t27duck\"\u003e\u003ccode\u003e@​t27duck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2895\"\u003e#2895\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(sidekiq) Report error when retry limit is below attempt_threshold by \u003ca href=\"https://github.com/marcboquet\"\u003e\u003ccode\u003e@​marcboquet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2940\"\u003e#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(specs) Stop sidekiq-scheduler after each test by \u003ca href=\"https://github.com/solnic\"\u003e\u003ccode\u003e@​solnic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(stacktrace) Stop leaking internal frame state into event payload by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2962\"\u003e#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(tests) Proper dummy transport clean up for hub cloning by \u003ca href=\"https://github.com/solnic\"\u003e\u003ccode\u003e@​solnic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2957\"\u003e#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(yabeda) Normalize plural Yabeda units to Sentry's singular form by \u003ca href=\"https://github.com/sentry-junior\"\u003e\u003ccode\u003e@​sentry-junior\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2953\"\u003e#2953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not overwrite baggage header contents if it already exists by \u003ca href=\"https://github.com/jakubsomonday\"\u003e\u003ccode\u003e@​jakubsomonday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2896\"\u003e#2896\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003cp\u003eWe made some memory performance and caching improvements with the help of pi-autoresearch. Enjoy the lower overhead!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse FilenameCache in profilers by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2919\"\u003e#2919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd FilenameCache to cache compute_filename results by \u003ca href=\"https://github.com/HazAT\"\u003e\u003ccode\u003e@​HazAT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2904\"\u003e#2904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize LineCache to reduce allocations by \u003ca href=\"https://github.com/HazAT\"\u003e\u003ccode\u003e@​HazAT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2903\"\u003e#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid unnecessary allocations in hot paths by \u003ca href=\"https://github.com/HazAT\"\u003e\u003ccode\u003e@​HazAT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2902\"\u003e#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize lowercase check in RequestInterface by \u003ca href=\"https://github.com/HazAT\"\u003e\u003ccode\u003e@​HazAT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2908\"\u003e#2908\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/getsentry/sentry-ruby/commit/1754a7f5b4481081a50cc6ed1d9d67b13148b0b5\"\u003e\u003ccode\u003e1754a7f\u003c/code\u003e\u003c/a\u003e release: 6.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/a1f02d6150856417bf2a9434b2a7b2f865d2d5f1\"\u003e\u003ccode\u003ea1f02d6\u003c/code\u003e\u003c/a\u003e chore(tests): spec stability fixes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2960\"\u003e#2960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/e74774045d584e2b1177a950d57ef462d0cabae6\"\u003e\u003ccode\u003ee747740\u003c/code\u003e\u003c/a\u003e refactor(tests): rework active-job spec into shared spec (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/8635dbc8b041e478e63b9a1ecb512ecf81bec892\"\u003e\u003ccode\u003e8635dbc\u003c/code\u003e\u003c/a\u003e test: Increase duration for jruby (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.5.0...6.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 6.5.0 to 6.6.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(metrics) Dup attributes in capture_metric by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2965\"\u003e#2965\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.6.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuard TelemetryEventBuffer against re-entrant mutex acquisition by \u003ca href=\"https://github.com/sentry-junior\"\u003e\u003ccode\u003e@​sentry-junior\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2964\"\u003e#2964\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.6.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e(yabeda) Add sentry-yabeda adapter gem by \u003ca href=\"https://github.com/dingsdax\"\u003e\u003ccode\u003e@​dingsdax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2925\"\u003e#2925\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThere's a new \u003ccode\u003esentry-yabeda\u003c/code\u003e gem that integrates Sentry Metrics with \u003ca href=\"https://github.com/yabeda-rb/yabeda\"\u003eYabeda\u003c/a\u003e.\nAdd the new gem to your \u003ccode\u003eGemfile\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003egem \u0026quot;sentry-yabeda\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eInitialize Sentry with metrics enabled. The Yabeda adapter registers itself automatically when \u003ccode\u003esentry-yabeda\u003c/code\u003e is required — there's no extra setup:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  config.dsn = ENV[\u0026quot;SENTRY_DSN\u0026quot;]\n  config.enable_metrics = true\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd release detection from Kamal deployment by \u003ca href=\"https://github.com/t27duck\"\u003e\u003ccode\u003e@​t27duck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2895\"\u003e#2895\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(sidekiq) Report error when retry limit is below attempt_threshold by \u003ca href=\"https://github.com/marcboquet\"\u003e\u003ccode\u003e@​marcboquet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2940\"\u003e#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(specs) Stop sidekiq-scheduler after each test by \u003ca href=\"https://github.com/solnic\"\u003e\u003ccode\u003e@​solnic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(stacktrace) Stop leaking internal frame state into event payload by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2962\"\u003e#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(tests) Proper dummy transport clean up for hub cloning by \u003ca href=\"https://github.com/solnic\"\u003e\u003ccode\u003e@​solnic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2957\"\u003e#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(yabeda) Normalize plural Yabeda units to Sentry's singular form by \u003ca href=\"https://github.com/sentry-junior\"\u003e\u003ccode\u003e@​sentry-junior\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2953\"\u003e#2953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not overwrite baggage header contents if it already exists by \u003ca href=\"https://github.com/jakubsomonday\"\u003e\u003ccode\u003e@​jakubsomonday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2896\"\u003e#2896\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003cp\u003eWe made some memory performance and caching improvements with the help of pi-autoresearch. Enjoy the lower overhead!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse FilenameCache in profilers by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2919\"\u003e#2919\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/getsentry/sentry-ruby/commit/3e2219cd4be9a5c81599777384fcd220eb1596d6\"\u003e\u003ccode\u003e3e2219c\u003c/code\u003e\u003c/a\u003e release: 6.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/7c260953fe353179288e9d17ae58f9bf764cda23\"\u003e\u003ccode\u003e7c26095\u003c/code\u003e\u003c/a\u003e fix(metrics): Dup attributes in capture_metric (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2965\"\u003e#2965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3a55ed2c5afe4750a481fc4db710ff9c5ca6ba4e\"\u003e\u003ccode\u003e3a55ed2\u003c/code\u003e\u003c/a\u003e release: 6.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/129ada3e23a7e232987075e7ee65189ac0d693a6\"\u003e\u003ccode\u003e129ada3\u003c/code\u003e\u003c/a\u003e fix: guard TelemetryEventBuffer against re-entrant mutex acquisition (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2964\"\u003e#2964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/1754a7f5b4481081a50cc6ed1d9d67b13148b0b5\"\u003e\u003ccode\u003e1754a7f\u003c/code\u003e\u003c/a\u003e release: 6.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/af610cddc33a7059f702ecb1e22e69f02b7b815c\"\u003e\u003ccode\u003eaf610cd\u003c/code\u003e\u003c/a\u003e fix(stacktrace): stop leaking internal frame state into event payload (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/427612b56072f37c597154657b7c1dcc2bba300d\"\u003e\u003ccode\u003e427612b\u003c/code\u003e\u003c/a\u003e fix(tests): proper dummy transport clean up for hub cloning (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3b64cc23b510fe05e5d281c57aa6f9d40b756cd7\"\u003e\u003ccode\u003e3b64cc2\u003c/code\u003e\u003c/a\u003e feat(yabeda): Add sentry-yabeda adapter gem (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2925\"\u003e#2925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f6e0ad195840f05746983347b164e473a08f0688\"\u003e\u003ccode\u003ef6e0ad1\u003c/code\u003e\u003c/a\u003e perf: Use FilenameCache in profilers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/e2a073a782f0860b159262bccfd9b0f2825ca0e4\"\u003e\u003ccode\u003ee2a073a\u003c/code\u003e\u003c/a\u003e perf: Add FilenameCache to cache compute_filename results (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2904\"\u003e#2904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.5.0...6.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `overcommit` from 0.69.0 to 0.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sds/overcommit/releases\"\u003eovercommit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.70.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd oxc pre-commit hooks by \u003ca href=\"https://github.com/benmelz\"\u003e\u003ccode\u003e@​benmelz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sds/overcommit/pull/879\"\u003esds/overcommit#879\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sds/overcommit/compare/v0.69.0...v0.70.0\"\u003ehttps://github.com/sds/overcommit/compare/v0.69.0...v0.70.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/sds/overcommit/blob/main/CHANGELOG.md\"\u003eovercommit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.70.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoxfmt\u003c/code\u003e and \u003ccode\u003eoxlint\u003c/code\u003e pre-commit hooks\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/sds/overcommit/commit/141b0aedd314bb01983eab9653aa034799c68e92\"\u003e\u003ccode\u003e141b0ae\u003c/code\u003e\u003c/a\u003e Cut version 0.70.0 (\u003ca href=\"https://redirect.github.com/sds/overcommit/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sds/overcommit/commit/032af772175087eb2e5f0026dcbfa30c8112b35b\"\u003e\u003ccode\u003e032af77\u003c/code\u003e\u003c/a\u003e Add oxc pre-commit hooks (\u003ca href=\"https://redirect.github.com/sds/overcommit/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sds/overcommit/commit/92b22f0b50b1fe7d83a9fb3103976a74ca8cbb18\"\u003e\u003ccode\u003e92b22f0\u003c/code\u003e\u003c/a\u003e Add Ruby 3.4 and 4.0 to CI matrix (\u003ca href=\"https://redirect.github.com/sds/overcommit/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sds/overcommit/compare/v0.69.0...v0.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axe-core-rspec` from 4.11.1 to 4.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dequelabs/axe-core-gems/releases\"\u003eaxe-core-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.11.3\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003ea0330b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 4.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\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/dequelabs/axe-core-gems/blob/develop/CHANGELOG.md\"\u003eaxe-core-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.2...v4.11.3\"\u003e4.11.3\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003ea0330b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.2\"\u003e4.11.2\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\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/dequelabs/axe-core-gems/commit/0fbfe215855653959e66487fbb2d7dfa2c2f3ff6\"\u003e\u003ccode\u003e0fbfe21\u003c/code\u003e\u003c/a\u003e chore: release v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/b45e785233d0bdac230f9dffaec30e60d4adf2ba\"\u003e\u003ccode\u003eb45e785\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/45f30e034cb2f4df9cc859dcda448eebb556edd0\"\u003e\u003ccode\u003e45f30e0\u003c/code\u003e\u003c/a\u003e Merge branch 'release' into release-2026-04-29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a748ba8978dc93e99fc6223cc6d0e454c2e2bfa2\"\u003e\u003ccode\u003ea748ba8\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003e\u003ccode\u003ea0330b0\u003c/code\u003e\u003c/a\u003e fix: Update axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/62d60478fc3973c639177d04a471efeb54566c65\"\u003e\u003ccode\u003e62d6047\u003c/code\u003e\u003c/a\u003e chore: merge master into develop (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/480\"\u003e#480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/fd8a85c7db631005fa1cb155e002e7a7d73a9bbd\"\u003e\u003ccode\u003efd8a85c\u003c/code\u003e\u003c/a\u003e chore: add create-release workflow (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/61cd3cca5135f73234fc3cfd12ca0a92368ae44c\"\u003e\u003ccode\u003e61cd3cc\u003c/code\u003e\u003c/a\u003e chore: Release 4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/94a90f6c4bd9d23d5ac3ef3de8c7b3b225f0493c\"\u003e\u003ccode\u003e94a90f6\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/dd9b9a9755ea0c571af412349d9df4608dbd2c05\"\u003e\u003ccode\u003edd9b9a9\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.86.1 to 1.87.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.87.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15167\"\u003e#15167\u003c/a\u003e: Add \u003ccode\u003e--enable-all-cops\u003c/code\u003e and \u003ccode\u003e--disable-all-cops\u003c/code\u003e command line options that override \u003ccode\u003eAllCops/EnabledByDefault\u003c/code\u003e and \u003ccode\u003eAllCops/DisabledByDefault\u003c/code\u003e in configuration files. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept the new \u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e directive comments. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15173\"\u003e#15173\u003c/a\u003e: Add optional Rubydex integration via \u003ccode\u003eAllCops/UseProjectIndex\u003c/code\u003e to enable cross-file detection in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e (experimental). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15168\"\u003e#15168\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the first argument is a call-like expression with its own parentheses, such as \u003ccode\u003eyield(...)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e when one side is an array or hash literal containing non-literal elements. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15182\"\u003e#15182\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/Alias\u003c/code\u003e causing a syntax error when the return value of \u003ccode\u003ealias_method\u003c/code\u003e is used, such as an argument to \u003ccode\u003epublic\u003c/code\u003e, \u003ccode\u003eprivate\u003c/code\u003e, \u003ccode\u003eprotected\u003c/code\u003e, or \u003ccode\u003emodule_function\u003c/code\u003e, or the right-hand side of an assignment. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15174\"\u003e#15174\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e causing a syntax error when the namespace contains a method call (e.g., \u003ccode\u003eclass self.class::Foo; end\u003c/code\u003e). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15180\"\u003e#15180\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/FileWrite\u003c/code\u003e causing a syntax error when the written heredoc is chained with another method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15186\"\u003e#15186\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/HashConversion\u003c/code\u003e causing a syntax error when \u003ccode\u003eHash[...]\u003c/code\u003e is passed an anonymous splat (\u003ccode\u003e*\u003c/code\u003e). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15192\"\u003e#15192\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/StructInheritance\u003c/code\u003e causing a syntax error when the inherited \u003ccode\u003eStruct.new\u003c/code\u003e is called without parentheses. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15170\"\u003e#15170\u003c/a\u003e: Fix an infinite loop for \u003ccode\u003eLayout/RedundantLineBreak\u003c/code\u003e when a single-line block is chained with a safe navigation method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15175\"\u003e#15175\u003c/a\u003e: Fix \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e to indent block bodies relative to the method selector for trailing-dot multi-line method chains when \u003ccode\u003eEnforcedStyleAlignWith\u003c/code\u003e is \u003ccode\u003erelative_to_receiver\u003c/code\u003e. (\u003ca href=\"https://github.com/ddbrendan\"\u003e\u003ccode\u003e@​ddbrendan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15135\"\u003e#15135\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e that swallowed chained method calls into a trailing inline comment on the line above the closing parenthesis. (\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15184\"\u003e#15184\u003c/a\u003e: Fix various typos and grammar mistakes in documentation and cop descriptions. (\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15171\"\u003e#15171\u003c/a\u003e: Cache \u003ccode\u003eFilePatterns#match?\u003c/code\u003e results per path so cops sharing the same \u003ccode\u003eInclude\u003c/code\u003e/\u003ccode\u003eExclude\u003c/code\u003e configuration do not each repeat \u003ccode\u003eFile.fnmatch?\u003c/code\u003e work on every file. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop v1.86.2\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15075\"\u003e#15075\u003c/a\u003e: Implement true runner parallelism. ([\u003ca href=\"https://github.com/tdeo\"\u003e\u003ccode\u003e@​tdeo\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15156\"\u003e#15156\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when chaining \u003ccode\u003efetch\u003c/code\u003e (or \u003ccode\u003e[]\u003c/code\u003e) calls on the same expression. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15161\"\u003e#15161\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ReduceToHash\u003c/code\u003e when nested \u003ccode\u003eeach_with_object\u003c/code\u003e/\u003ccode\u003einject\u003c/code\u003e/\u003ccode\u003ereduce\u003c/code\u003e calls would build hashes. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15144\"\u003e#15144\u003c/a\u003e: Fix an error in \u003ccode\u003eStyle/SoleNestedConditional\u003c/code\u003e when autocorrecting nested conditionals containing comments. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15040\"\u003e#15040\u003c/a\u003e: Exclude \u003ccode\u003econstants\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/t-daisuke\"\u003e\u003ccode\u003e@​t-daisuke\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15155\"\u003e#15155\u003c/a\u003e: Fix false negatives in \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e when an explicit \u003ccode\u003eself\u003c/code\u003e receiver in one scope matches the LHS of an \u003ccode\u003e||=\u003c/code\u003e, \u003ccode\u003e\u0026amp;\u0026amp;=\u003c/code\u003e, or \u003ccode\u003eop_asgn\u003c/code\u003e in another scope. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15107\"\u003e#15107\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RequireRelativeSelfPath\u003c/code\u003e when a non-\u003ccode\u003e.rb\u003c/code\u003e file uses \u003ccode\u003erequire_relative\u003c/code\u003e with its own basename. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15137\"\u003e#15137\u003c/a\u003e: Fix incorrect \u0026quot;does not support IndentationWidth parameter\u0026quot; warning for \u003ccode\u003eLayout/ClosingParenthesisIndentation\u003c/code\u003e and \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15148\"\u003e#15148\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e bodies. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15147\"\u003e#15147\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in the body of \u003ccode\u003eunless\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15163\"\u003e#15163\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e\\A#\u003c/code\u003e, uses \u003ccode\u003e\\s\u003c/code\u003e metacharacters, or has multiple spaces after \u003ccode\u003e#\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10179\"\u003e#10179\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/DocumentDynamicEvalDefinition\u003c/code\u003e when the heredoc contains an escaped interpolation (\u003ccode\u003e\\#{...}\u003c/code\u003e). ([\u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15154\"\u003e#15154\u003c/a\u003e: Fix bug where specifying \u003ccode\u003e--out\u003c/code\u003e disables parallelization. ([\u003ca href=\"https://github.com/deivid-rodriguez\"\u003e\u003ccode\u003e@​deivid-rodriguez\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/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.87.0 (2026-05-30)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15167\"\u003e#15167\u003c/a\u003e: Add \u003ccode\u003e--enable-all-cops\u003c/code\u003e and \u003ccode\u003e--disable-all-cops\u003c/code\u003e command line options that override \u003ccode\u003eAllCops/EnabledByDefault\u003c/code\u003e and \u003ccode\u003eAllCops/DisabledByDefault\u003c/code\u003e in configuration files. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept the new \u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e directive comments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15173\"\u003e#15173\u003c/a\u003e: Add optional Rubydex integration via \u003ccode\u003eAllCops/UseProjectIndex\u003c/code\u003e to enable cross-file detection in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e (experimental). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15168\"\u003e#15168\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the first argument is a call-like expression with its own parentheses, such as \u003ccode\u003eyield(...)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e when one side is an array or hash literal containing non-literal elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15182\"\u003e#15182\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/Alias\u003c/code\u003e causing a syntax error when the return value of \u003ccode\u003ealias_method\u003c/code\u003e is used, such as an argument to \u003ccode\u003epublic\u003c/code\u003e, \u003ccode\u003eprivate\u003c/code\u003e, \u003ccode\u003eprotected\u003c/code\u003e, or \u003ccode\u003emodule_function\u003c/code\u003e, or the right-hand side of an assignment. ([\u003ca href=\"https:/...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-assess-crime-forms/pull/1259","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-assess-crime-forms/issues/1259","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1259/packages"},{"uuid":"4575827170","node_id":"PR_kwDOSacg4s7iA2jz","number":10,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-05T15:32:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-03T00:02:42.000Z","updated_at":"2026-09-05T15:32:12.000Z","time_to_close":8177361,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/keitakishino/sanin-legacy/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/keitakishino%2Fsanin-legacy/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"4569809342","node_id":"PR_kwDOR7JI-87htAEb","number":19,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-13T12:52:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T08:29:28.000Z","updated_at":"2026-10-13T12:52:14.000Z","time_to_close":11506955,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/jbrenesp/gk_blog/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrenesp%2Fgk_blog/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"},{"uuid":"4568531739","node_id":"PR_kwDORWg2Oc7ho3pT","number":36,"state":"closed","title":"build(deps): bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-07T01:10:16.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T04:53:42.000Z","updated_at":"2026-06-07T01:10:18.000Z","time_to_close":418594,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/SunTea43/Hestia/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTea43%2FHestia/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"},{"uuid":"4556082972","node_id":"PR_kwDOSM-EFc7hBU5u","number":55,"state":"closed","title":"Bump the bundler-minor-patch group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-02T02:04:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T00:09:56.000Z","updated_at":"2026-06-02T02:04:49.000Z","time_to_close":179684,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler-minor-patch","update_count":9,"packages":[{"name":"puma","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"bootsnap","old_version":"1.24.1","new_version":"1.24.5","repository_url":"https://github.com/rails/bootsnap"},{"name":"sidekiq","old_version":"8.1.3","new_version":"8.1.6","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"sidekiq-cron","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/ondrejbartas/sidekiq-cron"},{"name":"commonmarker","old_version":"2.8.1","new_version":"2.8.2","repository_url":"https://github.com/gjtorikian/commonmarker"},{"name":"view_component","old_version":"4.10.0","new_version":"4.11.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"mcp","old_version":"0.14.0","new_version":"0.18.0","repository_url":"https://github.com/modelcontextprotocol/ruby-sdk"},{"name":"doorkeeper","old_version":"5.9.0","new_version":"5.9.1","repository_url":"https://github.com/doorkeeper-gem/doorkeeper"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler-minor-patch group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [puma](https://github.com/puma/puma) | `8.0.1` | `8.0.2` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.14.1` | `2.15.1` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.1` | `1.24.5` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.3` | `8.1.6` |\n| [sidekiq-cron](https://github.com/ondrejbartas/sidekiq-cron) | `2.3.1` | `2.4.0` |\n| [commonmarker](https://github.com/gjtorikian/commonmarker) | `2.8.1` | `2.8.2` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.10.0` | `4.11.0` |\n| [mcp](https://github.com/modelcontextprotocol/ruby-sdk) | `0.14.0` | `0.18.0` |\n| [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) | `5.9.0` | `5.9.1` |\n\n\nUpdates `puma` from 8.0.1 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\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/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v8.0.1...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.14.1 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.24.1 to 1.24.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\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/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/103a92bc6fd05c7c97abfd048c8fc5cb0bd05757\"\u003e\u003ccode\u003e103a92b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/551\"\u003e#551\u003c/a\u003e from byroot/enable-fstr-global\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/33c927dc61e8ea868f1dcc681df5275d173b71fb\"\u003e\u003ccode\u003e33c927d\u003c/code\u003e\u003c/a\u003e Update compiler options when global options change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/122db7fdaea8a05fd54a8d23df8946bed43d9f54\"\u003e\u003ccode\u003e122db7f\u003c/code\u003e\u003c/a\u003e Simplify \u003ccode\u003eenable_frozen_string_literal(app_only: false)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/0d8a0a64cd1f302a4cbb29088fff7847ef9852c8\"\u003e\u003ccode\u003e0d8a0a6\u003c/code\u003e\u003c/a\u003e Release 1.24.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6ccc5ebda794afe4e2b36be677640b4f7b6a03ac\"\u003e\u003ccode\u003e6ccc5eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/550\"\u003e#550\u003c/a\u003e from byroot/fstr-and-coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/86e95864f89067159dadb8be68b656ae1a5f38ea\"\u003e\u003ccode\u003e86e9586\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e work even with coverage on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/36c22246259452d163986565f7a946154f742da7\"\u003e\u003ccode\u003e36c2224\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/549\"\u003e#549\u003c/a\u003e from byroot/integration-tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.1.3 to 8.1.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix reported thread/memory leak when jobs fail \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7006\"\u003e#7006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsers can limit data displayed on Busy page with the \u003ccode\u003eonly\u003c/code\u003e parameter \u003ccode\u003e/busy?only=(jobs|processes)\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace Rack::Utils usage with standard library APIs\u003c/li\u003e\n\u003cli\u003eSeveral minor fixes from AI scanners.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sub-second precision when computing the \u003ccode\u003eretry_for\u003c/code\u003e deadline \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7003\"\u003e#7003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIdentify Sidekiq connnections in Redis with \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case where Web UI could show an empty Batch set \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe TTIN signal is undeprecated as the INFO signal is not supported on Linux\u003c/li\u003e\n\u003cli\u003eShow iteration job state on Busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6978\"\u003e#6978\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/sidekiq/sidekiq/commit/90da768570b8da237566e9002093624a509b304b\"\u003e\u003ccode\u003e90da768\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/94c8888f9b3e9b781a06704b5950e78987902293\"\u003e\u003ccode\u003e94c8888\u003c/code\u003e\u003c/a\u003e update changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/393b56c1849a6f7cab365463a27f325856b6948f\"\u003e\u003ccode\u003e393b56c\u003c/code\u003e\u003c/a\u003e ensure that busy?only parameter survives Live Poll refresh, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6008c4f09ee368de5fcd638cc97c8aaad4d5ed9d\"\u003e\u003ccode\u003e6008c4f\u003c/code\u003e\u003c/a\u003e remove more rack::utils usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/f87657dafa55e6b05431079b24e63a921e7f5023\"\u003e\u003ccode\u003ef87657d\u003c/code\u003e\u003c/a\u003e Rename example erb to follow Herb's filenaming scheme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/7a4302d689c566c79d98050805f0f6edf758749b\"\u003e\u003ccode\u003e7a4302d\u003c/code\u003e\u003c/a\u003e Remove rack::utils usage, use CGI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/88c4d7b1abd30db013999020746d263bf3edc7e8\"\u003e\u003ccode\u003e88c4d7b\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/832b3439a99f14cca9bba6568075f7849cc6bce5\"\u003e\u003ccode\u003e832b343\u003c/code\u003e\u003c/a\u003e Implement  parameter to limit data displayed on Busy page, fixes \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6820de00f387ed57dd8cfaac420e4cc973b679b5\"\u003e\u003ccode\u003e6820de0\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::JobUtil (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6999\"\u003e#6999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/b8393fae0d4b5d72ee2a44fb247ab93ce7975612\"\u003e\u003ccode\u003eb8393fa\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::Paginator (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7000\"\u003e#7000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.1.3...v8.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq-cron` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ondrejbartas/sidekiq-cron/releases\"\u003esidekiq-cron's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate simplecov-covertura by \u003ca href=\"https://github.com/fwininger\"\u003e\u003ccode\u003e@​fwininger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/570\"\u003esidekiq-cron/sidekiq-cron#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reflected XSS on Sidekiq-UI. by \u003ca href=\"https://github.com/fwininger\"\u003e\u003ccode\u003e@​fwininger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/568\"\u003esidekiq-cron/sidekiq-cron#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate web extension tests to support Sidekiq 8.1.0 by \u003ca href=\"https://github.com/kevinrobell-st\"\u003e\u003ccode\u003e@​kevinrobell-st\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/573\"\u003esidekiq-cron/sidekiq-cron#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd cron_process_count_override config option by \u003ca href=\"https://github.com/kevinrobell-st\"\u003e\u003ccode\u003e@​kevinrobell-st\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/572\"\u003esidekiq-cron/sidekiq-cron#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Spanish translation for enabled/disabled states by \u003ca href=\"https://github.com/roseliux\"\u003e\u003ccode\u003e@​roseliux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/575\"\u003esidekiq-cron/sidekiq-cron#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow to conditionally disable Sidekiq-Cron by \u003ca href=\"https://github.com/akodkod\"\u003e\u003ccode\u003e@​akodkod\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/574\"\u003esidekiq-cron/sidekiq-cron#574\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/fwininger\"\u003e\u003ccode\u003e@​fwininger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/570\"\u003esidekiq-cron/sidekiq-cron#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/roseliux\"\u003e\u003ccode\u003e@​roseliux\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/575\"\u003esidekiq-cron/sidekiq-cron#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/akodkod\"\u003e\u003ccode\u003e@​akodkod\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/574\"\u003esidekiq-cron/sidekiq-cron#574\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/compare/v2.3.1...v2.4.0\"\u003ehttps://github.com/sidekiq-cron/sidekiq-cron/compare/v2.3.1...v2.4.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/sidekiq-cron/sidekiq-cron/blob/master/CHANGELOG.md\"\u003esidekiq-cron's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix reflected XSS on Sidekiq-UI (\u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/568\"\u003esidekiq-cron/sidekiq-cron#568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecron_process_count_override\u003c/code\u003e config option (\u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/572\"\u003esidekiq-cron/sidekiq-cron#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Spanish translation for enabled/disabled states (\u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/575\"\u003esidekiq-cron/sidekiq-cron#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to conditionally disable Sidekiq-Cron (\u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/574\"\u003esidekiq-cron/sidekiq-cron#574\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/sidekiq-cron/sidekiq-cron/commit/3af55a8f29c99d1c5ea1452fe4595635c3ddf938\"\u003e\u003ccode\u003e3af55a8\u003c/code\u003e\u003c/a\u003e Prepare new release v2.4.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/44c12804b3c6377cafab1a07a02a3a79db2de7b2\"\u003e\u003ccode\u003e44c1280\u003c/code\u003e\u003c/a\u003e Allow to conditionally disable Sidekiq-Cron (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/a5ddb28da70a14d7aee04426a0f566c7aaa289f9\"\u003e\u003ccode\u003ea5ddb28\u003c/code\u003e\u003c/a\u003e Fix Spanish translation for enabled/disabled states (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/196b9b7c04913d76eedf52c80a081978fbb6e7a1\"\u003e\u003ccode\u003e196b9b7\u003c/code\u003e\u003c/a\u003e Add cron_process_count_override config option (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/9e802c97d4da9556ee0719d8805dc8bb70eac64d\"\u003e\u003ccode\u003e9e802c9\u003c/code\u003e\u003c/a\u003e Update web extension tests to support Sidekiq 8.1.0 (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/7b4ae4822f93ef4646f5cb55500ca4e25662db7c\"\u003e\u003ccode\u003e7b4ae48\u003c/code\u003e\u003c/a\u003e Fix reflected XSS on Sidekiq-UI. (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/568\"\u003e#568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/11535a5940171513b4ff4ff44d4300e608f4b5cc\"\u003e\u003ccode\u003e11535a5\u003c/code\u003e\u003c/a\u003e Update simplecov-covertura (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ondrejbartas/sidekiq-cron/compare/v2.3.1...v2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `commonmarker` from 2.8.1 to 2.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gjtorikian/commonmarker/releases\"\u003ecommonmarker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.8.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump rb-sys from 0.9.126 to 0.9.127 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/459\"\u003egjtorikian/commonmarker#459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd alert_type accessors for alert nodes by \u003ca href=\"https://github.com/fukayatsu\"\u003e\u003ccode\u003e@​fukayatsu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/460\"\u003egjtorikian/commonmarker#460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease for 2.8.2 by \u003ca href=\"https://github.com/gjtorikian\"\u003e\u003ccode\u003e@​gjtorikian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/461\"\u003egjtorikian/commonmarker#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[skip test] Release v2.8.2 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/462\"\u003egjtorikian/commonmarker#462\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.2\"\u003ehttps://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gjtorikian/commonmarker/blob/main/CHANGELOG.md\"\u003ecommonmarker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e[v2.8.2] - 09-05-2026\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump rb-sys from 0.9.126 to 0.9.127 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/459\"\u003egjtorikian/commonmarker#459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd alert_type accessors for alert nodes by \u003ca href=\"https://github.com/fukayatsu\"\u003e\u003ccode\u003e@​fukayatsu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/460\"\u003egjtorikian/commonmarker#460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease for 2.8.2 by \u003ca href=\"https://github.com/gjtorikian\"\u003e\u003ccode\u003e@​gjtorikian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/461\"\u003egjtorikian/commonmarker#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.2\"\u003ehttps://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.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/gjtorikian/commonmarker/commit/958a139d675ca9e44793917f8765a4ef3f15a6f1\"\u003e\u003ccode\u003e958a139\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/issues/462\"\u003e#462\u003c/a\u003e from gjtorikian/release/v2.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/54acd714a1a72f2c4c63b191be150777b53d0c14\"\u003e\u003ccode\u003e54acd71\u003c/code\u003e\u003c/a\u003e [skip test] update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/0898c4c24955b0d157e11f7613128b2bf4f45a1b\"\u003e\u003ccode\u003e0898c4c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/issues/461\"\u003e#461\u003c/a\u003e from gjtorikian/bump-version-for-alert\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/6df2bacd9a04d803450db1767a691a70fa8b304d\"\u003e\u003ccode\u003e6df2bac\u003c/code\u003e\u003c/a\u003e release for 2.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/d96a8500421a2c7ac256c94c9e5db7875afb27af\"\u003e\u003ccode\u003ed96a850\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/issues/460\"\u003e#460\u003c/a\u003e from fukayatsu/add-alert-type-getter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/d935437ca48c74ed6e5affa45969867c9fecfbfe\"\u003e\u003ccode\u003ed935437\u003c/code\u003e\u003c/a\u003e Add alert_type accessors for alert nodes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/98eda97e54da0cfee73227b46d0af81922793fdd\"\u003e\u003ccode\u003e98eda97\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/issues/459\"\u003e#459\u003c/a\u003e from gjtorikian/dependabot/cargo/rb-sys-0.9.127\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/69a13de315ddb81afed59eb227a3398d2518eb37\"\u003e\u003ccode\u003e69a13de\u003c/code\u003e\u003c/a\u003e Bump rb-sys from 0.9.126 to 0.9.127\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `view_component` from 4.10.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/viewcomponent/view_component/releases\"\u003eview_component's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003erender_in\u003c/code\u003e signature to accept \u003ccode\u003e**_\u003c/code\u003e for compatibility with Rails \u003ca href=\"https://redirect.github.com/rails/rails/pull/50623\"\u003e#50623\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix translation scope resolution in nested lambda-backed slots. Relative \u003ccode\u003et(\u0026quot;.key\u0026quot;)\u003c/code\u003e calls inside lambda-backed slots were resolving against an intermediate component's scope instead of the original partial's scope where the block was defined.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eArtin Boghosian\u003c/em\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ViewComponent/view_component/blob/main/docs/CHANGELOG.md\"\u003eview_component's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003erender_in\u003c/code\u003e signature to accept \u003ccode\u003e**_\u003c/code\u003e for compatibility with Rails \u003ca href=\"https://redirect.github.com/rails/rails/pull/50623\"\u003e#50623\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix translation scope resolution in nested lambda-backed slots. Relative \u003ccode\u003et(\u0026quot;.key\u0026quot;)\u003c/code\u003e calls inside lambda-backed slots were resolving against an intermediate component's scope instead of the original partial's scope where the block was defined.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eArtin Boghosian\u003c/em\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/ViewComponent/view_component/commit/b1f6917f3fe02589873c4ae95f7794e0bcb3b0ef\"\u003e\u003ccode\u003eb1f6917\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2640\"\u003e#2640\u003c/a\u003e from ViewComponent/release-4-11-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/f54b15a7b4cd9b27d9dd45e6907a9ef57d91b918\"\u003e\u003ccode\u003ef54b15a\u003c/code\u003e\u003c/a\u003e bump allocations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/49b66854d2d24fff1e3e3c4822cade917a1ea837\"\u003e\u003ccode\u003e49b6685\u003c/code\u003e\u003c/a\u003e release 4.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e94672a5e27e52c793a8d1ddf68f60e2c5fd1afe\"\u003e\u003ccode\u003ee94672a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2636\"\u003e#2636\u003c/a\u003e from ViewComponent/render_in_api\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9360f6a1483b28fcfe9ae391543f61070e41937a\"\u003e\u003ccode\u003e9360f6a\u003c/code\u003e\u003c/a\u003e Fix appraisal naming consistency: use underscores throughout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5b6e7320ab1dbba18f9066cc685a319142818ae5\"\u003e\u003ccode\u003e5b6e732\u003c/code\u003e\u003c/a\u003e whitespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8a8e8c031eaef4bc52ec3eabf2bf7c615004a3a1\"\u003e\u003ccode\u003e8a8e8c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2634\"\u003e#2634\u003c/a\u003e from ViewComponent/dependabot/bundler/selenium-webdr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/346937739f4288a6defff13572bb58369d2fe874\"\u003e\u003ccode\u003e3469377\u003c/code\u003e\u003c/a\u003e Rename rails_main-head gemfile to use underscore for appraisal compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da30a8f7d762e4ec1f4d316de782d5e2f1900c58\"\u003e\u003ccode\u003eda30a8f\u003c/code\u003e\u003c/a\u003e Fix Rails main compatibility issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/635645d172cd395f9ca574d0d3edf7c456f43495\"\u003e\u003ccode\u003e635645d\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.10.0...v4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 0.14.0 to 0.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/releases\"\u003emcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.18.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport server-to-client \u003ccode\u003eping\u003c/code\u003e per MCP specification (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn on implicit stdio initialization (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eTool::Schema\u003c/code\u003e validation to avoid re-validating identical schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix case-sensitive \u003ccode\u003eAccept\u003c/code\u003e header comparison (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OAuth 2.1 client support for MCP authorization flow (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003eMCP-Protocol-Version\u003c/code\u003e header in \u003ccode\u003eStreamableHTTPTransport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject duplicate \u003ccode\u003einitialize\u003c/code\u003e requests (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject non-Hash JSON-RPC bodies in \u003ccode\u003eStreamableHTTPTransport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.16.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd opt-in tool output validation (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdvertise JSON Schema 2020-12 dialect on emitted tool schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve client tool output schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003eoutput_schema\u003c/code\u003e argument in \u003ccode\u003edefine_tool\u003c/code\u003e API (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003enotifications/cancelled\u003c/code\u003e per MCP specification (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd client-level \u003ccode\u003econnect\u003c/code\u003e for initialize handshake (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/327\"\u003e#327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd client-level \u003ccode\u003econnect\u003c/code\u003e handshake to stdio transport (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn tool argument validation failures as tool execution errors (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/333\"\u003e#333\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/modelcontextprotocol/ruby-sdk/blob/main/CHANGELOG.md\"\u003emcp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.18.0] - 2026-05-30\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport server-to-client \u003ccode\u003eping\u003c/code\u003e per MCP specification (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn on implicit stdio initialization (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eTool::Schema\u003c/code\u003e validation to avoid re-validating identical schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix case-sensitive \u003ccode\u003eAccept\u003c/code\u003e header comparison (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17.0] - 2026-05-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OAuth 2.1 client support for MCP authorization flow (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003eMCP-Protocol-Version\u003c/code\u003e header in \u003ccode\u003eStreamableHTTPTransport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject duplicate \u003ccode\u003einitialize\u003c/code\u003e requests (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject non-Hash JSON-RPC bodies in \u003ccode\u003eStreamableHTTPTransport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.16.0] - 2026-05-14\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd opt-in tool output validation (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdvertise JSON Schema 2020-12 dialect on emitted tool schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve client tool output schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003eoutput_schema\u003c/code\u003e argument in \u003ccode\u003edefine_tool\u003c/code\u003e API (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.15.0] - 2026-05-05\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003enotifications/cancelled\u003c/code\u003e per MCP specification (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd client-level \u003ccode\u003econnect\u003c/code\u003e for initialize handshake (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/327\"\u003e#327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd client-level \u003ccode\u003econnect\u003c/code\u003e handshake to stdio transport (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/336\"\u003e#336\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/modelcontextprotocol/ruby-sdk/commit/3ff237a02c0792bbfbcacef5e37c0c7529c1f2a5\"\u003e\u003ccode\u003e3ff237a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/367\"\u003e#367\u003c/a\u003e from koic/release_0_18_0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/39882919b899a8a4d9a264da2185c52e7b3055dc\"\u003e\u003ccode\u003e3988291\u003c/code\u003e\u003c/a\u003e Release 0.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/f6e43d971e2882144f9b2e136c53f7152077111f\"\u003e\u003ccode\u003ef6e43d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/363\"\u003e#363\u003c/a\u003e from koic/cache-tool-schema-validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/5c8b132dcdc0bfeed978167889535632f0b07ad0\"\u003e\u003ccode\u003e5c8b132\u003c/code\u003e\u003c/a\u003e Cache \u003ccode\u003eTool::Schema\u003c/code\u003e Validation to Avoid Re-validating Identical Schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/fd2fd27625c6f2917e0f7a1cbd4ec9e2b57880ba\"\u003e\u003ccode\u003efd2fd27\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/338\"\u003e#338\u003c/a\u003e from atesgoral/warn-stdio-implicit-connect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/c4c1f2bbc094c6c318b475f6265e3736ddab1fd5\"\u003e\u003ccode\u003ec4c1f2b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/360\"\u003e#360\u003c/a\u003e from yuki3738/fix_typo_for_client_method_references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/a28a34374164e240f59bba7eac378802a2332c94\"\u003e\u003ccode\u003ea28a343\u003c/code\u003e\u003c/a\u003e [Doc] Fix typos in MCP::Client method references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/b6462feef0c1616d39c1f24938ef4183dbe97bfb\"\u003e\u003ccode\u003eb6462fe\u003c/code\u003e\u003c/a\u003e feat: warn on implicit stdio initialization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/dd7dacae47c0aafea9f7ebae3b94f49b3a7122a4\"\u003e\u003ccode\u003edd7daca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/359\"\u003e#359\u003c/a\u003e from koic/case_insensitive_accept_header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/9b89620257f1d185287f766466331e1404e09ee8\"\u003e\u003ccode\u003e9b89620\u003c/code\u003e\u003c/a\u003e Fix case-sensitive Accept header comparison\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/compare/v0.14.0...v0.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `doorkeeper` from 5.9.0 to 5.9.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/releases\"\u003edoorkeeper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1781\"\u003e#1781\u003c/a\u003e Honor \u003ccode\u003ehandle_auth_errors :raise\u003c/code\u003e in \u003ccode\u003eAuthorizationsController#authorize_response\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1795\"\u003e#1795\u003c/a\u003e Fix: detailed error 'insufficient_scope' in protected resources 403s\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1797\"\u003e#1797\u003c/a\u003e Fix \u003ccode\u003edoorkeeper:db:cleanup\u003c/code\u003e rake task failure on PostgreSQL\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1800\"\u003e#1800\u003c/a\u003e Set \u003ccode\u003e@grant_type\u003c/code\u003e in \u003ccode\u003eClientCredentialsRequest\u003c/code\u003e and \u003ccode\u003eRefreshTokenRequest\u003c/code\u003e constructors so \u003ccode\u003erequest.grant_type\u003c/code\u003e returns\nthe correct value in hooks like \u003ccode\u003ebefore_successful_strategy_response\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1802\"\u003e#1802\u003c/a\u003e Fix \u003ccode\u003efilter_parameters\u003c/code\u003e not applied when \u003ccode\u003eDoorkeeper.configure\u003c/code\u003e is called inside to_prepare.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1804\"\u003e#1804\u003c/a\u003e Use \u003ccode\u003eActiveSupport.on_load(:active_record)\u003c/code\u003e in ORM hooks to prevent loading ActiveRecord models too early\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1806\"\u003e#1806\u003c/a\u003e Fix token revocation bypass for public clients (RFC 7009)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1815\"\u003e#1815\u003c/a\u003e Expose \u003ccode\u003ecurrent_resource_owner\u003c/code\u003e as a view helper in \u003ccode\u003eDoorkeeper::ApplicationController\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1818\"\u003e#1818\u003c/a\u003e Fix token introspection returning \u003ccode\u003eexp: 0\u003c/code\u003e for non-expiring tokens.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1784\"\u003e#1784\u003c/a\u003e Remove hardcoded colons from view templates, move punctuation to i18n translation strings.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e[IMPORTANT]\u003c/strong\u003e: if you have customized Doorkeeper views (\u003ccode\u003eauthorizations/new\u003c/code\u003e, \u003ccode\u003eauthorizations/show\u003c/code\u003e,\n\u003ccode\u003eapplications/show\u003c/code\u003e) or overridden the default \u003ccode\u003een.yml\u003c/code\u003e translations, you may need to update them.\nColons are no longer hardcoded in the views — they are now part of the translation strings.\nUpdate the \u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper-i18n\"\u003edoorkeeper-i18n\u003c/a\u003e gem to get the\nupdated translations for all locales.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1820\"\u003e#1820\u003c/a\u003e Remove dead wildcard presence check in \u003ccode\u003eScopes#dynamic_scope_match?\u003c/code\u003e (internal cleanup, no behavior change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1822\"\u003e#1822\u003c/a\u003e Update Rubocop config, auto-corrections.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1823\"\u003e#1823\u003c/a\u003e Update Rubocop config, part 2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1825\"\u003e#1825\u003c/a\u003e Update Rubocop config, part 3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1821\"\u003e#1821\u003c/a\u003e Fix noisy \u003ccode\u003eCould not find command \u0026quot;no_previous_refresh_token_column?\u0026quot;\u003c/code\u003e Thor output during the\n\u003ccode\u003ePreviousRefreshTokenGenerator\u003c/code\u003e spec by stubbing the underlying DB column check instead of the generator's\nprivate method (test-only change).\u003c/p\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/doorkeeper-gem/doorkeeper/blob/main/CHANGELOG.md\"\u003edoorkeeper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1781\"\u003e#1781\u003c/a\u003e Honor \u003ccode\u003ehandle_auth_errors :raise\u003c/code\u003e in \u003ccode\u003eAuthorizationsController#authorize_response\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1795\"\u003e#1795\u003c/a\u003e Fix: detailed error 'insufficient_scope' in protected resources 403s\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1797\"\u003e#1797\u003c/a\u003e Fix \u003ccode\u003edoorkeeper:db:cleanup\u003c/code\u003e rake task failure on PostgreSQL\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1800\"\u003e#1800\u003c/a\u003e Set \u003ccode\u003e@grant_type\u003c/code\u003e in \u003ccode\u003eClientCredentialsRequest\u003c/code\u003e and \u003ccode\u003eRefreshTokenRequest\u003c/code\u003e constructors so \u003ccode\u003erequest.grant_type\u003c/code\u003e returns\nthe correct value in hooks like \u003ccode\u003ebefore_successful_strategy_response\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1802\"\u003e#1802\u003c/a\u003e Fix \u003ccode\u003efilter_parameters\u003c/code\u003e not applied when \u003ccode\u003eDoorkeeper.configure\u003c/code\u003e is called inside to_prepare.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1804\"\u003e#1804\u003c/a\u003e Use \u003ccode\u003eActiveSupport.on_load(:active_record)\u003c/code\u003e in ORM hooks to prevent loading ActiveRecord models too early\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1806\"\u003e#1806\u003c/a\u003e Fix token revocation bypass for public clients (RFC 7009)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1815\"\u003e#1815\u003c/a\u003e Expose \u003ccode\u003ecurrent_resource_owner\u003c/code\u003e as a view helper in \u003ccode\u003eDoorkeeper::ApplicationController\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1818\"\u003e#1818\u003c/a\u003e Fix token introspection returning \u003ccode\u003eexp: 0\u003c/code\u003e for non-expiring tokens.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1784\"\u003e#1784\u003c/a\u003e Remove hardcoded colons from view templates, move punctuation to i18n translation strings.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e[IMPORTANT]\u003c/strong\u003e: if you have customized Doorkeeper views (\u003ccode\u003eauthorizations/new\u003c/code\u003e, \u003ccode\u003eauthorizations/show\u003c/code\u003e,\n\u003ccode\u003eapplications/show\u003c/code\u003e) or overridden the default \u003ccode\u003een.yml\u003c/code\u003e translations, you may need to update them.\nColons are no longer hardcoded in the views — they are now part of the translation strings.\nUpdate the \u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper-i18n\"\u003edoorkeeper-i18n\u003c/a\u003e gem to get the\nupdated translations for all locales.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1820\"\u003e#1820\u003c/a\u003e Remove dead wildcard presence check in \u003ccode\u003eScopes#dynamic_scope_match?\u003c/code\u003e (internal cleanup, no behavior change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1822\"\u003e#1822\u003c/a\u003e Update Rubocop config, auto-corrections.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1823\"\u003e#1823\u003c/a\u003e Update Rubocop config, part 2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1825\"\u003e#1825\u003c/a\u003e Update Rubocop config, part 3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1821\"\u003e#1821\u003c/a\u003e Fix noisy \u003ccode\u003eCould not find command \u0026quot;no_previous_refresh_token_column?\u0026quot;\u003c/code\u003e Thor output during the\n\u003ccode\u003ePreviousRefreshTokenGenerator\u003c/code\u003e spec by stubbing the underlying DB column check instead of the generator's\nprivate method (test-only change).\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/doorkeeper-gem/doorkeeper/commit/3f5a58d01ac887113e9d6669d2262dedbd8c4991\"\u003e\u003ccode\u003e3f5a58d\u003c/code\u003e\u003c/a\u003e Release 5.9.1 :tada:\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/04cf40f734eb35a21c6f141a27e1ecc75180ddc2\"\u003e\u003ccode\u003e04cf40f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1821\"\u003e#1821\u003c/a\u003e from 55728/55728/fix/generator-spec-thor-command-noise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/2f3c315da6d4526a9da06b92b449b66319173603\"\u003e\u003ccode\u003e2f3c315\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1825\"\u003e#1825\u003c/a\u003e from doorkeeper-gem/update-rubocop-part3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/7856e0006a8c7543d24c962673e9f5751836c121\"\u003e\u003ccode\u003e7856e00\u003c/code\u003e\u003c/a\u003e Update Rubocop, part 3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/0b65e0be27dd952eff3092492b648eba9e8d5437\"\u003e\u003ccode\u003e0b65e0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1824\"\u003e#1824\u003c/a\u003e from doorkeeper-gem/changelog-upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/94eb3570959fd26606802a54c241f7788fa928be\"\u003e\u003ccode\u003e94eb357\u003c/code\u003e\u003c/a\u003e Update GitHub Workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/b3a8812f249aff46c414b56a9d7cbd9d83fa4a66\"\u003e\u003ccode\u003eb3a8812\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1823\"\u003e#1823\u003c/a\u003e from doorkeeper-gem/fix-rubocop-part2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/d1e6d32547389ca0249d9a22e49ad1c313361f1d\"\u003e\u003ccode\u003ed1e6d32\u003c/code\u003e\u003c/a\u003e Update Rubocop, part 2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/c1d79612f0ff8cd8f9f46683bcf0ff653201daaa\"\u003e\u003ccode\u003ec1d7961\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1822\"\u003e#1822\u003c/a\u003e from doorkeeper-gem/rubocop-part1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/ae9687337e65995f6eb52c2d23bc7e477c30d1ae\"\u003e\u003ccode\u003eae96873\u003c/code\u003e\u003c/a\u003e Update Rubocop, part 1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/compare/v.5.9.0...v5.9.1\"\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/gmrdad82/pito/pull/55","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmrdad82%2Fpito/issues/55","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/55/packages"},{"uuid":"4554179035","node_id":"PR_kwDOSloiFs7g7qUi","number":126,"state":"open","title":"chore(deps): bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-30T11:03:10.000Z","updated_at":"2026-05-31T05:01:12.977Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/shakacode/react-on-rails-starter-tanstack/pull/126","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakacode%2Freact-on-rails-starter-tanstack/issues/126","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/126/packages"},{"uuid":"4548453113","node_id":"PR_kwDOSks6js7gpKY2","number":4,"state":"closed","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-06-25T20:04:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-29T12:31:07.000Z","updated_at":"2026-06-25T20:04:23.000Z","time_to_close":2359994,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\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/keng-oh/anisonar/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/keng-oh%2Fanisonar/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"4547586598","node_id":"PR_kwDOSRTiXM7gmUK6","number":13,"state":"closed","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-07T00:18:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-29T10:06:49.000Z","updated_at":"2026-06-07T00:18:28.000Z","time_to_close":742298,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/wjrus/photos/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wjrus%2Fphotos/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"},{"uuid":"4543237016","node_id":"PR_kwDOSEh2h87gYGEE","number":18,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-08T23:33:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-28T19:35:26.000Z","updated_at":"2026-06-08T23:33:29.000Z","time_to_close":964681,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\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/SSapunar/EventHub/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SSapunar%2FEventHub/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"4542803040","node_id":"PR_kwDORrPvXc7gWqDE","number":35,"state":"closed","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-06T12:42:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-28T18:29:15.000Z","updated_at":"2026-06-06T12:42:45.000Z","time_to_close":756808,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/kplawver/did/pull/35","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kplawver%2Fdid/issues/35","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/35/packages"},{"uuid":"4538968917","node_id":"PR_kwDOJKv3g87gKECu","number":1242,"state":"closed","title":"Bump the bundler group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-08T02:06:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-28T08:36:39.000Z","updated_at":"2026-06-08T02:06:46.000Z","time_to_close":927005,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":14,"packages":[{"name":"aws-sdk-s3","old_version":"1.219.0","new_version":"1.224.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.24.5","repository_url":"https://github.com/rails/bootsnap"},{"name":"faker","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"laa_crime_forms_common","old_version":"","new_version":"[oauth2](https://github.com/ruby-oauth/oauth2)","repository_url":"https://github.com/ministryofjustice/laa-crime-forms-common"},{"name":"`2.0.20`","old_version":"","new_version":"[propshaft](https://github.com/rails/propshaft)"},{"name":"`1.3.2`","old_version":"","new_version":"[puma](https://github.com/puma/puma)"},{"name":"`8.0.2`","old_version":"","new_version":"[sidekiq](https://github.com/sidekiq/sidekiq)"},{"name":"`8.1.6`","old_version":"","new_version":"[axe-core-rspec](https://github.com/dequelabs/axe-core-gems)"},{"name":"`4.11.3`","old_version":"","new_version":"[rubocop](https://github.com/rubocop/rubocop)"},{"name":"`1.86.2`","old_version":"","new_version":"[rubocop-rails](https://github.com/rubocop/rubocop-rails)"},{"name":"`2.35.3`","old_version":"","new_version":"[selenium-webdriver](https://github.com/SeleniumHQ/selenium)"},{"name":"`4.44.0`","old_version":"","new_version":"[super_diff](https://github.com/splitwise/super_diff)"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.219.0` | `1.224.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.24.5` |\n| [faker](https://github.com/faker-ruby/faker) | `3.7.1` | `3.8.0` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.14.1` | `2.15.1` |\n| [laa_crime_forms_common](https://github.com/ministryofjustice/laa-crime-forms-common) | ``e94f122`` | ``41fa1ce`` |\n| [oauth2](https://github.com/ruby-oauth/oauth2) | `2.0.18` | `2.0.20` |\n| [propshaft](https://github.com/rails/propshaft) | `1.3.1` | `1.3.2` |\n| [puma](https://github.com/puma/puma) | `8.0.0` | `8.0.2` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.2` | `8.1.6` |\n| [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) | `4.11.1` | `4.11.3` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.86.1` | `1.86.2` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.3` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.43.0` | `4.44.0` |\n| [super_diff](https://github.com/splitwise/super_diff) | `0.18.0` | `0.19.0` |\n\n\nUpdates `aws-sdk-s3` from 1.219.0 to 1.224.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.224.0 (2026-05-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.223.0 (2026-05-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.222.0 (2026-05-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.221.0 (2026-05-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Validate outpost access point resource name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.220.0 (2026-04-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - This release adds five additional checksum algorithms for S3 data integrity (MD5, SHA-512, XXHash3, XXHash64, XXHash128) and support for S3 Inventory on directory buckets (S3 Express One Zone).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.24.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.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/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\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/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/103a92bc6fd05c7c97abfd048c8fc5cb0bd05757\"\u003e\u003ccode\u003e103a92b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/551\"\u003e#551\u003c/a\u003e from byroot/enable-fstr-global\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/33c927dc61e8ea868f1dcc681df5275d173b71fb\"\u003e\u003ccode\u003e33c927d\u003c/code\u003e\u003c/a\u003e Update compiler options when global options change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/122db7fdaea8a05fd54a8d23df8946bed43d9f54\"\u003e\u003ccode\u003e122db7f\u003c/code\u003e\u003c/a\u003e Simplify \u003ccode\u003eenable_frozen_string_literal(app_only: false)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/0d8a0a64cd1f302a4cbb29088fff7847ef9852c8\"\u003e\u003ccode\u003e0d8a0a6\u003c/code\u003e\u003c/a\u003e Release 1.24.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6ccc5ebda794afe4e2b36be677640b4f7b6a03ac\"\u003e\u003ccode\u003e6ccc5eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/550\"\u003e#550\u003c/a\u003e from byroot/fstr-and-coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/86e95864f89067159dadb8be68b656ae1a5f38ea\"\u003e\u003ccode\u003e86e9586\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e work even with coverage on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/36c22246259452d163986565f7a946154f742da7\"\u003e\u003ccode\u003e36c2224\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/549\"\u003e#549\u003c/a\u003e from byroot/integration-tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 3.7.1 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-ruby/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Lazy loading config by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3244\"\u003efaker-ruby/faker#3244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnabling lazy load\u003c/h2\u003e\n\u003cp\u003eThis version introduces lazy loading. It means users will only pay for what they use. Faker \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/experiments/lazy_load.md\"\u003eloads 2x faster\u003c/a\u003e when it's enabled.\u003c/p\u003e\n\u003cp\u003eLazy loading the generators is disabled by default. To enable it, choose one of the configuration options below:\u003c/p\u003e\n\u003ch3\u003e1 - Set lazy load as a Faker Config\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eFaker::Config.lazy_loading = true\u003c/code\u003e\u003c/p\u003e\n\u003ch3\u003e2 - Set lazy load as an environment variable\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eFAKER_LAZY_LOAD = 1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWe hope you get to see the improvement by enabling it. Please file a bug report for any issues!\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jeremyevans\"\u003e\u003ccode\u003e@​jeremyevans\u003c/code\u003e\u003c/a\u003e for the mentoring, and to \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e for pairing and code reviews.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.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/faker-ruby/faker/blob/main/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.8.0\"\u003ev3.8.0\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Lazy loading config by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3244\"\u003efaker-ruby/faker#3244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnabling lazy load\u003c/h3\u003e\n\u003cp\u003eThis version introduces lazy loading. It means users will only pay for what they use. Faker \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/experiments/lazy_load.md\"\u003eloads 2x faster\u003c/a\u003e when it's enabled.\u003c/p\u003e\n\u003cp\u003eLazy loading the generators is disabled by default. To enable it, choose one of the configuration options below:\u003c/p\u003e\n\u003ch4\u003e1 - Set lazy load as a Faker Config\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eFaker::Config.lazy_loading = true\u003c/code\u003e\u003c/p\u003e\n\u003ch4\u003e2 - Set lazy load as an environment variable\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eFAKER_LAZY_LOAD = 1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWe hope you get to see the improvement by enabling it. Please file a bug report for any issues!\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jeremyevans\"\u003e\u003ccode\u003e@​jeremyevans\u003c/code\u003e\u003c/a\u003e for the mentoring, and to \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e for pairing and code reviews.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\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/faker-ruby/faker/commit/e48d35f4fa0d4bda8257975d9549e4d9422a0ba4\"\u003e\u003ccode\u003ee48d35f\u003c/code\u003e\u003c/a\u003e bump faker to v3.8.0 (\u003ca href=\"https://redirect.github.com/faker-ruby/faker/issues/3245\"\u003e#3245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-ruby/faker/commit/7193b32ef1a6bb1445fbba203996b790d9b7b314\"\u003e\u003ccode\u003e7193b32\u003c/code\u003e\u003c/a\u003e Add Lazy loading config (\u003ca href=\"https://redirect.github.com/faker-ruby/faker/issues/3244\"\u003e#3244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.14.1 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `laa_crime_forms_common` from `e94f122` to `41fa1ce`\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/41fa1cec56a56340ed1d011b3c1964f1072cb906\"\u003e\u003ccode\u003e41fa1ce\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/119\"\u003e#119\u003c/a\u003e from ministryofjustice/CRM457-3022-github-security-ba...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/7991d9f65367005ae177c2b6965cada43d5a05cb\"\u003e\u003ccode\u003e7991d9f\u003c/code\u003e\u003c/a\u003e CRM457-3022 added cooldown config for dependabot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/ac6148ec20983f00aa5c7301781aa63d01df6683\"\u003e\u003ccode\u003eac6148e\u003c/code\u003e\u003c/a\u003e CRM457-3022 added pre-commit hook process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/e76aedc1b2e8a915bb8f154ed3ebe5aceb14cc7a\"\u003e\u003ccode\u003ee76aedc\u003c/code\u003e\u003c/a\u003e CRM457-3022 added SCA - software composition analysis action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/d4e472c1614d1641b63ea143a142204ccf32d837\"\u003e\u003ccode\u003ed4e472c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/114\"\u003e#114\u003c/a\u003e from ministryofjustice/CRM457-2999-github-actions-str...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/5dec183708d41188c5597d930e88a01507bf819f\"\u003e\u003ccode\u003e5dec183\u003c/code\u003e\u003c/a\u003e Update pipeline, pin actions to commit SHAs instead of versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/dd7de8cbe58898fa5ce9f46f033ddcd05095c950\"\u003e\u003ccode\u003edd7de8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/113\"\u003e#113\u003c/a\u003e from ministryofjustice/dependabot/bundler/activesuppo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/d93ab8075c0e5689c21fa58ff9c33244b591eb33\"\u003e\u003ccode\u003ed93ab80\u003c/code\u003e\u003c/a\u003e Bump activesupport from 8.1.1 to 8.1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/b40bb472dbf9690271e988d10ee795f066045b8d\"\u003e\u003ccode\u003eb40bb47\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/112\"\u003e#112\u003c/a\u003e from ministryofjustice/dependabot/bundler/json-2.15.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/119dce0ada4068e7cdfda9566f63ecdb53b17a4a\"\u003e\u003ccode\u003e119dce0\u003c/code\u003e\u003c/a\u003e Bump json from 2.15.2 to 2.15.2.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/compare/e94f122b9555ec36ffccb300d6cbd53158b23f54...41fa1cec56a56340ed1d011b3c1964f1072cb906\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oauth2` from 2.0.18 to 2.0.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases\"\u003eoauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.19...v2.0.20\"\u003e2.0.20\u003c/a\u003e - 2026-05-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.20\"\u003ev2.0.20\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 99.62% -- 525/527 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth2::VERSION (Traditional Constant Location)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eauth-sanitizer v0.1.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/721\"\u003egh!721\u003c/a\u003e Load \u003ccode\u003eauth-sanitizer\u003c/code\u003e through an internal isolated loader so requiring \u003ccode\u003eoauth2\u003c/code\u003e does not add top-level \u003ccode\u003eAuth\u003c/code\u003e or \u003ccode\u003eAuthSanitizer\u003c/code\u003e constants that may collide with downstream applications by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003eOfficial Discord 👉️ [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]\u003c/p\u003e\n\u003cp\u003eMany paths lead to being a sponsor or a backer of this project. Are you on such a path?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://opencollective.com/ruby-oauth#backer\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/backers/badge.svg?style=flat\" alt=\"OpenCollective Backers\" /\u003e\u003c/a\u003e \u003ca href=\"https://opencollective.com/ruby-oauth#sponsor\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/sponsors/badge.svg?style=flat\" alt=\"OpenCollective Sponsors\" /\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sponsors/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social\u0026amp;logo=github\" alt=\"Sponsor Me on Github\" /\u003e\u003c/a\u003e \u003ca href=\"https://liberapay.com/pboling/donate\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay\u0026amp;color=a51611\u0026amp;style=flat\" alt=\"Liberapay Goal Progress\" /\u003e\u003c/a\u003e [![Donate on PayPal][🖇paypal-img]][🖇paypal]\u003c/p\u003e\n\u003cp\u003e[\u003cimg src=\"https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat\" alt=\"Buy me a coffee\" /\u003e][🖇buyme] \u003ca href=\"https://polar.sh/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/polar-donate-a51611.svg?style=flat\" alt=\"Donate on Polar\" /\u003e\u003c/a\u003e \u003ca href=\"https://ko-fi.com/O5O86SNP4\"\u003e\u003cimg src=\"https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts at ko-fi.com\" /\u003e\u003c/a\u003e \u003ca href=\"https://patreon.com/galtzo\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts using Patreon\" /\u003e\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/blob/main/CHANGELOG.md\"\u003eoauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.20] - 2026-05-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.20][2.0.20t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 99.62% -- 525/527 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth2::VERSION (Traditional Constant Location)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eauth-sanitizer v0.1.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/721\"\u003egh!721\u003c/a\u003e Load \u003ccode\u003eauth-sanitizer\u003c/code\u003e through an internal isolated loader so requiring \u003ccode\u003eoauth2\u003c/code\u003e does not add top-level \u003ccode\u003eAuth\u003c/code\u003e or \u003ccode\u003eAuthSanitizer\u003c/code\u003e constants that may collide with downstream applications by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003ch2\u003e[2.0.19] - 2026-05-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.19][2.0.19t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 515/515 lines in 14 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files\u003c/li\u003e\n\u003cli\u003e89.11% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Add \u003ccode\u003eOAuth2.config[:filtered_label]\u003c/code\u003e to configure the placeholder used for filtered sensitive values in inspected objects and debug logging output by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Add \u003ccode\u003eOAuth2.config[:filtered_debug_keys]\u003c/code\u003e to configure which key names have their values redacted from debug logging output by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Make inspect-time and debug-log filters snapshot their configuration at initialization time rather than tracking later config changes by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[gh!714][gh!714]Refactor sensitive-value filtering to use \u003ccode\u003eauth-sanitizer\u003c/code\u003e while preserving \u003ccode\u003eOAuth2::FilteredAttributes\u003c/code\u003e as a permanent API alias by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove the internal \u003ccode\u003eOAuth2::ThingFilter\u003c/code\u003e and \u003ccode\u003eOAuth2::SanitizedLogger\u003c/code\u003e implementations now provided by \u003ccode\u003eauth-sanitizer\u003c/code\u003e by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Redact sensitive values from debug logging output, including Authorization headers and common token/secret fields in headers, query strings, form bodies, and JSON payloads by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eNOTE: debug logging has always been, and remains, opt-in. It is turned off by default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/e2d509705db6091c8d5f27c31e29c58e39e51c7c\"\u003e\u003ccode\u003ee2d5097\u003c/code\u003e\u003c/a\u003e 🔧 :nocov: for unreachable error states\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/30650b2e1cb743e3263181e8b8a32c57ef33b9fb\"\u003e\u003ccode\u003e30650b2\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/23f2855f1b0053a38b6b5df00c870d83db761c31\"\u003e\u003ccode\u003e23f2855\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/721\"\u003e#721\u003c/a\u003e from ruby-oauth/fix/top-level-namespace-pollution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/5e4c98831ecb68ec446fcc99be0af40e6e68490c\"\u003e\u003ccode\u003e5e4c988\u003c/code\u003e\u003c/a\u003e Fix RuboCop Gradual offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/89397f699bd6903c5ac3a9927d1743984a946dc5\"\u003e\u003ccode\u003e89397f6\u003c/code\u003e\u003c/a\u003e Constrain auth-sanitizer loader lookup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/8e71e19890fe486d7d260eb29ec67eb5ac1e75d0\"\u003e\u003ccode\u003e8e71e19\u003c/code\u003e\u003c/a\u003e 📝 CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/6082a21c5628b270953dc9edb0af57dafb36e194\"\u003e\u003ccode\u003e6082a21\u003c/code\u003e\u003c/a\u003e ⬆️ snaky_hash, faraday-net_http, zeitwerk, bundler-audit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/350da4214e9285fd88e21a9859d049dc8e954a25\"\u003e\u003ccode\u003e350da42\u003c/code\u003e\u003c/a\u003e Avoid auth-sanitizer top-level namespaces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/0bc19030c2226ab16fc237b547e95d90ed8fa2e9\"\u003e\u003ccode\u003e0bc1903\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/719\"\u003e#719\u003c/a\u003e from step-security-bot/chore/GHA-182236-stepsecurity-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/148d716337a530494895091fe3b4359a410212a5\"\u003e\u003ccode\u003e148d716\u003c/code\u003e\u003c/a\u003e Switch pre-commit hook to rubocop_gradual\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.18...v2.0.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `propshaft` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd charset=utf-8 to Content-Type for CSS and HTML assets by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/264\"\u003erails/propshaft#264\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/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/265\"\u003erails/propshaft#265\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ehttps://github.com/rails/propshaft/compare/v1.3.1...v1.3.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/rails/propshaft/commit/eb5957157c2e59fabff5b15c710826670fd66c27\"\u003e\u003ccode\u003eeb59571\u003c/code\u003e\u003c/a\u003e Bump version for 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8335366ac8e4bcb71ef169f6465d1575f6fcadca\"\u003e\u003ccode\u003e8335366\u003c/code\u003e\u003c/a\u003e Add charset=utf-8 to Content-Type for CSS and HTML assets (\u003ca href=\"https://redirect.github.com/rails/propshaft/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/67def02992440379f43b821da8df3be6fd881b3b\"\u003e\u003ccode\u003e67def02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/265\"\u003e#265\u003c/a\u003e from flavorjones/fix-ci-minitest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/2f9965a5d1e47aa052daba4df8768908c2e54821\"\u003e\u003ccode\u003e2f9965a\u003c/code\u003e\u003c/a\u003e Support minitest 6 where possible, pin \u0026lt; 6 elsewhere\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 8.0.0 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\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/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v8.0.0...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.1.2 to 8.1.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix reported thread/memory leak when jobs fail \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7006\"\u003e#7006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsers can limit data displayed on Busy page with the \u003ccode\u003eonly\u003c/code\u003e parameter \u003ccode\u003e/busy?only=(jobs|processes)\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace Rack::Utils usage with standard library APIs\u003c/li\u003e\n\u003cli\u003eSeveral minor fixes from AI scanners.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sub-second precision when computing the \u003ccode\u003eretry_for\u003c/code\u003e deadline \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7003\"\u003e#7003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIdentify Sidekiq connnections in Redis with \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case where Web UI could show an empty Batch set \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe TTIN signal is undeprecated as the INFO signal is not supported on Linux\u003c/li\u003e\n\u003cli\u003eShow iteration job state on Busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6978\"\u003e#6978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge case leading to duplicate, concurrent execution \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\nIf 2 Capsules process jobs from the same queue, long-running\njobs could run in parallel during process shutdown.\u003c/li\u003e\n\u003cli\u003e[SECURITY] Remove as much YAML usage as possible. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\nLocalization files in \u003ccode\u003eweb/locales\u003c/code\u003e are now manually parsed.\nSidekiq::CLI will now only require YAML if you use a \u003ccode\u003e-C\u003c/code\u003e .yml file.\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/sidekiq/sidekiq/commit/90da768570b8da237566e9002093624a509b304b\"\u003e\u003ccode\u003e90da768\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/94c8888f9b3e9b781a06704b5950e78987902293\"\u003e\u003ccode\u003e94c8888\u003c/code\u003e\u003c/a\u003e update changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/393b56c1849a6f7cab365463a27f325856b6948f\"\u003e\u003ccode\u003e393b56c\u003c/code\u003e\u003c/a\u003e ensure that busy?only parameter survives Live Poll refresh, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6008c4f09ee368de5fcd638cc97c8aaad4d5ed9d\"\u003e\u003ccode\u003e6008c4f\u003c/code\u003e\u003c/a\u003e remove more rack::utils usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/f87657dafa55e6b05431079b24e63a921e7f5023\"\u003e\u003ccode\u003ef87657d\u003c/code\u003e\u003c/a\u003e Rename example erb to follow Herb's filenaming scheme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/7a4302d689c566c79d98050805f0f6edf758749b\"\u003e\u003ccode\u003e7a4302d\u003c/code\u003e\u003c/a\u003e Remove rack::utils usage, use CGI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/88c4d7b1abd30db013999020746d263bf3edc7e8\"\u003e\u003ccode\u003e88c4d7b\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/832b3439a99f14cca9bba6568075f7849cc6bce5\"\u003e\u003ccode\u003e832b343\u003c/code\u003e\u003c/a\u003e Implement  parameter to limit data displayed on Busy page, fixes \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6820de00f387ed57dd8cfaac420e4cc973b679b5\"\u003e\u003ccode\u003e6820de0\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::JobUtil (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6999\"\u003e#6999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/b8393fae0d4b5d72ee2a44fb247ab93ce7975612\"\u003e\u003ccode\u003eb8393fa\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::Paginator (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7000\"\u003e#7000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.1.2...v8.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axe-core-rspec` from 4.11.1 to 4.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dequelabs/axe-core-gems/releases\"\u003eaxe-core-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.11.3\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003ea0330b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 4.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\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/dequelabs/axe-core-gems/blob/develop/CHANGELOG.md\"\u003eaxe-core-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.2...v4.11.3\"\u003e4.11.3\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003ea0330b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.2\"\u003e4.11.2\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\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/dequelabs/axe-core-gems/commit/0fbfe215855653959e66487fbb2d7dfa2c2f3ff6\"\u003e\u003ccode\u003e0fbfe21\u003c/code\u003e\u003c/a\u003e chore: release v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/b45e785233d0bdac230f9dffaec30e60d4adf2ba\"\u003e\u003ccode\u003eb45e785\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/45f30e034cb2f4df9cc859dcda448eebb556edd0\"\u003e\u003ccode\u003e45f30e0\u003c/code\u003e\u003c/a\u003e Merge branch 'release' into release-2026-04-29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a748ba8978dc93e99fc6223cc6d0e454c2e2bfa2\"\u003e\u003ccode\u003ea748ba8\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003e\u003ccode\u003ea0330b0\u003c/code\u003e\u003c/a\u003e fix: Update axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/62d60478fc3973c639177d04a471efeb54566c65\"\u003e\u003ccode\u003e62d6047\u003c/code\u003e\u003c/a\u003e chore: merge master into develop (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/480\"\u003e#480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/fd8a85c7db631005fa1cb155e002e7a7d73a9bbd\"\u003e\u003ccode\u003efd8a85c\u003c/code\u003e\u003c/a\u003e chore: add create-release workflow (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/61cd3cca5135f73234fc3cfd12ca0a92368ae44c\"\u003e\u003ccode\u003e61cd3cc\u003c/code\u003e\u003c/a\u003e chore: Release 4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/94a90f6c4bd9d23d5ac3ef3de8c7b3b225f0493c\"\u003e\u003ccode\u003e94a90f6\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/dd9b9a9755ea0c571af412349d9df4608dbd2c05\"\u003e\u003ccode\u003edd9b9a9\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.86.1 to 1.86.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.86.2\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15075\"\u003e#15075\u003c/a\u003e: Implement true runner parallelism. (\u003ca href=\"https://github.com/tdeo\"\u003e\u003ccode\u003e@​tdeo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15156\"\u003e#15156\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when chaining \u003ccode\u003efetch\u003c/code\u003e (or \u003ccode\u003e[]\u003c/code\u003e) calls on the same expression. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15161\"\u003e#15161\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ReduceToHash\u003c/code\u003e when nested \u003ccode\u003eeach_with_object\u003c/code\u003e/\u003ccode\u003einject\u003c/code\u003e/\u003ccode\u003ereduce\u003c/code\u003e calls would build hashes. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15144\"\u003e#15144\u003c/a\u003e: Fix an error in \u003ccode\u003eStyle/SoleNestedConditional\u003c/code\u003e when autocorrecting nested conditionals containing comments. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15040\"\u003e#15040\u003c/a\u003e: Exclude \u003ccode\u003econstants\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. (\u003ca href=\"https://github.com/t-daisuke\"\u003e\u003ccode\u003e@​t-daisuke\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15155\"\u003e#15155\u003c/a\u003e: Fix false negatives in \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e when an explicit \u003ccode\u003eself\u003c/code\u003e receiver in one scope matches the LHS of an \u003ccode\u003e||=\u003c/code\u003e, \u003ccode\u003e\u0026amp;\u0026amp;=\u003c/code\u003e, or \u003ccode\u003eop_asgn\u003c/code\u003e in another scope. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15107\"\u003e#15107\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RequireRelativeSelfPath\u003c/code\u003e when a non-\u003ccode\u003e.rb\u003c/code\u003e file uses \u003ccode\u003erequire_relative\u003c/code\u003e with its own basename. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15137\"\u003e#15137\u003c/a\u003e: Fix incorrect \u0026quot;does not support IndentationWidth parameter\u0026quot; warning for \u003ccode\u003eLayout/ClosingParenthesisIndentation\u003c/code\u003e and \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15148\"\u003e#15148\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e bodies. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15147\"\u003e#15147\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in the body of \u003ccode\u003eunless\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15163\"\u003e#15163\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e\\A#\u003c/code\u003e, uses \u003ccode\u003e\\s\u003c/code\u003e metacharacters, or has multiple spaces after \u003ccode\u003e#\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10179\"\u003e#10179\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/DocumentDynamicEvalDefinition\u003c/code\u003e when the heredoc contains an escaped interpolation (\u003ccode\u003e\\#{...}\u003c/code\u003e). (\u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15154\"\u003e#15154\u003c/a\u003e: Fix bug where specifying \u003ccode\u003e--out\u003c/code\u003e disables parallelization. (\u003ca href=\"https://github.com/deivid-rodriguez\"\u003e\u003ccode\u003e@​deivid-rodriguez\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15106\"\u003e#15106\u003c/a\u003e: Fix \u003ccode\u003eTargetFinder\u003c/code\u003e to work correctly inside hidden parent directories. (\u003ca href=\"https://github.com/alpaca-tc\"\u003e\u003ccode\u003e@​alpaca-tc\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15102\"\u003e#15102\u003c/a\u003e: Fix \u003ccode\u003eFrozenError\u003c/code\u003e in \u003ccode\u003eDisabledConfigFormatter\u003c/code\u003e for frozen array config parameters. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15141\"\u003e#15141\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eGemspec/RequireMFA\u003c/code\u003e causing an infinite loop when \u003ccode\u003erubygems_mfa_required\u003c/code\u003e metadata uses a symbol key. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15142\"\u003e#15142\u003c/a\u003e: Fix infinite loop for \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e and offense near heredoc. (\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15054\"\u003e#15054\u003c/a\u003e: Fix false positive for \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a dot-aligned method chain is inside a hash pair value. (\u003ca href=\"https://github.com/nicolas-finary\"\u003e\u003ccode\u003e@​nicolas-finary\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15136\"\u003e#15136\u003c/a\u003e: Fix false positive for \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e when \u003ccode\u003e# rubocop:disable\u003c/code\u003e is wrapped in a \u003ccode\u003e# rubocop:push\u003c/code\u003e / \u003ccode\u003e# rubocop:pop\u003c/code\u003e block. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15115\"\u003e#15115\u003c/a\u003e: Fix an incorrect autocorrect in \u003ccode\u003eStyle/RegexpLiteral\u003c/code\u003e when the regexp contains unbalanced braces that conflict with the preferred \u003ccode\u003e%r\u003c/code\u003e delimiters. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15130\"\u003e#15130\u003c/a\u003e: Fix incorrect autocorrect in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eAutocorrectNotice\u003c/code\u003e lacks a \u003ccode\u003e#\u003c/code\u003e prefix or \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e^#\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14821\"\u003e#14821\u003c/a\u003e: Fix \u003ccode\u003eStyle/IfInsideElse\u003c/code\u003e autocorrect moving comments into the wrong branch when a comment precedes the nested \u003ccode\u003eif\u003c/code\u003e in an \u003ccode\u003eelse\u003c/code\u003e. (\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14583\"\u003e#14583\u003c/a\u003e: Fix template extractor applying only the last fragment's autocorrection. (\u003ca href=\"https://github.com/zeronosu77108\"\u003e\u003ccode\u003e@​zeronosu77108\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14971\"\u003e#14971\u003c/a\u003e: Fix false positive for \u003ccode\u003eStyle/WhileUntilModifier\u003c/code\u003e when the body is a conditional. (\u003ca href=\"https://github.com/fujitanisora\"\u003e\u003ccode\u003e@​fujitanisora\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/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.86.2 (2026-05-14)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15075\"\u003e#15075\u003c/a\u003e: Implement true runner parallelism. ([\u003ca href=\"https://github.com/tdeo\"\u003e\u003ccode\u003e@​tdeo\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15156\"\u003e#15156\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when chaining \u003ccode\u003efetch\u003c/code\u003e (or \u003ccode\u003e[]\u003c/code\u003e) calls on the same expression. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15161\"\u003e#15161\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ReduceToHash\u003c/code\u003e when nested \u003ccode\u003eeach_with_object\u003c/code\u003e/\u003ccode\u003einject\u003c/code\u003e/\u003ccode\u003ereduce\u003c/code\u003e calls would build hashes. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15144\"\u003e#15144\u003c/a\u003e: Fix an error in \u003ccode\u003eStyle/SoleNestedConditional\u003c/code\u003e when autocorrecting nested conditionals containing comments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15040\"\u003e#15040\u003c/a\u003e: Exclude \u003ccode\u003econstants\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/t-daisuke\"\u003e\u003ccode\u003e@​t-daisuke\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15155\"\u003e#15155\u003c/a\u003e: Fix false negatives in \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e when an explicit \u003ccode\u003eself\u003c/code\u003e receiver in one scope matches the LHS of an \u003ccode\u003e||=\u003c/code\u003e, \u003ccode\u003e\u0026amp;\u0026amp;=\u003c/code\u003e, or \u003ccode\u003eop_asgn\u003c/code\u003e in another scope. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15107\"\u003e#15107\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RequireRelativeSelfPath\u003c/code\u003e when a non-\u003ccode\u003e.rb\u003c/code\u003e file uses \u003ccode\u003erequire_relative\u003c/code\u003e with its own basename. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15137\"\u003e#15137\u003c/a\u003e: Fix incorrect \u0026quot;does not support IndentationWidth parameter\u0026quot; warning for \u003ccode\u003eLayout/ClosingParenthesisIndentation\u003c/code\u003e and \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15148\"\u003e#15148\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e bodies. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15147\"\u003e#15147\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in the body of \u003ccode\u003eunless\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15163\"\u003e#15163\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e\\A#\u003c/code\u003e, uses \u003ccode\u003e\\s\u003c/code\u003e metacharacters, or has multiple spaces after \u003ccode\u003e#\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10179\"\u003e#10179\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/DocumentDynamicEvalDefinition\u003c/code\u003e when the heredoc contains an escaped interpolation (\u003ccode\u003e\\#{...}\u003c/code\u003e). ([\u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15154\"\u003e#15154\u003c/a\u003e: Fix bug where specifying \u003ccode\u003e--out\u003c/code\u003e disables parallelization. ([\u003ca href=\"https://github.com/deivid-rodriguez\"\u003e\u003ccode\u003e@​deivid-rodriguez\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15106\"\u003e#15106\u003c/a\u003e: Fix \u003ccode\u003eTargetFinder\u003c/code\u003e to work correctly inside hidden parent directories. ([\u003ca href=\"https://github.com/alpaca-tc\"\u003e\u003ccode\u003e@​alpaca-tc\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15102\"\u003e#15102\u003c/a\u003e: Fix \u003ccode\u003eFrozenError\u003c/code\u003e in \u003ccode\u003eDisabledConfigFormatter\u003c/code\u003e for frozen array config parameters. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15141\"\u003e#15141\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eGemspec/RequireMFA\u003c/code\u003e causing an infinite loop when \u003ccode\u003erubygems_mfa_required\u003c/code\u003e metadata uses a symbol key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15142\"\u003e#15142\u003c/a\u003e: Fix infinite loop for \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e and offense near heredoc. ([\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15054\"\u003e#15054\u003c/a\u003e: Fix false positive for \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a dot-aligned method chain is inside a hash pair value. ([\u003ca href=\"https://github.com/nicolas-finary\"\u003e\u003ccode\u003e@​nicolas-finary\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15136\"\u003e#15136\u003c/a\u003e: Fix false positive for \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e when \u003ccode\u003e# rubocop:disable\u003c/code\u003e is wrapped in a \u003ccode\u003e# rubocop:push\u003c/code\u003e / \u003ccode\u003e# rubocop:pop\u003c/code\u003e block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15115\"\u003e#15115\u003c/a\u003e: Fix an incorrect autocorrect in \u003ccode\u003eStyle/RegexpLiteral\u003c/code\u003e when the regexp contains unbalanced braces that conflict with the preferred \u003ccode\u003e%r\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15130\"\u003e#15130\u003c/a\u003e: Fix incorrect autocorrect in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eAutocorrectNotice\u003c/code\u003e lacks a \u003ccode\u003e#\u003c/code\u003e prefix or \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e^#\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14821\"\u003e#14821\u003c/a\u003e: Fix \u003ccode\u003eStyle/IfInsideElse\u003c/code\u003e autocorrect moving comments into the wrong branch when a comment precedes the nested \u003ccode\u003eif\u003c/code\u003e in an \u003ccode\u003eelse\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14583\"\u003e#14583\u003c/a\u003e: Fix template extractor applying only the last fragment's autocorrection. ([\u003ca href=\"https://github.com/zeronosu77108\"\u003e\u003ccode\u003e@​zeronosu77108\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14971\"\u003e#14971\u003c/a\u003e: Fix false positive for \u003ccode\u003eStyle/WhileUntilModifier\u003c/code\u003e when the body is a conditional. ([\u003ca href=\"https://github.com/fujitanisora\"\u003e\u003ccode\u003e@​fujitanisora\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/rubocop/rubocop/commit/e513d333754b242c5b530192be0239638055acaf\"\u003e\u003ccode\u003ee513d33\u003c/code\u003e\u003c/a\u003e Cut 1.86.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5fea1b52a1e4cbd2da0a071a1e3456de0a69141c\"\u003e\u003ccode\u003e5fea1b5\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2a3dfcd230ecd97824c9f10d995a471449cba8a9\"\u003e\u003ccode\u003e2a3dfcd\u003c/code\u003e\u003c/a\u003e Don't use Registry#to_h\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/836b2751937092f20940fc20cf01e60c16fb4a05\"\u003e\u003ccode\u003e836b275\u003c/code\u003e\u003c/a\u003e Simplify registry internals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/90348d5c70e3986d51dc4943615a0a846b6d260c\"\u003e\u003ccode\u003e90348d5\u003c/code\u003e\u003c/a\u003e Fix false positives in \u003ccode\u003eStyle/Copyright\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7419163797ba5908ce0fd4cd6a0a47eaf005e632\"\u003e\u003ccode\u003e7419163\u003c/code\u003e\u003c/a\u003e Fix extension suggestion documentation link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e4673357d34fad1f10e8f84e0dbcb9a19d34e331\"\u003e\u003ccode\u003ee467335\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15161\"\u003e#15161\u003c/a\u003e from koic/fix_an_error_for_style_reduce_to_hash.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/bd48b6b2b2c58ec1195780ec1c25fc75dd855a85\"\u003e\u003ccode\u003ebd48b6b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15160\"\u003e#15160\u003c/a\u003e from lovro-bikic/autoload-mixins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b9cda613a6194dbbf146c999c03fbaee7b0a2178\"\u003e\u003ccode\u003eb9cda61\u003c/code\u003e\u003c/a\u003e Autoload mixins instead of requiring them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/55a827814ae5ab00d2d4bb6810a9bb6c651da471\"\u003e\u003ccode\u003e55a8278\u003c/code\u003e\u003c/a\u003e Fix an error for \u003ccode\u003eStyle/ReduceToHash\u003c/code\u003e cop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.86.1...v1.86.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rails` from 2.34.3 to 2.35.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/releases\"\u003erubocop-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Rails v2.35.3\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1630\"\u003e#1630\u003c/a\u003e: Fix a false positive in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when negating \u003ccode\u003eparams[:key]\u003c/code\u003e with \u003ccode\u003e!\u003c/code\u003e, such as \u003ccode\u003e!params[:key]\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1629\"\u003e#1629\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using the safe navigation operator (\u003ccode\u003e\u0026amp;.\u003c/code\u003e) on \u003ccode\u003eparams[:key]\u003c/code\u003e. Autocorrecting \u003ccode\u003eparams[:key]\u0026amp;.downcase\u003c/code\u003e to \u003ccode\u003eparams.expect(:key).downcase\u003c/code\u003e silently changes behavior — a missing param goes from returning \u003ccode\u003enil\u003c/code\u003e to raising \u003ccode\u003eActionController::ParameterMissing\u003c/code\u003e. (\u003ca href=\"https://github.com/lucasmazza\"\u003e\u003ccode\u003e@​lucasmazza\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1625\"\u003e#1625\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using collection methods (such as \u003ccode\u003edelete\u003c/code\u003e, \u003ccode\u003ekeys\u003c/code\u003e, \u003ccode\u003emerge\u003c/code\u003e, \u003ccode\u003eslice\u003c/code\u003e, \u003ccode\u003edig\u003c/code\u003e, \u003ccode\u003efetch\u003c/code\u003e, or \u003ccode\u003etransform_values\u003c/code\u003e) on \u003ccode\u003eparams[:key]\u003c/code\u003e, as well as block-style calls such as \u003ccode\u003eparams[:key].each { ... }\u003c/code\u003e or \u003ccode\u003eparams[:key].map(\u0026amp;:to_s)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1627\"\u003e#1627\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e for usages like \u003ccode\u003eparams[:key].try(:method)\u003c/code\u003e and \u003ccode\u003eparams[:key].try!(:method)\u003c/code\u003e. (\u003ca href=\"https://github.com/nicholasdower\"\u003e\u003ccode\u003e@​nicholasdower\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.1\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1616\"\u003e#1616\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using nil-safe conversion methods such as \u003ccode\u003eto_i\u003c/code\u003e, \u003ccode\u003eto_s\u003c/code\u003e, \u003ccode\u003eto_a\u003c/code\u003e, \u003ccode\u003eto_f\u003c/code\u003e, and \u003ccode\u003eto_h\u003c/code\u003e on \u003ccode\u003eparams[:key]\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1622\"\u003e#1622\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using key-c...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-assess-crime-forms/pull/1242","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-assess-crime-forms/issues/1242","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1242/packages"},{"uuid":"4533880448","node_id":"PR_kwDOSPlnyM7f5ik6","number":10,"state":"closed","title":"build(deps): bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-11T13:24:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-27T16:11:54.000Z","updated_at":"2026-09-11T13:24:02.000Z","time_to_close":9234726,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR 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\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/kswkrmmr/tokubank-app/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kswkrmmr%2Ftokubank-app/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"4529772235","node_id":"PR_kwDOPwphEs7fsGu9","number":2293,"state":"open","title":"chore(deps): bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-27T05:28:53.000Z","updated_at":"2026-05-27T05:29:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/hackclub/flavortown/pull/2293","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fflavortown/issues/2293","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2293/packages"},{"uuid":"4529664032","node_id":"PR_kwDOOqvUmc7frxM7","number":566,"state":"open","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-27T05:03:31.000Z","updated_at":"2026-05-27T05:07:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ethanliu24/beatstore/pull/566","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethanliu24%2Fbeatstore/issues/566","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/566/packages"},{"uuid":"4528594669","node_id":"PR_kwDOGldeHc7foYGi","number":965,"state":"closed","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-27T06:12:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-27T00:58:24.000Z","updated_at":"2026-05-27T06:12:37.000Z","time_to_close":18851,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ecosyste-ms/timeline/pull/965","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Ftimeline/issues/965","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/965/packages"}],"issue_packages":[{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-10-20T11:00:03.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"5940475177","node_id":"PR_kwDOQTePMc8AAAABJiJrsw","number":20,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":true,"comments_count":1,"pull_request":true,"closed_at":"2026-10-20T11:03:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-20T11:00:03.000Z","updated_at":"2026-10-20T11:03:27.000Z","time_to_close":194,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/joaotorres/avocado/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotorres%2Favocado/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"2.11.5","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-09-25T11:58:24.000Z","version_change":"2.11.5 → 2.15.1","issue":{"uuid":"5582461986","node_id":"PR_kwDOB4ZGwM8AAAABFG1xow","number":343,"state":"open","title":"Bump the ruby-dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-25T11:58:24.000Z","updated_at":"2026-09-25T11:58:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-dependencies","update_count":34,"packages":[{"name":"sqlite3","old_version":"1.6.1","new_version":"2.9.6","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"puma","old_version":"6.6.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"turbo-rails","old_version":"1.4.0","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"jbuilder","old_version":"2.11.5","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"config","old_version":"4.1.0","new_version":"5.6.1","repository_url":"https://github.com/rubyconfig/config"},{"name":"google-apis-analyticsdata_v1beta","old_version":"0.32.0","new_version":"0.41.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.17.4","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"rails","old_version":"7.2.3.2","new_version":"7.2.4","repository_url":"https://github.com/rails/rails"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.257.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.17.4","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"devise","old_version":"5.0.3","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"jquery-rails","old_version":"4.5.1","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"aws-sdk-rails","old_version":"3.7.1","new_version":"5.2.0","repository_url":"https://github.com/aws/aws-sdk-rails"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.257.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-s3","old_version":"1.216.0","new_version":"1.232.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"rails-html-sanitizer","old_version":"1.7.0","new_version":"1.7.1","repository_url":"https://github.com/rails/rails-html-sanitizer"},{"name":"sprockets","old_version":"3.7.2","new_version":"4.4.1","repository_url":"https://github.com/rails/sprockets"},{"name":"rubyzip","old_version":"2.3.2","new_version":"3.7.0","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"ffi","old_version":"1.15.5","new_version":"1.17.4","repository_url":"https://github.com/ffi/ffi"},{"name":"nokogiri","old_version":"1.18.10","new_version":"1.19.4","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"loofah","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/flavorjones/loofah"},{"name":"rack","old_version":"2.2.23","new_version":"3.2.7","repository_url":"https://github.com/rack/rack"},{"name":"globalid","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/rails/globalid"},{"name":"net-imap","old_version":"0.5.15","new_version":"0.6.7","repository_url":"https://github.com/ruby/net-imap"},{"name":"faraday","old_version":"2.14.3","new_version":"2.14.4","repository_url":"https://github.com/lostisland/faraday"},{"name":"json","old_version":"2.19.3","new_version":"3.0.2","repository_url":"https://github.com/ruby/json"},{"name":"sentry-ruby","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"pg","old_version":"1.4.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"byebug","old_version":"11.1.3","new_version":"13.0.0","repository_url":"https://github.com/deivid-rodriguez/byebug"},{"name":"capybara","old_version":"3.38.0","new_version":"3.40.0","repository_url":"https://github.com/teamcapybara/capybara"},{"name":"selenium-webdriver","old_version":"4.8.1","new_version":"4.49.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rspec-rails","old_version":"6.0.4","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"web-console","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/rails/web-console"},{"name":"listen","old_version":"3.8.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.1.1","new_version":"4.7.0","repository_url":"https://github.com/rails/spring"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `1.6.1` | `2.9.6` |\n| [puma](https://github.com/puma/puma) | `6.6.1` | `8.0.2` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `1.4.0` | `2.0.23` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.11.5` | `2.15.1` |\n| [config](https://github.com/rubyconfig/config) | `4.1.0` | `5.6.1` |\n| [google-apis-analyticsdata_v1beta](https://github.com/googleapis/google-api-ruby-client) | `0.32.0` | `0.41.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.17.4` |\n| [rails](https://github.com/rails/rails) | `7.2.3.2` | `7.2.4` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.257.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.17.4` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.3` | `5.0.4` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.5.1` | `4.6.1` |\n| [aws-sdk-rails](https://github.com/aws/aws-sdk-rails) | `3.7.1` | `5.2.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.257.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.216.0` | `1.232.1` |\n| [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) | `1.7.0` | `1.7.1` |\n| [sprockets](https://github.com/rails/sprockets) | `3.7.2` | `4.4.1` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `2.3.2` | `3.7.0` |\n| [ffi](https://github.com/ffi/ffi) | `1.15.5` | `1.17.4` |\n| [nokogiri](https://github.com/sparklemotion/nokogiri) | `1.18.10` | `1.19.4` |\n| [loofah](https://github.com/flavorjones/loofah) | `2.25.1` | `2.25.2` |\n| [rack](https://github.com/rack/rack) | `2.2.23` | `3.2.7` |\n| [globalid](https://github.com/rails/globalid) | `1.3.0` | `1.4.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.15` | `0.6.7` |\n| [faraday](https://github.com/lostisland/faraday) | `2.14.3` | `2.14.4` |\n| [json](https://github.com/ruby/json) | `2.19.3` | `3.0.2` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [pg](https://github.com/ged/ruby-pg) | `1.4.6` | `1.6.3` |\n| [byebug](https://github.com/deivid-rodriguez/byebug) | `11.1.3` | `13.0.0` |\n| [capybara](https://github.com/teamcapybara/capybara) | `3.38.0` | `3.40.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.8.1` | `4.49.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.4` | `8.0.4` |\n| [web-console](https://github.com/rails/web-console) | `4.2.0` | `4.2.1` |\n| [listen](https://github.com/guard/listen) | `3.8.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.1.1` | `4.7.0` |\n\n\nUpdates `sqlite3` from 1.6.1 to 2.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003ed8b1f7d23efd7abac285775a9566562fc7debfef79d594e3a20354406fb7907c  gems/sqlite3-2.9.6-aarch64-linux-gnu.gem\r\n3579e1c98cdc7ff5c3722847bb63ed4e1efb7ff675cb5e1e48ef2d4da5fb3bc9  gems/sqlite3-2.9.6-aarch64-linux-musl.gem\r\n33541500e3615da02afe54a9cc38b17a6985d3cf9d8b76d6d0a83002f114e7ec  gems/sqlite3-2.9.6-arm-linux-gnu.gem\r\nc5490af48bb228fefa54314e9541375c3907e70f8109f3881b5ff97e1c93ae33  gems/sqlite3-2.9.6-arm-linux-musl.gem\r\n849b5d7f795e60fe25076d62c72dd722beb45b3850b516ad978d60ee848ec15b  gems/sqlite3-2.9.6-arm64-darwin.gem\r\n1f2b88f417fd0a8c1d5ef19c7e817d8b9c61bee6e33b6b36255fb6e40148e6f8  gems/sqlite3-2.9.6-x64-mingw-ucrt.gem\r\nfbaa9f46f9708f57dd8a459b37fc269f9613e0cacf1547df01aa439cc45c20c0  gems/sqlite3-2.9.6-x86-linux-gnu.gem\r\n6715026fbb5530e810b28ef43b9c4f84cd3c991f67b9d808a31fcc32b847abbd  gems/sqlite3-2.9.6-x86-linux-musl.gem\r\nb5842fea77781c14da03fa7bc0feb82db03a69e135affcb6f5399cbd2797a5f3  gems/sqlite3-2.9.6-x86_64-darwin.gem\r\n613188ce02f614126ddbc38c5e217ccffd6306d0dcd9adca9764547aa890a634  gems/sqlite3-2.9.6-x86_64-linux-gnu.gem\r\nd493b11818a3573387a1d56e1ee8fa00da23a683a7a1cc063e7a0feeed843abf  gems/sqlite3-2.9.6-x86_64-linux-musl.gem\r\n956fe606956420d04ac7157d3ace620c8caba2135b2e05c76e483493da24d08e  gems/sqlite3-2.9.6.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e2.9.5 / 2026-06-07\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_3.html\"\u003ev3.53.2\u003c/a\u003e (from v3.53.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/709\"\u003e#709\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free issue with custom functions, when the same function name is used with multiple arities. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/710\"\u003e#710\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use-after-free issue with aggregate functions, if a statement is used after a soft database close. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/711\"\u003e#711\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\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/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.5 / 2026-06-07\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_3.html\"\u003ev3.53.2\u003c/a\u003e (from v3.53.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/709\"\u003e#709\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free issue with custom functions, when the same function name is used with multiple arities. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/710\"\u003e#710\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use-after-free issue with aggregate functions, if a statement is used after a soft database close. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/711\"\u003e#711\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.4 / 2026-05-05\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_1.html\"\u003ev3.53.1\u003c/a\u003e (from v3.53.0). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/704\"\u003e#704\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.3 / 2026-04-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_0.html\"\u003ev3.53.0\u003c/a\u003e (from v3.51.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/a52dc0d61351570eeff1a1ffb15054b795dfeebc\"\u003e\u003ccode\u003ea52dc0d\u003c/code\u003e\u003c/a\u003e version bump to v2.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/cc5ac0cdf05af8148f4363410da0ba32508d9c97\"\u003e\u003ccode\u003ecc5ac0c\u003c/code\u003e\u003c/a\u003e Root the aggregate argument array so GC cannot free live values (GHSA-mwm8-39...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/abcb0f60c777d29cc1c8ed37327cd164f90420f1\"\u003e\u003ccode\u003eabcb0f6\u003c/code\u003e\u003c/a\u003e Reject database filenames and VFS names containing NUL (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/1d86b7a46c842a5157cc1562f16ad6c8756004b4\"\u003e\u003ccode\u003e1d86b7a\u003c/code\u003e\u003c/a\u003e Raise when open_v2 or open16 is called on an open database (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/723017134144333bb782d96aeec82450ed5b5c87\"\u003e\u003ccode\u003e7230171\u003c/code\u003e\u003c/a\u003e Stop a raise inside a UDF block from deadlocking other threads (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/2677f9a7a81fc48e8df3ba668606f4c60bd6ad42\"\u003e\u003ccode\u003e2677f9a\u003c/code\u003e\u003c/a\u003e Pass TEXT values containing embedded NULs to UDFs intact (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/3de8f6ee30741bde839a98ce88b9023eac09c555\"\u003e\u003ccode\u003e3de8f6e\u003c/code\u003e\u003c/a\u003e doc: update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/ac6bd2f79598290a6625d413fd309a7ae2f85143\"\u003e\u003ccode\u003eac6bd2f\u003c/code\u003e\u003c/a\u003e Release aggregate instances when sqlite finishes with them (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/32460e99f0d82a2a966b84f37a73cdaab96652c1\"\u003e\u003ccode\u003e32460e9\u003c/code\u003e\u003c/a\u003e Stop sqlite calling into moved Ruby objects (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/f600993d286539411aa81f3b43d1c3678a63fd09\"\u003e\u003ccode\u003ef600993\u003c/code\u003e\u003c/a\u003e build(deps-dev): update rubocop-minitest requirement (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v1.6.1...v2.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.6.1 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.1 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.6.1...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 1.4.0 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\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/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.19\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in README.md by \u003ca href=\"https://github.com/brunocalmels\"\u003e\u003ccode\u003e@​brunocalmels\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/746\"\u003ehotwired/turbo-rails#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove compact call on locals in broadcast_rendering_with_defaults by \u003ca href=\"https://github.com/mathias234\"\u003e\u003ccode\u003e@​mathias234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/720\"\u003ehotwired/turbo-rails#720\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/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v1.4.0...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.11.5 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eJbuilder.encode\u003c/code\u003e properly forwards arguments to \u003ccode\u003e.new\u003c/code\u003e by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\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/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support to Ruby \u0026lt; 3.0 and Rails \u0026lt; 7.0\u003c/li\u003e\n\u003cli\u003eTest against Rails 8 and fix Rails 7 logger dependency by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/582\"\u003erails/jbuilder#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd status: :see_other to update action by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/583\"\u003erails/jbuilder#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce close final statement in templates by \u003ca href=\"https://github.com/ienders\"\u003e\u003ccode\u003e@​ienders\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/578\"\u003erails/jbuilder#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_is_collection?\u003c/code\u003e method by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/590\"\u003erails/jbuilder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e#frozen_string_literal: true\u003c/code\u003e to all files by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/599\"\u003erails/jbuilder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_key\u003c/code\u003e to prevent string allocation when formatting \u003ccode\u003eSymbol\u003c/code\u003es by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/593\"\u003erails/jbuilder#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize key formatter by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/597\"\u003erails/jbuilder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize internal \u003ccode\u003eextract!\u003c/code\u003e calls to save on memory allocation by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/598\"\u003erails/jbuilder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix regression in API controllers with view_cache_dependencies helper by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/575\"\u003erails/jbuilder#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003emethod_missing\u003c/code\u003e via \u003ccode\u003ealias_method\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/600\"\u003erails/jbuilder#600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup project for Rails 7+ support by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/594\"\u003erails/jbuilder#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix warnings and prevent Jbuilder::VERSION constant from being obliterated by \u003ca href=\"https://github.com/pixeltrix\"\u003e\u003ccode\u003e@​pixeltrix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/574\"\u003erails/jbuilder#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize memory allocation when rendering partials by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/591\"\u003erails/jbuilder#591\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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.11.5...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `config` from 4.1.0 to 5.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/releases\"\u003econfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e by \u003ca href=\"https://github.com/pkuczynski\"\u003e\u003ccode\u003e@​pkuczynski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003erubyconfig/config#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.6.0...5.6.1\"\u003ehttps://github.com/rubyconfig/config/compare/5.6.0...5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: added extra sources in initializer by \u003ca href=\"https://github.com/Nuzair46\"\u003e\u003ccode\u003e@​Nuzair46\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003erubyconfig/config#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.2...5.6.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.2...5.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\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/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.0...5.5.2\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.0...5.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables by \u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efunding_url\u003c/code\u003e rather than \u003ccode\u003epost_install_message\u003c/code\u003e by \u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\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/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.4.0...5.5.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.4.0...5.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\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/rubyconfig/config/blob/master/CHANGELOG.md\"\u003econfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace IO.read with File.read \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003e#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eextra_sources\u003c/code\u003e in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library with Ruby 3.3.5 and 3.4+ (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.1\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix funding_url to funding_uri in gemspec (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse funding_url rather than post_install_message (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent name collision with private methods from ancestors (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/8b6ffe6dcc91f52f06d5a1502333108d1c6033ca\"\u003e\u003ccode\u003e8b6ffe6\u003c/code\u003e\u003c/a\u003e release: 5.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/d639f9db7355195f1ea7d21ddae32f0c166759ae\"\u003e\u003ccode\u003ed639f9d\u003c/code\u003e\u003c/a\u003e ci: limit workflow permissions (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/e0bf18fab4feed4f5413c6528c198009b36fa536\"\u003e\u003ccode\u003ee0bf18f\u003c/code\u003e\u003c/a\u003e fix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/263e66a4a70c053f1181f8f65d666d22a6f60b64\"\u003e\u003ccode\u003e263e66a\u003c/code\u003e\u003c/a\u003e test: bump puma in rails 5.2 test app to fix security warning (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/c833d1964b0e10ae71ccc780bc46766baeb7e22e\"\u003e\u003ccode\u003ec833d19\u003c/code\u003e\u003c/a\u003e release: 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/4dc0f3e6e945a6159f35630098f8de0311a6908a\"\u003e\u003ccode\u003e4dc0f3e\u003c/code\u003e\u003c/a\u003e ci: fix jruby rails \u0026gt;= 7.2 (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1f17cd8d6215cf38e702f58c0f701e813c7ce0ef\"\u003e\u003ccode\u003e1f17cd8\u003c/code\u003e\u003c/a\u003e feat: added extra sources in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/97b3e8cbf47f022a27ff4962c059b0fc139a1369\"\u003e\u003ccode\u003e97b3e8c\u003c/code\u003e\u003c/a\u003e ci: add rails 7.2 and 8.0 to the test matrix and bump some older dependencies...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1b5581d23b47c81a233d61c28f0c6716d74d8f63\"\u003e\u003ccode\u003e1b5581d\u003c/code\u003e\u003c/a\u003e ci: add Ruby 3.4 to the test matrix (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/a4c978f4a64975fd609780541b2b243883217e4f\"\u003e\u003ccode\u003ea4c978f\u003c/code\u003e\u003c/a\u003e ci: remove unnecessary ubuntu packages installation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyconfig/config/compare/4.1.0...5.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-analyticsdata_v1beta` from 0.32.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-analyticsdata_v1beta/CHANGELOG.md\"\u003egoogle-apis-analyticsdata_v1beta's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.41.0 (2026-06-14)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.19.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.40.0 (2025-05-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.17.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.39.0 (2024-11-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20241117\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.38.0 (2024-09-01)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240825\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.37.0 (2024-08-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240731\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.36.0 (2024-05-19)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240512\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.35.0 (2024-02-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.14.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.34.0 (2024-02-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240128\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.13.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.33.0 (2024-01-22)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.13.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/compare/0.32.0...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleauth` from 1.3.0 to 1.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/releases\"\u003egoogleauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleauth: v1.17.4\u003c/h2\u003e\n\u003ch3\u003e1.17.4 (2026-08-13)\u003c/h3\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CLI/installed app example to use loopback IP redirect (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.3\u003c/h2\u003e\n\u003ch3\u003e1.17.3 (2026-07-27)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option validation and error handling to ServiceAccountCredentials.make_creds (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/588\"\u003e#588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/3da9927091e3ffc4f2d062a404d837de962a6f97\"\u003e3da9927\u003c/a\u003e), refs \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/482\"\u003e#482\u003c/a\u003e \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/544\"\u003e#544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.2\u003c/h2\u003e\n\u003ch3\u003e1.17.2 (2026-07-23)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ereturn auth header from source_credentials in ImpersonatedServiceAccountCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.1\u003c/h2\u003e\n\u003ch3\u003e1.17.1 (2026-06-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erepair impersonated email helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/578\"\u003e#578\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/6317f9b3f44a26ffff569ed29a09b929cc2ab45e\"\u003e6317f9b\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/577\"\u003e#577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.0\u003c/h2\u003e\n\u003ch3\u003e1.17.0 (2026-06-04)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eport googleauth from multi_json to standard lib json (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5fe4ed96a042f36874a609349be5911db1247c8b\"\u003e5fe4ed9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.2\u003c/h2\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.1\u003c/h2\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/blob/main/CHANGELOG.md\"\u003egoogleauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.17.4 (2026-08-13)\u003c/h3\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CLI/installed app example to use loopback IP redirect (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.3 (2026-07-27)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option validation and error handling to ServiceAccountCredentials.make_creds (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/588\"\u003e#588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/3da9927091e3ffc4f2d062a404d837de962a6f97\"\u003e3da9927\u003c/a\u003e), refs \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/482\"\u003e#482\u003c/a\u003e \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/544\"\u003e#544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.2 (2026-07-23)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ereturn auth header from source_credentials in ImpersonatedServiceAccountCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.1 (2026-06-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erepair impersonated email helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/578\"\u003e#578\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/6317f9b3f44a26ffff569ed29a09b929cc2ab45e\"\u003e6317f9b\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/577\"\u003e#577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.0 (2026-06-04)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eport googleauth from multi_json to standard lib json (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5fe4ed96a042f36874a609349be5911db1247c8b\"\u003e5fe4ed9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.0 (2025-11-21)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003c!-- 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 h...\n\n_Description has been truncated_","html_url":"https://github.com/dpla/dashboard-analytics/pull/343","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpla%2Fdashboard-analytics/issues/343","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/343/packages"}},{"old_version":"2.12.0","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-08-06T23:10:09.000Z","version_change":"2.12.0 → 2.15.1","issue":{"uuid":"5085324440","node_id":"PR_kwDOAW-RD877ytkL","number":807,"state":"open","title":"Bump the all-dependencies group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["ruby","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-06T23:10:09.000Z","updated_at":"2026-09-10T23:10:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":35,"packages":[{"name":"shakapacker","old_version":"10.2.0","new_version":"10.3.2","repository_url":"https://github.com/shakacode/shakapacker"},{"name":"rails","old_version":"8.1.3","new_version":"8.1.3.1","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.5.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"puma","old_version":"6.4.2","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"thruster","old_version":"0.1.16","new_version":"0.1.26","repository_url":"https://github.com/basecamp/thruster"},{"name":"uglifier","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/lautis/uglifier"},{"name":"jbuilder","old_version":"2.12.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"redis","old_version":"5.3.0","new_version":"6.0.0","repository_url":"https://github.com/redis/redis-rb"},{"name":"sdoc","old_version":"2.6.1","new_version":"2.6.5","repository_url":"https://github.com/zzak/sdoc"},{"name":"rails-html-sanitizer","old_version":"1.7.0","new_version":"1.7.1","repository_url":"https://github.com/rails/rails-html-sanitizer"},{"name":"autoprefixer-rails","old_version":"10.4.16.0","new_version":"10.4.21.0","repository_url":"https://github.com/ai/autoprefixer-rails"},{"name":"redcarpet","old_version":"3.6.0","new_version":"3.6.1","repository_url":"https://github.com/vmg/redcarpet"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"spring","old_version":"4.2.1","new_version":"4.7.0","repository_url":"https://github.com/rails/spring"},{"name":"factory_bot_rails","old_version":"6.4.3","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"foreman","old_version":"0.88.1","new_version":"0.90.0","repository_url":"https://github.com/ddollar/foreman"},{"name":"rubocop","old_version":"1.69.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-performance","old_version":"1.23.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.29.1","new_version":"2.37.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.4.0","new_version":"3.10.2","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"debug","old_version":"1.9.2","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"pry","old_version":"0.14.2","new_version":"0.16.0","repository_url":"https://github.com/pry/pry"},{"name":"pry-doc","old_version":"1.5.0","new_version":"1.7.0","repository_url":"https://github.com/pry/pry-doc"},{"name":"pry-stack_explorer","old_version":"0.6.1","new_version":"0.6.3","repository_url":"https://github.com/pry/pry-stack_explorer"},{"name":"capybara-screenshot","old_version":"1.0.26","new_version":"1.0.27","repository_url":"https://github.com/mattheworiordan/capybara-screenshot"},{"name":"coveralls_reborn","old_version":"0.25.0","new_version":"1.0.0","repository_url":"https://github.com/tagliala/coveralls-ruby-reborn"},{"name":"database_cleaner","old_version":"2.0.2","new_version":"2.1.0","repository_url":"https://github.com/DatabaseCleaner/database_cleaner"},{"name":"launchy","old_version":"3.0.1","new_version":"3.1.1","repository_url":"https://github.com/copiousfreetime/launchy"},{"name":"rails_best_practices","old_version":"1.23.2","new_version":"1.23.4","repository_url":"https://github.com/flyerhzm/rails_best_practices"},{"name":"rspec-rails","old_version":"6.0.4","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"selenium-webdriver","old_version":"4.22.0","new_version":"4.48.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"stimulus-rails","old_version":"1.3.3","new_version":"1.3.4","repository_url":"https://github.com/hotwired/stimulus-rails"},{"name":"turbo-rails","old_version":"2.0.11","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [shakapacker](https://github.com/shakacode/shakapacker) | `10.2.0` | `10.3.2` |\n| [rails](https://github.com/rails/rails) | `8.1.3` | `8.1.3.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.5.6` | `1.6.3` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.26.0` |\n| [puma](https://github.com/puma/puma) | `6.4.2` | `8.0.2` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.16` | `0.1.26` |\n| [uglifier](https://github.com/lautis/uglifier) | `4.2.0` | `4.2.1` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.12.0` | `2.15.1` |\n| [redis](https://github.com/redis/redis-rb) | `5.3.0` | `6.0.0` |\n| [sdoc](https://github.com/zzak/sdoc) | `2.6.1` | `2.6.5` |\n| [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) | `1.7.0` | `1.7.1` |\n| [autoprefixer-rails](https://github.com/ai/autoprefixer-rails) | `10.4.16.0` | `10.4.21.0` |\n| [redcarpet](https://github.com/vmg/redcarpet) | `3.6.0` | `3.6.1` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [spring](https://github.com/rails/spring) | `4.2.1` | `4.7.0` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.4.3` | `6.5.1` |\n| [foreman](https://github.com/ddollar/foreman) | `0.88.1` | `0.90.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.69.0` | `1.90.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.23.1` | `1.27.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.29.1` | `2.37.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.4.0` | `3.10.2` |\n| [debug](https://github.com/ruby/debug) | `1.9.2` | `1.11.1` |\n| [pry](https://github.com/pry/pry) | `0.14.2` | `0.16.0` |\n| [pry-doc](https://github.com/pry/pry-doc) | `1.5.0` | `1.7.0` |\n| [pry-stack_explorer](https://github.com/pry/pry-stack_explorer) | `0.6.1` | `0.6.3` |\n| [capybara-screenshot](https://github.com/mattheworiordan/capybara-screenshot) | `1.0.26` | `1.0.27` |\n| [coveralls_reborn](https://github.com/tagliala/coveralls-ruby-reborn) | `0.25.0` | `1.0.0` |\n| [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) | `2.0.2` | `2.1.0` |\n| [launchy](https://github.com/copiousfreetime/launchy) | `3.0.1` | `3.1.1` |\n| [rails_best_practices](https://github.com/flyerhzm/rails_best_practices) | `1.23.2` | `1.23.4` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.4` | `8.0.4` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.22.0` | `4.48.0` |\n| [stimulus-rails](https://github.com/hotwired/stimulus-rails) | `1.3.3` | `1.3.4` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.11` | `2.0.23` |\n\n\nUpdates `shakapacker` from 10.2.0 to 10.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shakacode/shakapacker/releases\"\u003eshakapacker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.3.2\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBumped the development and CI pin for Rspack from \u003ccode\u003e2.0.1\u003c/code\u003e to \u003ccode\u003e2.2.0\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1258\"\u003e#1258\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1258\"\u003eshakacode/shakapacker#1258\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The \u003ccode\u003e@rspack/core\u003c/code\u003e, \u003ccode\u003e@rspack/cli\u003c/code\u003e, \u003ccode\u003e@rspack/dev-server\u003c/code\u003e, and \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e peer ranges are unchanged at \u003ccode\u003e^2.0.0\u003c/code\u003e, so applications may stay on any Rspack \u003ccode\u003e2.x\u003c/code\u003e release; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (\u003ccode\u003ebin/shakapacker-config --annotate\u003c/code\u003e) also now list the complete \u003ccode\u003eoptimization.moduleIds\u003c/code\u003e and \u003ccode\u003eoptimization.chunkIds\u003c/code\u003e value sets for both bundlers, including \u003ccode\u003e'compat-hashed'\u003c/code\u003e, which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e not telling Rspack apps that a \u003ccode\u003e.swcrc\u003c/code\u003e is ignored outright.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1276\"\u003eshakacode/shakapacker#1276\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Doctor previously told Rspack apps only that moving \u003ccode\u003e.swcrc\u003c/code\u003e settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not help, while deliberately making no claim about the \u003ccode\u003e.swcrc\u003c/code\u003e itself, because the behavior had never been verified. It has now been verified against \u003ccode\u003e@rspack/core\u003c/code\u003e 2.0.1 and 2.2.0: Rspack's \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e never reads \u003ccode\u003e.swcrc\u003c/code\u003e. A \u003ccode\u003e.swcrc\u003c/code\u003e setting \u003ccode\u003ejsc.target\u003c/code\u003e and injecting an optimizer global produced byte-identical output to no \u003ccode\u003e.swcrc\u003c/code\u003e at all, while the same options passed inline as loader options did change the output. A \u003ccode\u003e.swcrc\u003c/code\u003e enabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and with \u003ccode\u003eswcrc\u003c/code\u003e/\u003ccode\u003econfigFile\u003c/code\u003e set, so this is not merely inline options taking precedence. Doctor now states that a \u003ccode\u003e.swcrc\u003c/code\u003e is not read on Rspack and that every setting in it is silently inert - the mirror image of the \u003ccode\u003econfig/swc.config.js\u003c/code\u003e case in \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e - and continues to point at overriding the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule. Webpack messaging is unchanged. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1263\"\u003e#1263\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e staying silent about SWC configuration on Rspack apps that do not set \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1269\"\u003e#1269\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1269\"\u003eshakacode/shakapacker#1269\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Shakapacker's Rspack rules always transpile with \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e and never consult \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, so \u003ccode\u003econfig/swc.config.js\u003c/code\u003e goes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, so those apps got no warning at all. Those warnings now reach any Rspack app: that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is not read, and, for a \u003ccode\u003e.swcrc\u003c/code\u003e, that moving its settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not affect the build. The webpack-only SWC content checks and the \u0026quot;merged with Shakapacker's defaults\u0026quot; messaging stay gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, and apps with \u003ccode\u003ejavascript_transpiler: none\u003c/code\u003e remain opted out. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1265\"\u003e#1265\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e and \u003ccode\u003erake shakapacker:migrate_to_swc\u003c/code\u003e telling Rspack apps that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is merged into their build.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1260\"\u003e#1260\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1260\"\u003eshakacode/shakapacker#1260\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Rspack builds never read \u003ccode\u003econfig/swc.config.js\u003c/code\u003e, because Shakapacker's Rspack rules set their \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e options inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a \u003ccode\u003e.swcrc\u003c/code\u003e to migrate those settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e. The migrator's post-migration guidance and the generated file header instead show how to override the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule: apply \u003ccode\u003ewebpack-merge\u003c/code\u003e's \u003ccode\u003emergeWithRules\u003c/code\u003e to the \u003cem\u003eoutput\u003c/em\u003e of \u003ccode\u003egenerateRspackConfig()\u003c/code\u003e, since that function merges with plain \u003ccode\u003emerge\u003c/code\u003e, which concatenates \u003ccode\u003emodule.rules\u003c/code\u003e, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed post-publish GitHub release failures hiding successful package publication details.\u003c/strong\u003e The release task now prints its normal publication summary and the exact \u003ccode\u003esync_github_release\u003c/code\u003e recovery command before exiting nonzero. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1250\"\u003e#1250\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1250\"\u003eshakacode/shakapacker#1250\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs to fail closed when \u003ccode\u003ePATH\u003c/code\u003e is unset.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1240\"\u003eshakacode/shakapacker#1240\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e now report the missing-Node error without executing an app-root \u003ccode\u003enode\u003c/code\u003e binary when \u003ccode\u003ePATH\u003c/code\u003e is unset, while explicit \u003ccode\u003ePATH\u003c/code\u003e values retain their existing Node-resolution behavior. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1234\"\u003e#1234\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the deprecation warning for the legacy \u003ccode\u003ebundler\u003c/code\u003e config key claiming the value was understood while it was ignored.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1270\"\u003e#1270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1270\"\u003eshakacode/shakapacker#1270\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. An app whose \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e set only \u003ccode\u003ebundler:\u003c/code\u003e was told the key was deprecated and then built with a different bundler, because \u003ccode\u003eassets_bundler\u003c/code\u003e always resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to set \u003ccode\u003eassets_bundler\u003c/code\u003e instead. One resolution change accompanies it: a config that leaves \u003ccode\u003eassets_bundler:\u003c/code\u003e blank while setting \u003ccode\u003ebundler:\u003c/code\u003e previously resolved the legacy value in Ruby and now resolves \u003ccode\u003ewebpack\u003c/code\u003e, matching what \u003ccode\u003epackage/config.ts\u003c/code\u003e already built for it. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1262\"\u003e#1262\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.3.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed 502 responses for proxied dev server assets under \u003ccode\u003erack-proxy\u003c/code\u003e v1.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1222\"\u003eshakacode/shakapacker#1222\u003c/a\u003e) by \u003ca href=\"https://github.com/jcbpl\"\u003ejcbpl\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed dev-server liveness checks treating refused macOS 27 connections as running.\u003c/strong\u003e The Ruby probe now verifies the connected socket's \u003ccode\u003eSO_ERROR\u003c/code\u003e result before proxying asset requests, avoiding false-positive dev-server detection and resulting 502 responses. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1225\"\u003e#1225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1225\"\u003eshakacode/shakapacker#1225\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1224\"\u003e#1224\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed webpack Babel, SWC, and esbuild rules skipping explicitly included \u003ccode\u003e.cjs\u003c/code\u003e files.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1219\"\u003e#1219\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1219\"\u003eshakacode/shakapacker#1219\u003c/a\u003e) by \u003ca href=\"https://github.com/oiahoon\"\u003eoiahoon\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1218\"\u003e#1218\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdded a \u003ccode\u003eshakapacker:doctor\u003c/code\u003e warning for Rspack React Refresh v2 configs that still use the v1 default-export constructor pattern.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1207\"\u003e#1207\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1207\"\u003eshakacode/shakapacker#1207\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Existing configs with \u003ccode\u003econst ReactRefreshPlugin = require(\u0026quot;@rspack/plugin-react-refresh\u0026quot;)\u003c/code\u003e followed by \u003ccode\u003enew ReactRefreshPlugin()\u003c/code\u003e can fail after upgrading to \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e v2 with \u003ccode\u003eReactRefreshPlugin is not a constructor\u003c/code\u003e; Doctor now points to the affected JS/TS config file and suggests the named-export/default/module compatibility form. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1204\"\u003e#1204\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the missing-\u003ccode\u003e@babel/core\u003c/code\u003e failure to report an actionable install message.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1212\"\u003e#1212\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1212\"\u003eshakacode/shakapacker#1212\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Babel-transpiled builds whose app lacks \u003ccode\u003e@babel/core\u003c/code\u003e previously surfaced a raw module-resolution error from the Babel 8 compatibility check; the rule now explains which package to install and how to switch \u003ccode\u003ejavascript_transpiler\u003c/code\u003e instead. Refs \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1163\"\u003e#1163\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDocumented the required \u003ccode\u003ecss-loader@^7.1.4\u003c/code\u003e in the v10 Rspack upgrade instructions.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1211\"\u003e#1211\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1211\"\u003eshakacode/shakapacker#1211\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The v10 upgrade guide's copy-paste Rspack v2 commands omitted \u003ccode\u003ecss-loader\u003c/code\u003e, so apps following them could upgrade into an unsatisfied peer dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAllowed \u003ccode\u003ewebpack-dev-server\u003c/code\u003e v6\u003c/strong\u003e. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1102\"\u003e#1102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1102\"\u003eshakacode/shakapacker#1102\u003c/a\u003e) by \u003ca href=\"https://github.com/G-Rath\"\u003eG-Rath\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed implicit SWC defaults for existing webpack/Babel apps without \u003ccode\u003eswc-loader\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Webpack apps that omit both \u003ccode\u003ejavascript_transpiler\u003c/code\u003e and the deprecated \u003ccode\u003ewebpack_loader\u003c/code\u003e now fall back to Babel with a warning when Shakapacker's bundled SWC default is active, \u003ccode\u003eswc-loader\u003c/code\u003e is missing, and Babel is present. Explicit transpiler settings, webpack apps with \u003ccode\u003eswc-loader\u003c/code\u003e, and Rspack's built-in SWC path keep their existing behavior. Closes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1203\"\u003e#1203\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed JavaScript config loading for missing Rails environments to use the production fallback.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. When \u003ccode\u003eRAILS_ENV\u003c/code\u003e has no matching section in \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e, the Node package config now merges the \u003ccode\u003eproduction\u003c/code\u003e section instead of only bundled defaults, matching Ruby configuration loading and honoring explicit production \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, \u003ccode\u003esource_path\u003c/code\u003e, \u003ccode\u003edev_server\u003c/code\u003e, and related settings for custom environments such as staging.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs delegating Node resolution to Ruby \u003ccode\u003eexec\u003c/code\u003e in unset and empty \u003ccode\u003ePATH\u003c/code\u003e environments.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1200\"\u003eshakacode/shakapacker#1200\u003c/a\u003e) and [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1201\"\u003eshakacode/shakapacker#1201\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Restores shell-compatible Node lookup for \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e after the \u003ccode\u003ev10.2.0\u003c/code\u003e Ruby-binstub regression, while keeping friendly missing-Node errors for \u003ccode\u003eENOENT\u003c/code\u003e and \u003ccode\u003eEACCES\u003c/code\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/shakacode/shakapacker/blob/main/CHANGELOG.md\"\u003eshakapacker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v10.3.2] - August 28, 2026\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBumped the development and CI pin for Rspack from \u003ccode\u003e2.0.1\u003c/code\u003e to \u003ccode\u003e2.2.0\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1258\"\u003e#1258\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1258\"\u003eshakacode/shakapacker#1258\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The \u003ccode\u003e@rspack/core\u003c/code\u003e, \u003ccode\u003e@rspack/cli\u003c/code\u003e, \u003ccode\u003e@rspack/dev-server\u003c/code\u003e, and \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e peer ranges are unchanged at \u003ccode\u003e^2.0.0\u003c/code\u003e, so applications may stay on any Rspack \u003ccode\u003e2.x\u003c/code\u003e release; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (\u003ccode\u003ebin/shakapacker-config --annotate\u003c/code\u003e) also now list the complete \u003ccode\u003eoptimization.moduleIds\u003c/code\u003e and \u003ccode\u003eoptimization.chunkIds\u003c/code\u003e value sets for both bundlers, including \u003ccode\u003e'compat-hashed'\u003c/code\u003e, which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e not telling Rspack apps that a \u003ccode\u003e.swcrc\u003c/code\u003e is ignored outright.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1276\"\u003eshakacode/shakapacker#1276\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Doctor previously told Rspack apps only that moving \u003ccode\u003e.swcrc\u003c/code\u003e settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not help, while deliberately making no claim about the \u003ccode\u003e.swcrc\u003c/code\u003e itself, because the behavior had never been verified. It has now been verified against \u003ccode\u003e@rspack/core\u003c/code\u003e 2.0.1 and 2.2.0: Rspack's \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e never reads \u003ccode\u003e.swcrc\u003c/code\u003e. A \u003ccode\u003e.swcrc\u003c/code\u003e setting \u003ccode\u003ejsc.target\u003c/code\u003e and injecting an optimizer global produced byte-identical output to no \u003ccode\u003e.swcrc\u003c/code\u003e at all, while the same options passed inline as loader options did change the output. A \u003ccode\u003e.swcrc\u003c/code\u003e enabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and with \u003ccode\u003eswcrc\u003c/code\u003e/\u003ccode\u003econfigFile\u003c/code\u003e set, so this is not merely inline options taking precedence. Doctor now states that a \u003ccode\u003e.swcrc\u003c/code\u003e is not read on Rspack and that every setting in it is silently inert - the mirror image of the \u003ccode\u003econfig/swc.config.js\u003c/code\u003e case in \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e - and continues to point at overriding the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule. Webpack messaging is unchanged. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1263\"\u003e#1263\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e staying silent about SWC configuration on Rspack apps that do not set \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1269\"\u003e#1269\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1269\"\u003eshakacode/shakapacker#1269\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Shakapacker's Rspack rules always transpile with \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e and never consult \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, so \u003ccode\u003econfig/swc.config.js\u003c/code\u003e goes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, so those apps got no warning at all. Those warnings now reach any Rspack app: that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is not read, and, for a \u003ccode\u003e.swcrc\u003c/code\u003e, that moving its settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not affect the build. The webpack-only SWC content checks and the \u0026quot;merged with Shakapacker's defaults\u0026quot; messaging stay gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, and apps with \u003ccode\u003ejavascript_transpiler: none\u003c/code\u003e remain opted out. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1265\"\u003e#1265\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e and \u003ccode\u003erake shakapacker:migrate_to_swc\u003c/code\u003e telling Rspack apps that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is merged into their build.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1260\"\u003e#1260\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1260\"\u003eshakacode/shakapacker#1260\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Rspack builds never read \u003ccode\u003econfig/swc.config.js\u003c/code\u003e, because Shakapacker's Rspack rules set their \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e options inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a \u003ccode\u003e.swcrc\u003c/code\u003e to migrate those settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e. The migrator's post-migration guidance and the generated file header instead show how to override the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule: apply \u003ccode\u003ewebpack-merge\u003c/code\u003e's \u003ccode\u003emergeWithRules\u003c/code\u003e to the \u003cem\u003eoutput\u003c/em\u003e of \u003ccode\u003egenerateRspackConfig()\u003c/code\u003e, since that function merges with plain \u003ccode\u003emerge\u003c/code\u003e, which concatenates \u003ccode\u003emodule.rules\u003c/code\u003e, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed post-publish GitHub release failures hiding successful package publication details.\u003c/strong\u003e The release task now prints its normal publication summary and the exact \u003ccode\u003esync_github_release\u003c/code\u003e recovery command before exiting nonzero. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1250\"\u003e#1250\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1250\"\u003eshakacode/shakapacker#1250\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs to fail closed when \u003ccode\u003ePATH\u003c/code\u003e is unset.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1240\"\u003eshakacode/shakapacker#1240\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e now report the missing-Node error without executing an app-root \u003ccode\u003enode\u003c/code\u003e binary when \u003ccode\u003ePATH\u003c/code\u003e is unset, while explicit \u003ccode\u003ePATH\u003c/code\u003e values retain their existing Node-resolution behavior. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1234\"\u003e#1234\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the deprecation warning for the legacy \u003ccode\u003ebundler\u003c/code\u003e config key claiming the value was understood while it was ignored.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1270\"\u003e#1270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1270\"\u003eshakacode/shakapacker#1270\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. An app whose \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e set only \u003ccode\u003ebundler:\u003c/code\u003e was told the key was deprecated and then built with a different bundler, because \u003ccode\u003eassets_bundler\u003c/code\u003e always resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to set \u003ccode\u003eassets_bundler\u003c/code\u003e instead. One resolution change accompanies it: a config that leaves \u003ccode\u003eassets_bundler:\u003c/code\u003e blank while setting \u003ccode\u003ebundler:\u003c/code\u003e previously resolved the legacy value in Ruby and now resolves \u003ccode\u003ewebpack\u003c/code\u003e, matching what \u003ccode\u003epackage/config.ts\u003c/code\u003e already built for it. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1262\"\u003e#1262\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v10.3.1] - August 3, 2026\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed 502 responses for proxied dev server assets under \u003ccode\u003erack-proxy\u003c/code\u003e v1.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1222\"\u003eshakacode/shakapacker#1222\u003c/a\u003e) by \u003ca href=\"https://github.com/jcbpl\"\u003ejcbpl\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed dev-server liveness checks treating refused macOS 27 connections as running.\u003c/strong\u003e The Ruby probe now verifies the connected socket's \u003ccode\u003eSO_ERROR\u003c/code\u003e result before proxying asset requests, avoiding false-positive dev-server detection and resulting 502 responses. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1225\"\u003e#1225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1225\"\u003eshakacode/shakapacker#1225\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1224\"\u003e#1224\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed webpack Babel, SWC, and esbuild rules skipping explicitly included \u003ccode\u003e.cjs\u003c/code\u003e files.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1219\"\u003e#1219\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1219\"\u003eshakacode/shakapacker#1219\u003c/a\u003e) by \u003ca href=\"https://github.com/oiahoon\"\u003eoiahoon\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1218\"\u003e#1218\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdded a \u003ccode\u003eshakapacker:doctor\u003c/code\u003e warning for Rspack React Refresh v2 configs that still use the v1 default-export constructor pattern.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1207\"\u003e#1207\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1207\"\u003eshakacode/shakapacker#1207\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Existing configs with \u003ccode\u003econst ReactRefreshPlugin = require(\u0026quot;@rspack/plugin-react-refresh\u0026quot;)\u003c/code\u003e followed by \u003ccode\u003enew ReactRefreshPlugin()\u003c/code\u003e can fail after upgrading to \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e v2 with \u003ccode\u003eReactRefreshPlugin is not a constructor\u003c/code\u003e; Doctor now points to the affected JS/TS config file and suggests the named-export/default/module compatibility form. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1204\"\u003e#1204\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the missing-\u003ccode\u003e@babel/core\u003c/code\u003e failure to report an actionable install message.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1212\"\u003e#1212\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1212\"\u003eshakacode/shakapacker#1212\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Babel-transpiled builds whose app lacks \u003ccode\u003e@babel/core\u003c/code\u003e previously surfaced a raw module-resolution error from the Babel 8 compatibility check; the rule now explains which package to install and how to switch \u003ccode\u003ejavascript_transpiler\u003c/code\u003e instead. Refs \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1163\"\u003e#1163\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDocumented the required \u003ccode\u003ecss-loader@^7.1.4\u003c/code\u003e in the v10 Rspack upgrade instructions.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1211\"\u003e#1211\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1211\"\u003eshakacode/shakapacker#1211\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The v10 upgrade guide's copy-paste Rspack v2 commands omitted \u003ccode\u003ecss-loader\u003c/code\u003e, so apps following them could upgrade into an unsatisfied peer dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v10.3.0] - July 5, 2026\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAllowed \u003ccode\u003ewebpack-dev-server\u003c/code\u003e v6\u003c/strong\u003e. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1102\"\u003e#1102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1102\"\u003eshakacode/shakapacker#1102\u003c/a\u003e) by \u003ca href=\"https://github.com/G-Rath\"\u003eG-Rath\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed implicit SWC defaults for existing webpack/Babel apps without \u003ccode\u003eswc-loader\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Webpack apps that omit both \u003ccode\u003ejavascript_transpiler\u003c/code\u003e and the deprecated \u003ccode\u003ewebpack_loader\u003c/code\u003e now fall back to Babel with a warning when Shakapacker's bundled SWC default is active, \u003ccode\u003eswc-loader\u003c/code\u003e is missing, and Babel is present. Explicit transpiler settings, webpack apps with \u003ccode\u003eswc-loader\u003c/code\u003e, and Rspack's built-in SWC path keep their existing behavior. Closes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1203\"\u003e#1203\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed JavaScript config loading for missing Rails environments to use the production fallback.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. When \u003ccode\u003eRAILS_ENV\u003c/code\u003e has no matching section in \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e, the Node package config now merges the \u003ccode\u003eproduction\u003c/code\u003e section instead of only bundled defaults, matching Ruby configuration loading and honoring explicit production \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, \u003ccode\u003esource_path\u003c/code\u003e, \u003ccode\u003edev_server\u003c/code\u003e, and related settings for custom environments such as staging.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstub Node resolution after the \u003ccode\u003ev10.2.0\u003c/code\u003e Ruby-binstub regression.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1200\"\u003eshakacode/shakapacker#1200\u003c/a\u003e) and [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1201\"\u003eshakacode/shakapacker#1201\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Restores shell-compatible Node lookup for \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e when \u003ccode\u003ePATH\u003c/code\u003e is empty, while keeping friendly missing-Node errors for \u003ccode\u003eENOENT\u003c/code\u003e and \u003ccode\u003eEACCES\u003c/code\u003e. For an unset \u003ccode\u003ePATH\u003c/code\u003e, PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e deliberately delegates Node resolution to Ruby \u003ccode\u003eexec\u003c/code\u003e's default-path behavior; PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e later changed that case to fail closed.\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/shakacode/shakapacker/commit/f152fe6d65407f4c14757adb5e750df2af9bd591\"\u003e\u003ccode\u003ef152fe6\u003c/code\u003e\u003c/a\u003e Release 10.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/594a691997e632bdd9b1f564fbe4d12b7c59ea08\"\u003e\u003ccode\u003e594a691\u003c/code\u003e\u003c/a\u003e Update changelog for 10.3.2 (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/843409ab02d878f5bed5f4014cdca68f312e60ec\"\u003e\u003ccode\u003e843409a\u003c/code\u003e\u003c/a\u003e Tell Rspack apps that .swcrc is ignored outright, not just unmigratable (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/ee6bba96eb1fcc9848a9e3b135d3225a25ee89f8\"\u003e\u003ccode\u003eee6bba9\u003c/code\u003e\u003c/a\u003e Warn Rspack apps that SWC config files are unread for any javascript_transpil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/ac81bcf1cdc4c988c718a24ff919293205a22b09\"\u003e\u003ccode\u003eac81bcf\u003c/code\u003e\u003c/a\u003e Fix the misleading deprecation warning for the ignored legacy bundler key (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/7eddfe1864bc0e89b59ede208e677037e0ea4982\"\u003e\u003ccode\u003e7eddfe1\u003c/code\u003e\u003c/a\u003e Document how to override builtin:swc-loader options on Rspack (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1267\"\u003e#1267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/24f3c2e26d9eb396e503fa75a3584a476ae2a046\"\u003e\u003ccode\u003e24f3c2e\u003c/code\u003e\u003c/a\u003e Trigger Node based checks on markdown-only pull requests (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/8d6ed807be5584375e9e0f59b885c47719c842ee\"\u003e\u003ccode\u003e8d6ed80\u003c/code\u003e\u003c/a\u003e Make AGENTS.md canonical for shared agent guidance (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/980c1946e3fdfdc8dda9699666ccf6c08d345f12\"\u003e\u003ccode\u003e980c194\u003c/code\u003e\u003c/a\u003e Document rspack 2.2 user-facing changes: SWC Wasm plugin break, rspackPublicP...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/d51c1a8b8a364f5a675207c1a3ffc984a20aa832\"\u003e\u003ccode\u003ed51c1a8\u003c/code\u003e\u003c/a\u003e Bump rspack dev pin from 2.0.1 to 2.2.0 and correct moduleIds/chunkIds config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shakacode/shakapacker/compare/v10.2.0...v10.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.1.3 to 8.1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3.1\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction View\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Mailer\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Cable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Storage\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDisable libvips's unfuzzed image loaders and savers.\u003c/p\u003e\n\u003cp\u003elibvips flags some of its loaders and savers as \u0026quot;unfuzzed\u0026quot; or \u0026quot;untrusted\u0026quot;, meaning they are only\nsafe for trusted content. Active Storage will call \u003ccode\u003eVips.block_untrusted(true)\u003c/code\u003e to disable them\nwhile booting. An application that needs a specific loader or saver may re-enable it in an\ninitializer.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3989ebf3473d71e4ceca28154b0b57b5bf22db24\"\u003e\u003ccode\u003e3989ebf\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/349e7a5d5b4b715af1e416db824f3c078a7d59e5\"\u003e\u003ccode\u003e349e7a5\u003c/code\u003e\u003c/a\u003e Disable libvips's unfuzzed image loaders and savers\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3...v8.1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.5.6 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.1 [2025-08-03] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for platforms \u003ccode\u003eaarch64-linux-musl\u003c/code\u003e and \u003ccode\u003ex86_64-linux-musl\u003c/code\u003e without the need to install package \u003ccode\u003egcompat\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/657\"\u003e#657\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSerialize CompositeCoder#dimensions only when set. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/652\"\u003e#652\u003c/a\u003e\nThis fixes the compatibility to pg-1.5.9, when deserializing Marshal data from pg-1.6, as long as the new attribute isn't used.\u003c/li\u003e\n\u003cli\u003eRemove dependency to MSYS2 package \u0026quot;postgresql\u0026quot; from binary Windows gem \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/654\"\u003e#654\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 [2025-07-27] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for Ruby 3.4.\u003c/li\u003e\n\u003cli\u003eAdd fat binary gem for platform \u003ccode\u003eaarch64-mingw-ucrt\u003c/code\u003e aka Windows on ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/626\"\u003e#626\u003c/a\u003e, for platform Macos on Intel and ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/643\"\u003e#643\u003c/a\u003e, for platform \u003ccode\u003eaarch64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/646\"\u003e#646\u003c/a\u003e and for platform \u003ccode\u003ex86_64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/551#issuecomment-2504715762\"\u003e#551\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.5.1 and PostgreSQL-17.5.\u003c/li\u003e\n\u003cli\u003eAdd a patch to libpq to avoid starvation on bigger SSL records, which some database engines other than vanilla PostgreSQL use.\nThis patch applies to platform specific binary gems only.\n\u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/616\"\u003e#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new query cancel functions of PostgreSQL-17.\nThis adds the new class \u003ccode\u003ePG::CancelConnection\u003c/code\u003e which provides the ability to cancel a query per blocking or per non-blocking functions.\nIf the new functions are available they are used and the older are no longer compiled in.\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/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.5.6...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.4...v1.24.5\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.4...v1.24.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.6\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003c!-- 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/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.4.2 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.1 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.4.2...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.16 to 0.1.26\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thru...\n\n_Description has been truncated_","html_url":"https://github.com/shakacode/react-webpack-rails-tutorial/pull/807","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakacode%2Freact-webpack-rails-tutorial/issues/807","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/807/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-07-07T03:34:35.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4824986745","node_id":"PR_kwDOQVU4o87upFr8","number":59,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-07-07T03:58:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-07T03:34:35.000Z","updated_at":"2026-07-07T03:58:33.000Z","time_to_close":1436,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/clintzold/zold-ceramics/pull/59","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/clintzold%2Fzold-ceramics/issues/59","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/59/packages"}},{"old_version":"2.15.0","new_version":"2.15.1","update_type":"patch","path":null,"pr_created_at":"2026-06-11T18:24:26.000Z","version_change":"2.15.0 → 2.15.1","issue":{"uuid":"4643136497","node_id":"PR_kwDOS34Les7lcocI","number":3,"state":"closed","title":"Bump the bundler group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-18T03:09:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-11T18:24:26.000Z","updated_at":"2026-06-18T03:09:20.000Z","time_to_close":549893,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":10,"packages":[{"name":"aws-sdk-s3","old_version":"1.223.0","new_version":"1.225.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"bootsnap","old_version":"1.24.4","new_version":"1.24.6","repository_url":"https://github.com/rails/bootsnap"},{"name":"good_job","old_version":"4.18.2","new_version":"4.19.0","repository_url":"https://github.com/bensheldon/good_job"},{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"pagy","old_version":"43.5.4","new_version":"43.5.6","repository_url":"https://github.com/ddnexus/pagy"},{"name":"puma","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"rubocop","old_version":"1.86.2","new_version":"1.87.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-rails","old_version":"2.35.2","new_version":"2.35.4","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.9.0","new_version":"3.10.2","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rspec-openapi","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/exoego/rspec-openapi"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.223.0` | `1.225.1` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.4` | `1.24.6` |\n| [good_job](https://github.com/bensheldon/good_job) | `4.18.2` | `4.19.0` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.15.0` | `2.15.1` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.5.4` | `43.5.6` |\n| [puma](https://github.com/puma/puma) | `8.0.1` | `8.0.2` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.86.2` | `1.87.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.35.2` | `2.35.4` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.9.0` | `3.10.2` |\n| [rspec-openapi](https://github.com/exoego/rspec-openapi) | `0.26.0` | `0.28.0` |\n\n\nUpdates `aws-sdk-s3` from 1.223.0 to 1.225.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.225.1 (2026-06-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Fix \u003ccode\u003edownload_file\u003c/code\u003e single-request mode not writing to a temporary file when given a String/Pathname destination.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.225.0 (2026-06-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Adding new BDD representation of endpoint ruleset\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.224.0 (2026-05-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.24.4 to 1.24.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.6\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\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/rails/bootsnap/commit/026e183e7f4f4f0eab52d6b9eebafe548cde08a2\"\u003e\u003ccode\u003e026e183\u003c/code\u003e\u003c/a\u003e Release 1.24.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/263e34652b4884da97b5e4974ef53fce5753b890\"\u003e\u003ccode\u003e263e346\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/556\"\u003e#556\u003c/a\u003e from byroot/remove-canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c31cd81f39285ed43898377ff8af2dcf0d851e9\"\u003e\u003ccode\u003e7c31cd8\u003c/code\u003e\u003c/a\u003e Check for [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e] by checking Ruby version rather than a canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/54eba7643b359d85d518374af9e8b126a25a99d7\"\u003e\u003ccode\u003e54eba76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/554\"\u003e#554\u003c/a\u003e from byroot/namespace-overflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/fe963d56fc5981eb5c08f4352ca2937226ef2c48\"\u003e\u003ccode\u003efe963d5\u003c/code\u003e\u003c/a\u003e bs_cache_path: account for namespace length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b42db6610163d682fb27f986f7155882844ba2e\"\u003e\u003ccode\u003e7b42db6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/553\"\u003e#553\u003c/a\u003e from arpitjain099/chore/declare-workflow-perms\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/113b184cc52613c543af3e8155cab24851fd9d35\"\u003e\u003ccode\u003e113b184\u003c/code\u003e\u003c/a\u003e ci: add permissions: contents: read to ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.4...v1.24.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `good_job` from 4.18.2 to 4.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bensheldon/good_job/releases\"\u003egood_job's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.19.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4190-2026-05-27\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSignificant changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet default queue_select_limit to 1000 by \u003ca href=\"https://github.com/MahmoudBakr23\"\u003e\u003ccode\u003e@​MahmoudBakr23\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1762\"\u003ebensheldon/good_job#1762\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNice changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTruncate long labels in dashboard badges by \u003ca href=\"https://github.com/MahmoudBakr23\"\u003e\u003ccode\u003e@​MahmoudBakr23\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1766\"\u003ebensheldon/good_job#1766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake execution state completely Fiber-safe via Rails isolated execution state by \u003ca href=\"https://github.com/ollym\"\u003e\u003ccode\u003e@​ollym\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1765\"\u003ebensheldon/good_job#1765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes and refactors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect ENV variable guard for GOOD_JOB_ENABLE_PAUSES by \u003ca href=\"https://github.com/jqr\"\u003e\u003ccode\u003e@​jqr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1772\"\u003ebensheldon/good_job#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit keyword arguments for concurrency controls by \u003ca href=\"https://github.com/bdewater-thatch\"\u003e\u003ccode\u003e@​bdewater-thatch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1770\"\u003ebensheldon/good_job#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePG::ProgramLimitExceeded\u003c/code\u003e in jobs index search for large error payloads by \u003ca href=\"https://github.com/createdbypete\"\u003e\u003ccode\u003e@​createdbypete\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1769\"\u003ebensheldon/good_job#1769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PG::AmbiguousColumn in skiplocked/hybrid claim with ordered queues + concurrency rules by \u003ca href=\"https://github.com/createdbypete\"\u003e\u003ccode\u003e@​createdbypete\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1768\"\u003ebensheldon/good_job#1768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse table_name instead of hardcoding :good_jobs in schema introspection by \u003ca href=\"https://github.com/eidarus\"\u003e\u003ccode\u003e@​eidarus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1774\"\u003ebensheldon/good_job#1774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle nil updated_at in stale? method by \u003ca href=\"https://github.com/gavinballard\"\u003e\u003ccode\u003e@​gavinballard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1764\"\u003ebensheldon/good_job#1764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Concurrency::Rule to use explicit ivars instead of options hash by \u003ca href=\"https://github.com/bensheldon\"\u003e\u003ccode\u003e@​bensheldon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1776\"\u003ebensheldon/good_job#1776\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/NobodysNightmare\"\u003e\u003ccode\u003e@​NobodysNightmare\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1773\"\u003ebensheldon/good_job#1773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jqr\"\u003e\u003ccode\u003e@​jqr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1772\"\u003ebensheldon/good_job#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/createdbypete\"\u003e\u003ccode\u003e@​createdbypete\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1769\"\u003ebensheldon/good_job#1769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eidarus\"\u003e\u003ccode\u003e@​eidarus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1774\"\u003ebensheldon/good_job#1774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MahmoudBakr23\"\u003e\u003ccode\u003e@​MahmoudBakr23\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1762\"\u003ebensheldon/good_job#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gavinballard\"\u003e\u003ccode\u003e@​gavinballard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1764\"\u003ebensheldon/good_job#1764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ollym\"\u003e\u003ccode\u003e@​ollym\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1765\"\u003ebensheldon/good_job#1765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.2...v4.19.0\"\u003ehttps://github.com/bensheldon/good_job/compare/v4.18.2...v4.19.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/bensheldon/good_job/blob/main/CHANGELOG.md\"\u003egood_job's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/bensheldon/good_job/tree/v4.19.0\"\u003ev4.19.0\u003c/a\u003e (2026-05-27)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.2...v4.19.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eImplemented enhancements:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTruncate long labels in dashboard badges \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1766\"\u003e#1766\u003c/a\u003e (\u003ca href=\"https://github.com/MahmoudBakr23\"\u003eMahmoudBakr23\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet default queue_select_limit to 1000 \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1762\"\u003e#1762\u003c/a\u003e (\u003ca href=\"https://github.com/MahmoudBakr23\"\u003eMahmoudBakr23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed bugs:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse table_name instead of hardcoding :good_jobs in schema introspection \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1774\"\u003e#1774\u003c/a\u003e (\u003ca href=\"https://github.com/eidarus\"\u003eeidarus\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect ENV variable guard for GOOD_JOB_ENABLE_PAUSES \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1772\"\u003e#1772\u003c/a\u003e (\u003ca href=\"https://github.com/jqr\"\u003ejqr\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePG::ProgramLimitExceeded\u003c/code\u003e in jobs index search for large error payloads \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1769\"\u003e#1769\u003c/a\u003e (\u003ca href=\"https://github.com/createdbypete\"\u003ecreatedbypete\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PG::AmbiguousColumn in skiplocked/hybrid claim with ordered queues + concurrency rules \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1768\"\u003e#1768\u003c/a\u003e (\u003ca href=\"https://github.com/createdbypete\"\u003ecreatedbypete\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake execution state completely Fiber-safe via Rails isolated execution state \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1765\"\u003e#1765\u003c/a\u003e (\u003ca href=\"https://github.com/ollym\"\u003eollym\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle nil updated_at in stale? method \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1764\"\u003e#1764\u003c/a\u003e (\u003ca href=\"https://github.com/gavinballard\"\u003egavinballard\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eClosed issues:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eenable_pauses ENV var check has singular/plural mismatch \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaises \u003ccode\u003ePG::AmbiguousColumn\u003c/code\u003e under hybrid lock strategy on ordered queues with throttle \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1767\"\u003e#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle long labels more gracefully \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1674\"\u003e#1674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Duplicate index \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1661\"\u003e#1661\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJob runner process enters a loop on create_listen_task - stale check fails \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1649\"\u003e#1649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a default queue_select_limit \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1596\"\u003e#1596\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMerged pull requests:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrune CI test matrix to boundary Ruby versions per Rails version \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1777\"\u003e#1777\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor Concurrency::Rule to use explicit ivars instead of options hash \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1776\"\u003e#1776\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in README.md \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1773\"\u003e#1773\u003c/a\u003e (\u003ca href=\"https://github.com/NobodysNightmare\"\u003eNobodysNightmare\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit keyword arguments for concurrency controls \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1770\"\u003e#1770\u003c/a\u003e (\u003ca href=\"https://github.com/bdewater-thatch\"\u003ebdewater-thatch\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/bensheldon/good_job/commit/d80fa633cae917be6230b125123478073948e037\"\u003e\u003ccode\u003ed80fa63\u003c/code\u003e\u003c/a\u003e Release good_job v4.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/8bae5979cf4aea7214ca5a4826ab67d8ec31b1d4\"\u003e\u003ccode\u003e8bae597\u003c/code\u003e\u003c/a\u003e Make execution state completely Fiber-safe via Rails isolated execution state...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/dcae2b22f114829981ec453f5b2560fe4d8f50c6\"\u003e\u003ccode\u003edcae2b2\u003c/code\u003e\u003c/a\u003e Refactor Concurrency::Rule to use explicit ivars instead of options hash (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1776\"\u003e#1776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/613b0838c3db3a96955b515a6cba87635f3cc2f6\"\u003e\u003ccode\u003e613b083\u003c/code\u003e\u003c/a\u003e Prune CI test matrix to boundary Ruby versions per Rails version (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1777\"\u003e#1777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/1f78c18653dd37e9e0c49d562986b86a41743988\"\u003e\u003ccode\u003e1f78c18\u003c/code\u003e\u003c/a\u003e Truncate long labels in dashboard badges (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1766\"\u003e#1766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/13aa3972b335b26e9bcff07c7fe33a41a50c86e6\"\u003e\u003ccode\u003e13aa397\u003c/code\u003e\u003c/a\u003e Handle nil updated_at in stale? method (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/befffb0c126162f51a98fa705cc1479408551a39\"\u003e\u003ccode\u003ebefffb0\u003c/code\u003e\u003c/a\u003e Set default queue_select_limit to 1000 (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1762\"\u003e#1762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/78b2e42b341311b7413b481d25d4522e7f333bdd\"\u003e\u003ccode\u003e78b2e42\u003c/code\u003e\u003c/a\u003e use \u003ccode\u003etable_name\u003c/code\u003e instead of hardcoding \u003ccode\u003e:good_jobs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1774\"\u003e#1774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/64be61090014e0448282d344c7dda80aef3502b9\"\u003e\u003ccode\u003e64be610\u003c/code\u003e\u003c/a\u003e Fix PG::AmbiguousColumn in skiplocked/hybrid claim with ordered queues + conc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/2f6264dc1177df11f002e8b1c13d28827c0a8565\"\u003e\u003ccode\u003e2f6264d\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ePG::ProgramLimitExceeded\u003c/code\u003e in jobs index search for large error payloads ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.2...v4.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.15.0 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pagy` from 43.5.4 to 43.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ddnexus/pagy/releases\"\u003epagy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 43.5.6\u003c/h2\u003e\n\u003ch3\u003eChanges in 43.5.6\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eValidate I18n locale input, coerce dev_tools wand_scale, add input-safety docs (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/908\"\u003e#908\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eCoerce dev_tools wand_scale to a float\u003c/li\u003e\n\u003cli\u003eValidate the I18n locale against a BCP 47 pattern\u003c/li\u003e\n\u003cli\u003eUpdate docs and comments about safety\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003ca href=\"https://ddnexus.github.io/pagy/changelog\"\u003eCHANGELOG\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eVersion 43\u003c/h3\u003e\n\u003cp\u003eWe needed a leap version to unequivocally signal that it's not just a major version: it's a complete redesign of the legacy code at all levels, usage and API included.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhy 43?\u003c/strong\u003e Because it's exactly one step beyond \u003cem\u003e\u0026quot;The answer to the ultimate question of life, the Universe, and everything.\u0026quot;\u003c/em\u003e 😉\u003c/p\u003e\n\u003ch4\u003eImprovements\u003c/h4\u003e\n\u003cp\u003eThis version introduces several enhancements, such as new \u003ccode\u003e:countish\u003c/code\u003e and \u003ccode\u003e:keynav_js\u003c/code\u003e paginators and improved automation and configuration processes, reducing setup requirements by 99%. The update also includes a simpler API and new interactive development tools, making it a comprehensive upgrade from previous versions.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/countish\"\u003e:countish\u003c/a\u003e Paginator\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eFaster than OFFSET and supporting the full UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/keynav_js\"\u003eKeynav\u003c/a\u003e Pagination\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eThe pagy-exclusive technique using the fastest \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators/keyset\"\u003ekeyset\u003c/a\u003e pagination alongside all frontend helpers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew interactive dev-tools\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/resources/stylesheets/#pagy-wand\"\u003ePagyWand\u003c/a\u003e to integrate the pagy CSS with your app themes.\u003c/li\u003e\n\u003cli\u003eNew \u003cstrong\u003ePagy AI\u003c/strong\u003e available right inside your own app.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eIntelligent automation\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ddnexus.github.io/pagy/toolbox/configuration/initializer\"\u003eConfiguration\u003c/a\u003e requirements reduced by 99%.\u003c/li\u003e\n\u003cli\u003eSimplified \u003ca href=\"https://ddnexus.github.io/pagy/resources/javascript\"\u003eJavaScript\u003c/a\u003e setup.\u003c/li\u003e\n\u003cli\u003eAutomatic \u003ca href=\"https://ddnexus.github.io/pagy/resources/i18n\"\u003eI18n\u003c/a\u003e loading.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://github.com/ddnexus/pagy#examples\"\u003eSimpler API\u003c/a\u003e\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eYou solely need the \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/paginators\"\u003epagy\u003c/a\u003e method and the \u003ca href=\"https://ddnexus.github.io/pagy/toolbox/helpers\"\u003e\u003ccode\u003e@​pagy\u003c/code\u003e\u003c/a\u003e instance to paginate any collection and use any navigation tag and helper.\u003c/li\u003e\n\u003cli\u003eMethods are autoloaded only if used, and consume no memory otherwise.\u003c/li\u003e\n\u003cli\u003eMethods have narrower scopes and can be \u003ca href=\"https://ddnexus.github.io/pagy/guides/how-to#override-pagy-methods\"\u003eoverridden\u003c/a\u003e without deep knowledge.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew \u003ca href=\"https://ddnexus.github.io/pagy/guides/quick-start\"\u003edocumentation\u003c/a\u003e\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eVery concise, straightforward, and easy to navigate and understand.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrade to 43\u003c/h3\u003e\n\u003cp\u003eSee the \u003ca href=\"https://ddnexus.github.io/pagy/guides/upgrade-guide/\"\u003eUpgrade Guide\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ddnexus/pagy/blob/master/docs/CHANGELOG.md\"\u003epagy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch4\u003eVersion 43.5.6\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eValidate I18n locale input, coerce dev_tools wand_scale, add input-safety docs (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/908\"\u003e#908\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eCoerce dev_tools wand_scale to a float\u003c/li\u003e\n\u003cli\u003eValidate the I18n locale against a BCP 47 pattern\u003c/li\u003e\n\u003cli\u003eUpdate docs and comments about safety\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.5.5\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRescue malformed page request param in Pagy::Keyset and KeynavJsPaginator (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/907\"\u003e#907\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eRescue malformed page request param in Pagy::Keyset and KeynavJsPaginator\u003c/li\u003e\n\u003cli\u003eSimplify decoding logic\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/ddnexus/pagy/commit/ef90524ef31ae03c0c57755d1d462f4233aab22f\"\u003e\u003ccode\u003eef90524\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/d6e546fbc4e606c514d96ca054405fd61d084cd8\"\u003e\u003ccode\u003ed6e546f\u003c/code\u003e\u003c/a\u003e Version 43.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/efcf09690e9fa7d7abdfb987b785a55f87e287df\"\u003e\u003ccode\u003eefcf096\u003c/code\u003e\u003c/a\u003e 💎 Validate I18n locale input, coerce dev_tools wand_scale, add input-safety d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/cbc77ebba1fc839345e78714eef41e3f672b6205\"\u003e\u003ccode\u003ecbc77eb\u003c/code\u003e\u003c/a\u003e Update gems and packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/2641e8c8c455ded17339c29f288138225197f97c\"\u003e\u003ccode\u003e2641e8c\u003c/code\u003e\u003c/a\u003e Improve docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/eb4a810caf7ee60c69c0c521ef0f9ef7e06ba396\"\u003e\u003ccode\u003eeb4a810\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/8ee37a02e19c7438670147b77ee3185b8cf9c7e1\"\u003e\u003ccode\u003e8ee37a0\u003c/code\u003e\u003c/a\u003e Version 43.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/ac62e00af1517af27d01d6f79c43facc29c320d5\"\u003e\u003ccode\u003eac62e00\u003c/code\u003e\u003c/a\u003e Improve comment/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/81215c4e3961eb985f69e40032fe5d8a86b62268\"\u003e\u003ccode\u003e81215c4\u003c/code\u003e\u003c/a\u003e Update gem and packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/916130148262d86ccb6e9c6cbd88f1165597ae65\"\u003e\u003ccode\u003e9161301\u003c/code\u003e\u003c/a\u003e 💎 Rescue malformed page request param in Pagy::Keyset and KeynavJsPaginator (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ddnexus/pagy/compare/43.5.4...43.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 8.0.1 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\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/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v8.0.1...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.86.2 to 1.87.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.87.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15167\"\u003e#15167\u003c/a\u003e: Add \u003ccode\u003e--enable-all-cops\u003c/code\u003e and \u003ccode\u003e--disable-all-cops\u003c/code\u003e command line options that override \u003ccode\u003eAllCops/EnabledByDefault\u003c/code\u003e and \u003ccode\u003eAllCops/DisabledByDefault\u003c/code\u003e in configuration files. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept the new \u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e directive comments. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15173\"\u003e#15173\u003c/a\u003e: Add optional Rubydex integration via \u003ccode\u003eAllCops/UseProjectIndex\u003c/code\u003e to enable cross-file detection in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e (experimental). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15168\"\u003e#15168\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the first argument is a call-like expression with its own parentheses, such as \u003ccode\u003eyield(...)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e when one side is an array or hash literal containing non-literal elements. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15182\"\u003e#15182\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/Alias\u003c/code\u003e causing a syntax error when the return value of \u003ccode\u003ealias_method\u003c/code\u003e is used, such as an argument to \u003ccode\u003epublic\u003c/code\u003e, \u003ccode\u003eprivate\u003c/code\u003e, \u003ccode\u003eprotected\u003c/code\u003e, or \u003ccode\u003emodule_function\u003c/code\u003e, or the right-hand side of an assignment. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15174\"\u003e#15174\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e causing a syntax error when the namespace contains a method call (e.g., \u003ccode\u003eclass self.class::Foo; end\u003c/code\u003e). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15180\"\u003e#15180\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/FileWrite\u003c/code\u003e causing a syntax error when the written heredoc is chained with another method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15186\"\u003e#15186\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/HashConversion\u003c/code\u003e causing a syntax error when \u003ccode\u003eHash[...]\u003c/code\u003e is passed an anonymous splat (\u003ccode\u003e*\u003c/code\u003e). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15192\"\u003e#15192\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/StructInheritance\u003c/code\u003e causing a syntax error when the inherited \u003ccode\u003eStruct.new\u003c/code\u003e is called without parentheses. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15170\"\u003e#15170\u003c/a\u003e: Fix an infinite loop for \u003ccode\u003eLayout/RedundantLineBreak\u003c/code\u003e when a single-line block is chained with a safe navigation method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15175\"\u003e#15175\u003c/a\u003e: Fix \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e to indent block bodies relative to the method selector for trailing-dot multi-line method chains when \u003ccode\u003eEnforcedStyleAlignWith\u003c/code\u003e is \u003ccode\u003erelative_to_receiver\u003c/code\u003e. (\u003ca href=\"https://github.com/ddbrendan\"\u003e\u003ccode\u003e@​ddbrendan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15135\"\u003e#15135\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e that swallowed chained method calls into a trailing inline comment on the line above the closing parenthesis. (\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15184\"\u003e#15184\u003c/a\u003e: Fix various typos and grammar mistakes in documentation and cop descriptions. (\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15171\"\u003e#15171\u003c/a\u003e: Cache \u003ccode\u003eFilePatterns#match?\u003c/code\u003e results per path so cops sharing the same \u003ccode\u003eInclude\u003c/code\u003e/\u003ccode\u003eExclude\u003c/code\u003e configuration do not each repeat \u003ccode\u003eFile.fnmatch?\u003c/code\u003e work on every file. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\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/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.87.0 (2026-05-30)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15167\"\u003e#15167\u003c/a\u003e: Add \u003ccode\u003e--enable-all-cops\u003c/code\u003e and \u003ccode\u003e--disable-all-cops\u003c/code\u003e command line options that override \u003ccode\u003eAllCops/EnabledByDefault\u003c/code\u003e and \u003ccode\u003eAllCops/DisabledByDefault\u003c/code\u003e in configuration files. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept the new \u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e directive comments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15173\"\u003e#15173\u003c/a\u003e: Add optional Rubydex integration via \u003ccode\u003eAllCops/UseProjectIndex\u003c/code\u003e to enable cross-file detection in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e (experimental). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15168\"\u003e#15168\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the first argument is a call-like expression with its own parentheses, such as \u003ccode\u003eyield(...)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e when one side is an array or hash literal containing non-literal elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15182\"\u003e#15182\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/Alias\u003c/code\u003e causing a syntax error when the return value of \u003ccode\u003ealias_method\u003c/code\u003e is used, such as an argument to \u003ccode\u003epublic\u003c/code\u003e, \u003ccode\u003eprivate\u003c/code\u003e, \u003ccode\u003eprotected\u003c/code\u003e, or \u003ccode\u003emodule_function\u003c/code\u003e, or the right-hand side of an assignment. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15174\"\u003e#15174\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e causing a syntax error when the namespace contains a method call (e.g., \u003ccode\u003eclass self.class::Foo; end\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15180\"\u003e#15180\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/FileWrite\u003c/code\u003e causing a syntax error when the written heredoc is chained with another method call. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15186\"\u003e#15186\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/HashConversion\u003c/code\u003e causing a syntax error when \u003ccode\u003eHash[...]\u003c/code\u003e is passed an anonymous splat (\u003ccode\u003e*\u003c/code\u003e). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15192\"\u003e#15192\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/StructInheritance\u003c/code\u003e causing a syntax error when the inherited \u003ccode\u003eStruct.new\u003c/code\u003e is called without parentheses. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15170\"\u003e#15170\u003c/a\u003e: Fix an infinite loop for \u003ccode\u003eLayout/RedundantLineBreak\u003c/code\u003e when a single-line block is chained with a safe navigation method call. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15175\"\u003e#15175\u003c/a\u003e: Fix \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e to indent block bodies relative to the method selector for trailing-dot multi-line method chains when \u003ccode\u003eEnforcedStyleAlignWith\u003c/code\u003e is \u003ccode\u003erelative_to_receiver\u003c/code\u003e. ([\u003ca href=\"https://github.com/ddbrendan\"\u003e\u003ccode\u003e@​ddbrendan\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15135\"\u003e#15135\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e that swallowed chained method calls into a trailing inline comment on the line above the closing parenthesis. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15184\"\u003e#15184\u003c/a\u003e: Fix various typos and grammar mistakes in documentation and cop descriptions. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15171\"\u003e#15171\u003c/a\u003e: Cache \u003ccode\u003eFilePatterns#match?\u003c/code\u003e results per path so cops sharing the same \u003ccode\u003eInclude\u003c/code\u003e/\u003ccode\u003eExclude\u003c/code\u003e configuration do not each repeat \u003ccode\u003eFile.fnmatch?\u003c/code\u003e work on every file. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\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/rubocop/rubocop/commit/e5b788dba181ad94de30cfbad661c5d6aa08a4e5\"\u003e\u003ccode\u003ee5b788d\u003c/code\u003e\u003c/a\u003e Cut 1.87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/65aece887ba956fe585873d9bfcf4034effce9cd\"\u003e\u003ccode\u003e65aece8\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/810c790a68123a8c4aae6607bfa792e9d9275585\"\u003e\u003ccode\u003e810c790\u003c/code\u003e\u003c/a\u003e Fix incorrect autocorrect for \u003ccode\u003eStyle/StructInheritance\u003c/code\u003e cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/1ec05543769f7cd7b89bf9bf2d6c0e2f071af6a1\"\u003e\u003ccode\u003e1ec0554\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e] Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept new SimpleCov dir...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/11cd569b1512310aa1ae253ff3e4793bdeb08091\"\u003e\u003ccode\u003e11cd569\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15190\"\u003e#15190\u003c/a\u003e from koic/fix_false_positives_in_style_yoda_condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/ceff1364bf05d61ea2aff88c0082b30ef8c3c70a\"\u003e\u003ccode\u003eceff136\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e] Fix false positives for \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4a12596a39e512dcf7aa4aea728c1c688a704fc7\"\u003e\u003ccode\u003e4a12596\u003c/code\u003e\u003c/a\u003e Fix incorrect autocorrect for \u003ccode\u003eStyle/HashConversion\u003c/code\u003e cop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/4801e9d2bafc6208770b0a5b930562c517f77275\"\u003e\u003ccode\u003e4801e9d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15184\"\u003e#15184\u003c/a\u003e from rubocop/fix-typos-and-grammar-in-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/bfe7dc5e3893ce4ce9276e088122106ea8690b7f\"\u003e\u003ccode\u003ebfe7dc5\u003c/code\u003e\u003c/a\u003e Fix various typos and grammar mistakes in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/6988aa464bd5d797d715a187ef9814bed26a5659\"\u003e\u003ccode\u003e6988aa4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15182\"\u003e#15182\u003c/a\u003e from koic/fix_incorrect_autocorrect_for_style_alias...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.86.2...v1.87.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rails` from 2.35.2 to 2.35.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/releases\"\u003erubocop-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Rails v2.35.4\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1418\"\u003e#1418\u003c/a\u003e: Fix a false positive for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003erequire\u003c/code\u003e is given an array literal, such as \u003ccode\u003eparams.require([:foo, :bar]).permit(:baz)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e: Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003epermit\u003c/code\u003e receives a single dynamic argument, such as \u003ccode\u003eparams.require(:user).permit(permitted_attributes)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e: Fix \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to allow \u003ccode\u003eparams[:foo].inspect\u003c/code\u003e. (\u003ca href=\"https://github.com/jdelStrother\"\u003e\u003ccode\u003e@​jdelStrother\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.3\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1630\"\u003e#1630\u003c/a\u003e: Fix a false positive in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when negating \u003ccode\u003eparams[:key]\u003c/code\u003e with \u003ccode\u003e!\u003c/code\u003e, such as \u003ccode\u003e!params[:key]\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1629\"\u003e#1629\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using the safe navigation operator (\u003ccode\u003e\u0026amp;.\u003c/code\u003e) on \u003ccode\u003eparams[:key]\u003c/code\u003e. Autocorrecting \u003ccode\u003eparams[:key]\u0026amp;.downcase\u003c/code\u003e to \u003ccode\u003eparams.expect(:key).downcase\u003c/code\u003e silently changes behavior — a missing param goes from returning \u003ccode\u003enil\u003c/code\u003e to raising \u003ccode\u003eActionController::ParameterMissing\u003c/code\u003e. (\u003ca href=\"https://github.com/lucasmazza\"\u003e\u003ccode\u003e@​lucasmazza\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/rubocop/rubocop-rails/blob/master/CHANGELOG.md\"\u003erubocop-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.35.4 (2026-06-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1418\"\u003e#1418\u003c/a\u003e: Fix a false positive for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003erequire\u003c/code\u003e is given an array literal, such as \u003ccode\u003eparams.require([:foo, :bar]).permit(:baz)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e: Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when \u003ccode\u003epermit\u003c/code\u003e receives a single dynamic argument, such as \u003ccode\u003eparams.require(:user).permit(permitted_attributes)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e: Fix \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to allow \u003ccode\u003eparams[:foo].inspect\u003c/code\u003e. ([\u003ca href=\"https://github.com/jdelStrother\"\u003e\u003ccode\u003e@​jdelStrother\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.3 (2026-05-27)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1630\"\u003e#1630\u003c/a\u003e: Fix a false positive in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when negating \u003ccode\u003eparams[:key]\u003c/code\u003e with \u003ccode\u003e!\u003c/code\u003e, such as \u003ccode\u003e!params[:key]\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1629\"\u003e#1629\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using the safe navigation operator (\u003ccode\u003e\u0026amp;.\u003c/code\u003e) on \u003ccode\u003eparams[:key]\u003c/code\u003e. Autocorrecting \u003ccode\u003eparams[:key]\u0026amp;.downcase\u003c/code\u003e to \u003ccode\u003eparams.expect(:key).downcase\u003c/code\u003e silently changes behavior — a missing param goes from returning \u003ccode\u003enil\u003c/code\u003e to raising \u003ccode\u003eActionController::ParameterMissing\u003c/code\u003e. ([\u003ca href=\"https://github.com/lucasmazza\"\u003e\u003ccode\u003e@​lucasmazza\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/rubocop/rubocop-rails/commit/a4d53a50899c429235110e812106e74294123f72\"\u003e\u003ccode\u003ea4d53a5\u003c/code\u003e\u003c/a\u003e Cut 2.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/e9e592da6223cea219a5de3d0a3d7a5c6b48349f\"\u003e\u003ccode\u003ee9e592d\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/84eb5fe95485676529d3a83e4eeeabcfee764a06\"\u003e\u003ccode\u003e84eb5fe\u003c/code\u003e\u003c/a\u003e [Doc] Update the doc for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/5490e3ef9c222da82be8446adb63b878f8167a67\"\u003e\u003ccode\u003e5490e3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1636\"\u003e#1636\u003c/a\u003e from koic/fix_strong_parameters_expect_dynamic_permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/cfe75e93436af56b8d5c5ef7f04f4075dc70f5a9\"\u003e\u003ccode\u003ecfe75e9\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1574\"\u003e#1574\u003c/a\u003e] Fix an invalid autocorrection for \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/4817d57aaa784720c309318df5db7065a7657fb5\"\u003e\u003ccode\u003e4817d57\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1633\"\u003e#1633\u003c/a\u003e from koic/doc_strong_parameters_expect_safety\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/d9824c64da286a4eac7b11e6dbc7b63bb28efcfe\"\u003e\u003ccode\u003ed9824c6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1634\"\u003e#1634\u003c/a\u003e from koic/fix_strong_parameters_expect_array_require\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/e30a80b7ac818dd04987fc2411fd187e092e18f4\"\u003e\u003ccode\u003ee30a80b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1635\"\u003e#1635\u003c/a\u003e from jdelStrother/params-inspect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/70651a0bd9c3d458690eb62fc341a3c4aeb20edb\"\u003e\u003ccode\u003e70651a0\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003einspect\u003c/code\u003e in Rails/StrongParametersExpect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/a8f6e0c043f6711055ea1d57d94babf9c4ce7ac1\"\u003e\u003ccode\u003ea8f6e0c\u003c/code\u003e\u003c/a\u003e [Doc] Document additional unsafety of \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.35.2...v2.35.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rspec` from 3.9.0 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rspec/releases\"\u003erubocop-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix false positives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when \u003ccode\u003eCustomTransform\u003c/code\u003e maps a namespace to an empty string. (\u003ca href=\"https://github.com/sakuro\"\u003e\u003ccode\u003e@​sakuro\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with options. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eStrict\u003c/code\u003e option to \u003ccode\u003eRSpec/SharedContext\u003c/code\u003e to flag \u003ccode\u003eshared_context\u003c/code\u003e whenever it contains examples, even alongside setup code. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eNegatedMatcher\u003c/code\u003e configuration option \u003ccode\u003eRSpec/ExpectChange\u003c/code\u003e. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with interpolations. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop RSpec v3.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to suggest \u003ccode\u003einclude\u003c/code\u003e matcher when \u003ccode\u003ematch\u003c/code\u003e is used with simple string literals without regex-specific features. (\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/DiscardedMatcher\u003c/code\u003e to detect matchers in void context (e.g. missing \u003ccode\u003e.and\u003c/code\u003e between compound matchers). (\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eitblock\u003c/code\u003e nodes. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRSpec/ScatteredLet\u003c/code\u003e now preserves the order of \u003ccode\u003elet\u003c/code\u003es during auto-correction. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/EmptyLineAfterFinalLet\u003c/code\u003e inside \u003ccode\u003eshared_examples\u003c/code\u003e / \u003ccode\u003einclude_examples\u003c/code\u003e / \u003ccode\u003eit_behaves_like\u003c/code\u003e blocks. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ContainExactly\u003c/code\u003e when \u003ccode\u003econtain_exactly\u003c/code\u003e has multiple splat arguments. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd autocorrect support for \u003ccode\u003eRSpec/SubjectDeclaration\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix false negatives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when the expected class path only partially matches a path segment. (\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/ExpectActual\u003c/code\u003e when the matcher takes no arguments (e.g. \u003ccode\u003eexpect(\u0026quot;foo\u0026quot;).to be_present\u003c/code\u003e, \u003ccode\u003eexpect(1).to be\u003c/code\u003e). (\u003ca href=\"https://github.com/cvx\"\u003e\u003ccode\u003e@​cvx\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/rubocop/rubocop-rspec/blob/master/CHANGELOG.md\"\u003erubocop-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.2 (2026-06-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix false positives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when \u003ccode\u003eCustomTransform\u003c/code\u003e maps a namespace to an empty string. ([\u003ca href=\"https://github.com/sakuro\"\u003e\u003ccode\u003e@​sakuro\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with options. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.1 (2026-06-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eStrict\u003c/code\u003e option to \u003ccode\u003eRSpec/SharedContext\u003c/code\u003e to flag \u003ccode\u003eshared_context\u003c/code\u003e whenever it contains examples, even alongside setup code. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eNegatedMatcher\u003c/code\u003e configuration option \u003ccode\u003eRSpec/ExpectChange\u003c/code\u003e. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to ignore regular expressions with interpolations. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2026-06-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/MatchWithSimpleRegex\u003c/code\u003e to suggest \u003ccode\u003einclude\u003c/code\u003e matcher when \u003ccode\u003ematch\u003c/code\u003e is used with simple string literals without regex-specific features. ([\u003ca href=\"https://github.com/bquorning\"\u003e\u003ccode\u003e@​bquorning\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd new cop \u003ccode\u003eRSpec/DiscardedMatcher\u003c/code\u003e to detect matchers in void context (e.g. missing \u003ccode\u003e.and\u003c/code\u003e between compound matchers). ([\u003ca href=\"https://github.com/ydakuka\"\u003e\u003ccode\u003e@​ydakuka\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eitblock\u003c/code\u003e nodes. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRSpec/ScatteredLet\u003c/code\u003e now preserves the order of \u003ccode\u003elet\u003c/code\u003es during auto-correction. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/EmptyLineAfterFinalLet\u003c/code\u003e inside \u003ccode\u003eshared_examples\u003c/code\u003e / \u003ccode\u003einclude_examples\u003c/code\u003e / \u003ccode\u003eit_behaves_like\u003c/code\u003e blocks. ([\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false positive for \u003ccode\u003eRSpec/ContainExactly\u003c/code\u003e when \u003ccode\u003econtain_exactly\u003c/code\u003e has multiple splat arguments. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eAdd autocorrect support for \u003ccode\u003eRSpec/SubjectDeclaration\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix false negatives for \u003ccode\u003eRSpec/SpecFilePathFormat\u003c/code\u003e when the expected class path only partially matches a path segment. ([\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eFix a false negative for \u003ccode\u003eRSpec/ExpectActual\u003c/code\u003e when the matcher takes no arguments (e.g. \u003ccode\u003eexpect(\u0026quot;foo\u0026quot;).to be_present\u003c/code\u003e, \u003ccode\u003eexpect(1).to be\u003c/code\u003e). ([\u003ca href=\"https://github.com/cvx\"\u003e\u003ccode\u003e@​cvx\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/rubocop/rubocop-rspec/commit/2488441eb70a9dd40843492d4ce76d491ee98a8f\"\u003e\u003ccode\u003e2488441\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2189\"\u003e#2189\u003c/a\u003e from rubocop/release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/c9e53cf7e52f01baf54d9f9e1cb76f8788a3f2b7\"\u003e\u003ccode\u003ec9e53cf\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/7ae0a42f6e2510b910959b3457164ea87fa15635\"\u003e\u003ccode\u003e7ae0a42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2186\"\u003e#2186\u003c/a\u003e from sakuro/fix/spec-file-path-format-empty-custom-t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/8b0b5e9dd4035dfa8d51a7d42fad35b363f700d2\"\u003e\u003ccode\u003e8b0b5e9\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into fix/spec-file-path-format-empty-custom-transform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/dc4465cb76cf0b8a6c088cb8ed983ab63e0e7740\"\u003e\u003ccode\u003edc4465c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2188\"\u003e#2188\u003c/a\u003e from rubocop/fix-2185\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/d5de6b244e5992e6b0487e6c5f31e85cb48bc88c\"\u003e\u003ccode\u003ed5de6b2\u003c/code\u003e\u003c/a\u003e Consider regexp with options a non-simple regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/bad0cb3d8a6703f10a620b0c91dbb8e32db273bb\"\u003e\u003ccode\u003ebad0cb3\u003c/code\u003e\u003c/a\u003e :bug: Fix RSpec/SpecFilePathFormat false positives when CustomTransform maps ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/ec3eeab2e7041d1891b0355c5516b7b161b811a2\"\u003e\u003ccode\u003eec3eeab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rspec/issues/2183\"\u003e#2183\u003c/a\u003e from rubocop/fix-match-with-simple-regex-with-interp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/16bbf497ec1af234fc8ecbdacabfb519469af2c0\"\u003e\u003ccode\u003e16bbf49\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rspec/commit/2a78abd918ea7ebeea829318b05eee358885ae7a\"\u003e\u003ccode\u003e2a78abd\u003c/code\u003e\u003c/a\u003e Ignore interpolation in MatchWithSimpleRegex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rspec/compare/v3.9.0...v3.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rspec-openapi` from 0.26.0 to 0.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/exoego/rspec-openapi/releases\"\u003erspec-openapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.28.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐞 Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: merge heterogeneous nested-array items across outer array items by \u003ca href=\"https://github.com/Spence1115\"\u003e\u003ccode\u003e@​Spence1115\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/350\"\u003eexoego/rspec-openapi#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: recurse arrays and skip empty items in build_merged_schema_from_variations by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/352\"\u003eexoego/rspec-openapi#352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: exclude unnecessary file in gem (46 files -\u0026gt; 27 files, 38KB -\u0026gt; 30KB) by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/348\"\u003eexoego/rspec-openapi#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/349\"\u003eexoego/rspec-openapi#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v0.28.0 by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/353\"\u003eexoego/rspec-openapi#353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/exoego/rspec-openapi/compare/v0.27.0...v0.28.0\"\u003ehttps://github.com/exoego/rspec-openapi/compare/v0.27.0...v0.28.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🐞 Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: merge heterogeneous nested-array items across outer array items by \u003ca href=\"https://github.com/Spence1115\"\u003e\u003ccode\u003e@​Spence1115\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/350\"\u003eexoego/rspec-openapi#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: recurse arrays and skip empty items in build_merged_schema_from_variations by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/352\"\u003eexoego/rspec-openapi#352\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: exclude unnecessary file in gem (46 files -\u0026gt; 27 files, 38KB -\u0026gt; 30KB) by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/348\"\u003eexoego/rspec-openapi#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/setup-node from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/349\"\u003eexoego/rspec-openapi#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v0.28.0 by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/353\"\u003eexoego/rspec-openapi#353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/exoego/rspec-openapi/compare/v0.27.0...v0.28.0\"\u003ehttps://github.com/exoego/rspec-openapi/compare/v0.27.0...v0.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.27.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🎉 Exciting New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: make parameters optional if not appeared in all test cases by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/338\"\u003eexoego/rspec-openapi#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: handle empty YAML/JSON files gracefully by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/339\"\u003eexoego/rspec-openapi#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003estyle: enforce brackets style for Style/SymbolArray by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/340\"\u003eexoego/rspec-openapi#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estyle: enforce brackets style for Style/WordArray by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/341\"\u003eexoego/rspec-openapi#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estyle: autocorrect by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/342\"\u003eexoego/rspec-openapi#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: refactor schema builder  by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/343\"\u003eexoego/rspec-openapi#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: schema_builder by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/344\"\u003eexoego/rspec-openapi#344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: return Hash from extractor request_attributes by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/345\"\u003eexoego/rspec-openapi#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: refactor rails test line length by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/346\"\u003eexoego/rspec-openapi#346\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v0.27.0 by \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/pull/347\"\u003eexoego/rspec-openapi#347\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/exoego/rspec-openapi/compare/v0.26.0...v0.27.0\"\u003ehttps://github.com/exoego/rspec-openapi/compare/v0.26.0...v0.27.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- 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/exoego/rspec-openapi/commit/3d614a476bfa0c87163c7d9bd5087256d25dfb86\"\u003e\u003ccode\u003e3d614a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/353\"\u003e#353\u003c/a\u003e from exoego/release/v0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/314f3334210be876fd918751105d4c5a1aceba8e\"\u003e\u003ccode\u003e314f333\u003c/code\u003e\u003c/a\u003e Bump version to 0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/4eee52a37c44ff9b779b50bd3fcf156f5a98d3f9\"\u003e\u003ccode\u003e4eee52a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/352\"\u003e#352\u003c/a\u003e from exoego/fix/nested-array-merge-across-items-2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/1bb0ba624af7b5f5ac12f09fe99a0e3c4ac45ac9\"\u003e\u003ccode\u003e1bb0ba6\u003c/code\u003e\u003c/a\u003e fix: recurse arrays and skip empty items in build_merged_schema_from_variations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/3630b7cda528df4bcce371853fbceda9d98a6538\"\u003e\u003ccode\u003e3630b7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/350\"\u003e#350\u003c/a\u003e from Spence1115/fix/nested-array-merge-across-items\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/9ead9b0fd0e4a9fe93b7e1c85d944cd1f299c2e3\"\u003e\u003ccode\u003e9ead9b0\u003c/code\u003e\u003c/a\u003e fix: merge heterogeneous nested-array items across outer array items\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/85c54b03dbcc0fe8fb56985cdfd6a6239ba5610a\"\u003e\u003ccode\u003e85c54b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/349\"\u003e#349\u003c/a\u003e from exoego/dependabot/github_actions/actions/setup-n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/943049a6591c95c45435cf2387fb452af21ceea5\"\u003e\u003ccode\u003e943049a\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/setup-node from 4 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/bd6c3dcda4f78e62a329ffb59102f5d00e902c74\"\u003e\u003ccode\u003ebd6c3dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/exoego/rspec-openapi/issues/348\"\u003e#348\u003c/a\u003e from exoego/chore/slim-gem-build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/exoego/rspec-openapi/commit/229a1e5d821b79aad8427780da54c58bbe5cd78c\"\u003e\u003ccode\u003e229a1e5\u003c/code\u003e\u003c/a\u003e Apply suggestion from \u003ca href=\"https://github.com/exoego\"\u003e\u003ccode\u003e@​exoego\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/exoego/rspec-openapi/compare/v0.26.0...v0.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/bagajab/resume-builder-backend/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bagajab%2Fresume-builder-backend/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-06-10T09:24:34.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4629815588","node_id":"PR_kwDOJKv3g87kxpOt","number":1259,"state":"closed","title":"Bump the bundler group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-15T02:07:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-10T09:24:34.000Z","updated_at":"2026-06-15T02:07:40.000Z","time_to_close":405784,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":16,"packages":[{"name":"aws-sdk-s3","old_version":"1.219.0","new_version":"1.225.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.24.6","repository_url":"https://github.com/rails/bootsnap"},{"name":"faker","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"laa_crime_forms_common","old_version":"","new_version":"[oauth2](https://github.com/ruby-oauth/oauth2)","repository_url":"https://github.com/ministryofjustice/laa-crime-forms-common"},{"name":"`2.0.22`","old_version":"","new_version":"[propshaft](https://github.com/rails/propshaft)"},{"name":"`1.3.2`","old_version":"","new_version":"[sidekiq](https://github.com/sidekiq/sidekiq)"},{"name":"`8.1.6`","old_version":"","new_version":"[sentry-rails](https://github.com/getsentry/sentry-ruby)"},{"name":"`6.6.0`","old_version":"","new_version":"[overcommit](https://github.com/sds/overcommit)"},{"name":"`0.70.0`","old_version":"","new_version":"[axe-core-rspec](https://github.com/dequelabs/axe-core-gems)"},{"name":"`4.11.3`","old_version":"","new_version":"[rubocop](https://github.com/rubocop/rubocop)"},{"name":"`1.87.0`","old_version":"","new_version":"[rubocop-rails](https://github.com/rubocop/rubocop-rails)"},{"name":"`2.35.3`","old_version":"","new_version":"[selenium-webdriver](https://github.com/SeleniumHQ/selenium)"},{"name":"`4.44.0`","old_version":"","new_version":"[super_diff](https://github.com/splitwise/super_diff)"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.219.0` | `1.225.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.24.6` |\n| [faker](https://github.com/faker-ruby/faker) | `3.7.1` | `3.8.0` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.14.1` | `2.15.1` |\n| [laa_crime_forms_common](https://github.com/ministryofjustice/laa-crime-forms-common) | ``e94f122`` | ``41fa1ce`` |\n| [oauth2](https://github.com/ruby-oauth/oauth2) | `2.0.18` | `2.0.22` |\n| [propshaft](https://github.com/rails/propshaft) | `1.3.1` | `1.3.2` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.2` | `8.1.6` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `6.5.0` | `6.6.0` |\n| [overcommit](https://github.com/sds/overcommit) | `0.69.0` | `0.70.0` |\n| [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) | `4.11.1` | `4.11.3` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.86.1` | `1.87.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.3` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.43.0` | `4.44.0` |\n| [super_diff](https://github.com/splitwise/super_diff) | `0.18.0` | `0.19.0` |\n\n\nUpdates `aws-sdk-s3` from 1.219.0 to 1.225.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.225.0 (2026-06-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Adding new BDD representation of endpoint ruleset\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.224.0 (2026-05-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.223.0 (2026-05-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.222.0 (2026-05-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.221.0 (2026-05-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Validate outpost access point resource name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.220.0 (2026-04-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - This release adds five additional checksum algorithms for S3 data integrity (MD5, SHA-512, XXHash3, XXHash64, XXHash128) and support for S3 Inventory on directory buckets (S3 Express One Zone).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.24.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.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/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.6\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\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/rails/bootsnap/commit/026e183e7f4f4f0eab52d6b9eebafe548cde08a2\"\u003e\u003ccode\u003e026e183\u003c/code\u003e\u003c/a\u003e Release 1.24.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/263e34652b4884da97b5e4974ef53fce5753b890\"\u003e\u003ccode\u003e263e346\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/556\"\u003e#556\u003c/a\u003e from byroot/remove-canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c31cd81f39285ed43898377ff8af2dcf0d851e9\"\u003e\u003ccode\u003e7c31cd8\u003c/code\u003e\u003c/a\u003e Check for [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e] by checking Ruby version rather than a canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/54eba7643b359d85d518374af9e8b126a25a99d7\"\u003e\u003ccode\u003e54eba76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/554\"\u003e#554\u003c/a\u003e from byroot/namespace-overflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/fe963d56fc5981eb5c08f4352ca2937226ef2c48\"\u003e\u003ccode\u003efe963d5\u003c/code\u003e\u003c/a\u003e bs_cache_path: account for namespace length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b42db6610163d682fb27f986f7155882844ba2e\"\u003e\u003ccode\u003e7b42db6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/553\"\u003e#553\u003c/a\u003e from arpitjain099/chore/declare-workflow-perms\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/113b184cc52613c543af3e8155cab24851fd9d35\"\u003e\u003ccode\u003e113b184\u003c/code\u003e\u003c/a\u003e ci: add permissions: contents: read to ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 3.7.1 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-ruby/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Lazy loading config by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3244\"\u003efaker-ruby/faker#3244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnabling lazy load\u003c/h2\u003e\n\u003cp\u003eThis version introduces lazy loading. It means users will only pay for what they use. Faker \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/experiments/lazy_load.md\"\u003eloads 2x faster\u003c/a\u003e when it's enabled.\u003c/p\u003e\n\u003cp\u003eLazy loading the generators is disabled by default. To enable it, choose one of the configuration options below:\u003c/p\u003e\n\u003ch3\u003e1 - Set lazy load as a Faker Config\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eFaker::Config.lazy_loading = true\u003c/code\u003e\u003c/p\u003e\n\u003ch3\u003e2 - Set lazy load as an environment variable\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eFAKER_LAZY_LOAD = 1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWe hope you get to see the improvement by enabling it. Please file a bug report for any issues!\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jeremyevans\"\u003e\u003ccode\u003e@​jeremyevans\u003c/code\u003e\u003c/a\u003e for the mentoring, and to \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e for pairing and code reviews.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.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/faker-ruby/faker/blob/main/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.8.0\"\u003ev3.8.0\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Lazy loading config by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3244\"\u003efaker-ruby/faker#3244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnabling lazy load\u003c/h3\u003e\n\u003cp\u003eThis version introduces lazy loading. It means users will only pay for what they use. Faker \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/experiments/lazy_load.md\"\u003eloads 2x faster\u003c/a\u003e when it's enabled.\u003c/p\u003e\n\u003cp\u003eLazy loading the generators is disabled by default. To enable it, choose one of the configuration options below:\u003c/p\u003e\n\u003ch4\u003e1 - Set lazy load as a Faker Config\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eFaker::Config.lazy_loading = true\u003c/code\u003e\u003c/p\u003e\n\u003ch4\u003e2 - Set lazy load as an environment variable\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eFAKER_LAZY_LOAD = 1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWe hope you get to see the improvement by enabling it. Please file a bug report for any issues!\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jeremyevans\"\u003e\u003ccode\u003e@​jeremyevans\u003c/code\u003e\u003c/a\u003e for the mentoring, and to \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e for pairing and code reviews.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\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/faker-ruby/faker/commit/e48d35f4fa0d4bda8257975d9549e4d9422a0ba4\"\u003e\u003ccode\u003ee48d35f\u003c/code\u003e\u003c/a\u003e bump faker to v3.8.0 (\u003ca href=\"https://redirect.github.com/faker-ruby/faker/issues/3245\"\u003e#3245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-ruby/faker/commit/7193b32ef1a6bb1445fbba203996b790d9b7b314\"\u003e\u003ccode\u003e7193b32\u003c/code\u003e\u003c/a\u003e Add Lazy loading config (\u003ca href=\"https://redirect.github.com/faker-ruby/faker/issues/3244\"\u003e#3244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.14.1 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `laa_crime_forms_common` from `e94f122` to `41fa1ce`\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/41fa1cec56a56340ed1d011b3c1964f1072cb906\"\u003e\u003ccode\u003e41fa1ce\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/119\"\u003e#119\u003c/a\u003e from ministryofjustice/CRM457-3022-github-security-ba...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/7991d9f65367005ae177c2b6965cada43d5a05cb\"\u003e\u003ccode\u003e7991d9f\u003c/code\u003e\u003c/a\u003e CRM457-3022 added cooldown config for dependabot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/ac6148ec20983f00aa5c7301781aa63d01df6683\"\u003e\u003ccode\u003eac6148e\u003c/code\u003e\u003c/a\u003e CRM457-3022 added pre-commit hook process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/e76aedc1b2e8a915bb8f154ed3ebe5aceb14cc7a\"\u003e\u003ccode\u003ee76aedc\u003c/code\u003e\u003c/a\u003e CRM457-3022 added SCA - software composition analysis action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/d4e472c1614d1641b63ea143a142204ccf32d837\"\u003e\u003ccode\u003ed4e472c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/114\"\u003e#114\u003c/a\u003e from ministryofjustice/CRM457-2999-github-actions-str...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/5dec183708d41188c5597d930e88a01507bf819f\"\u003e\u003ccode\u003e5dec183\u003c/code\u003e\u003c/a\u003e Update pipeline, pin actions to commit SHAs instead of versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/dd7de8cbe58898fa5ce9f46f033ddcd05095c950\"\u003e\u003ccode\u003edd7de8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/113\"\u003e#113\u003c/a\u003e from ministryofjustice/dependabot/bundler/activesuppo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/d93ab8075c0e5689c21fa58ff9c33244b591eb33\"\u003e\u003ccode\u003ed93ab80\u003c/code\u003e\u003c/a\u003e Bump activesupport from 8.1.1 to 8.1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/b40bb472dbf9690271e988d10ee795f066045b8d\"\u003e\u003ccode\u003eb40bb47\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/112\"\u003e#112\u003c/a\u003e from ministryofjustice/dependabot/bundler/json-2.15.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/119dce0ada4068e7cdfda9566f63ecdb53b17a4a\"\u003e\u003ccode\u003e119dce0\u003c/code\u003e\u003c/a\u003e Bump json from 2.15.2 to 2.15.2.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/compare/e94f122b9555ec36ffccb300d6cbd53158b23f54...41fa1cec56a56340ed1d011b3c1964f1072cb906\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oauth2` from 2.0.18 to 2.0.22\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases\"\u003eoauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.21...v2.0.22\"\u003e2.0.22\u003c/a\u003e - 2026-06-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.22\"\u003ev2.0.22\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 542/542 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 180/180 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised generated development tooling floors to \u003ccode\u003ekettle-dev\u003c/code\u003e \u0026gt;= 2.1.1 and\n\u003ccode\u003eversion_gem\u003c/code\u003e \u0026gt;= 1.1.11.\u003c/li\u003e\n\u003cli\u003eRaised the runtime dependency floor for \u003ccode\u003esnaky_hash\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 2.0.5\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[GHSA-pp92-crg2-gfv9] Prevent protocol-relative redirect \u003ccode\u003eLocation\u003c/code\u003e values from changing request authority, and strip \u003ccode\u003eAuthorization\u003c/code\u003e headers from cross-origin redirects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOfficial Discord 👉️ \u003ca href=\"https://discord.gg/3qme4XHNKN\"\u003e\u003cimg src=\"https://img.shields.io/discord/1373797679469170758?style=flat\" alt=\"Live Chat on Discord\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMany paths lead to being a sponsor or a backer of this project. Are you on such a path?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://opencollective.com/ruby-oauth#backer\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/backers/badge.svg?style=flat\" alt=\"OpenCollective Backers\" /\u003e\u003c/a\u003e \u003ca href=\"https://opencollective.com/ruby-oauth#sponsor\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/sponsors/badge.svg?style=flat\" alt=\"OpenCollective Sponsors\" /\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sponsors/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social\u0026amp;logo=github\" alt=\"Sponsor Me on Github\" /\u003e\u003c/a\u003e \u003ca href=\"https://liberapay.com/pboling/donate\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay\u0026amp;color=a51611\u0026amp;style=flat\" alt=\"Liberapay Goal Progress\" /\u003e\u003c/a\u003e \u003ca href=\"https://www.paypal.com/paypalme/peterboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat\u0026amp;logo=paypal\" alt=\"Donate on PayPal\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.buymeacoffee.com/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat\" alt=\"Buy me a coffee\" /\u003e\u003c/a\u003e \u003ca href=\"https://polar.sh/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/polar-donate-a51611.svg?style=flat\" alt=\"Donate on Polar\" /\u003e\u003c/a\u003e \u003ca href=\"https://ko-fi.com/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts at ko-fi.com\" /\u003e\u003c/a\u003e \u003ca href=\"https://patreon.com/galtzo\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts using Patreon\" /\u003e\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/blob/main/CHANGELOG.md\"\u003eoauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.22] - 2026-06-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.22][2.0.22t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 542/542 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 180/180 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised generated development tooling floors to \u003ccode\u003ekettle-dev\u003c/code\u003e \u0026gt;= 2.1.1 and\n\u003ccode\u003eversion_gem\u003c/code\u003e \u0026gt;= 1.1.11.\u003c/li\u003e\n\u003cli\u003eRaised the runtime dependency floor for \u003ccode\u003esnaky_hash\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 2.0.5\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[GHSA-pp92-crg2-gfv9] Prevent protocol-relative redirect \u003ccode\u003eLocation\u003c/code\u003e values from changing request authority, and strip \u003ccode\u003eAuthorization\u003c/code\u003e headers from cross-origin redirects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[2.0.21] - 2026-06-06\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.21][2.0.21t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 525/525 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 174/174 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/730\"\u003egh!730\u003c/a\u003e - Alternatives section to README by \u003ca href=\"https://github.com/jonathangrinstead\"\u003e\u003ccode\u003e@​jonathangrinstead\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates to alternatives section - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eAdded conditional \u003ccode\u003eappraisal2-rubocop\u003c/code\u003e Appraisal root loading on modern Ruby\nso generated Appraisal gemfiles are normalized during generation - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaised generated \u003ccode\u003eversion_gem\u003c/code\u003e dependency floor to \u003ccode\u003eversion_gem\u003c/code\u003e \u0026gt;= 1.1.10 - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaised the runtime dependency floor for \u003ccode\u003eauth-sanitizer\u003c/code\u003e to \u003ccode\u003e\u0026gt;= 0.2.1\u003c/code\u003e - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefreshed generated package metadata, support documentation, CI workflows,\nand development dependency floors from the current kettle-jem template - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumented the current per-version Ruby, JRuby, and TruffleRuby CI matrix in\ngenerated README badges and compatibility tables - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved the post-install message from the gemspec to keep installs quieter - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefreshed generated README support badges so Ruby 2.3 is listed as\nsupported but untested - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefreshed generated project metadata from the current kettle-jem template - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaised development tooling floors to \u003ccode\u003ekettle-dev\u003c/code\u003e \u0026gt;= 2.1.0 and\n\u003ccode\u003eappraisal2\u003c/code\u003e \u0026gt;= 3.1.1 for Appraisal2's split generate/install/update\ncommand semantics.\u003c/li\u003e\n\u003cli\u003eRefreshed generated Appraisal and CI templates to appraisal2-rubocop 0.2.0 - by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\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/ruby-oauth/oauth2/commit/551f434a81912763fb5a8e240cd00a6532e26970\"\u003e\u003ccode\u003e551f434\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/849e7e5e1f867c2d05c05428922aed12bc6439cb\"\u003e\u003ccode\u003e849e7e5\u003c/code\u003e\u003c/a\u003e 🧪 Strengthen redirect security specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/442c1609858ebaecbac5eab77f4511bc81ed7383\"\u003e\u003ccode\u003e442c160\u003c/code\u003e\u003c/a\u003e 📝 Reference GHSA in security changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/f6fed86ddf4295c47f38df61ee37066b62a13ef2\"\u003e\u003ccode\u003ef6fed86\u003c/code\u003e\u003c/a\u003e ⬆️ Raise snaky_hash floor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/26bfeda3d8c0b34d6a51bfa30b7a8bf1b5f3b0f6\"\u003e\u003ccode\u003e26bfeda\u003c/code\u003e\u003c/a\u003e 🔧 Refresh kettle-jem templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/0f0a474f1b38453e119e660c2daca742d4378ce9\"\u003e\u003ccode\u003e0f0a474\u003c/code\u003e\u003c/a\u003e Fix credential leakage on redirects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/1118527f311a23d06feede403b88b8f6bd2a4eed\"\u003e\u003ccode\u003e1118527\u003c/code\u003e\u003c/a\u003e 🔒️ Checksums for v2.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/3f4154985fc0ab9b2b3fd0b085fa132fdc8bd8b4\"\u003e\u003ccode\u003e3f41549\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/3311b5b6b39c57c062a071356a55bcb826207e54\"\u003e\u003ccode\u003e3311b5b\u003c/code\u003e\u003c/a\u003e Raise auth-sanitizer floor to 0.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/5659d892c3dcb4266c682f1565d0266d0b321503\"\u003e\u003ccode\u003e5659d89\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.21\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.18...v2.0.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `propshaft` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd charset=utf-8 to Content-Type for CSS and HTML assets by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/264\"\u003erails/propshaft#264\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/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/265\"\u003erails/propshaft#265\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ehttps://github.com/rails/propshaft/compare/v1.3.1...v1.3.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/rails/propshaft/commit/eb5957157c2e59fabff5b15c710826670fd66c27\"\u003e\u003ccode\u003eeb59571\u003c/code\u003e\u003c/a\u003e Bump version for 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8335366ac8e4bcb71ef169f6465d1575f6fcadca\"\u003e\u003ccode\u003e8335366\u003c/code\u003e\u003c/a\u003e Add charset=utf-8 to Content-Type for CSS and HTML assets (\u003ca href=\"https://redirect.github.com/rails/propshaft/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/67def02992440379f43b821da8df3be6fd881b3b\"\u003e\u003ccode\u003e67def02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/265\"\u003e#265\u003c/a\u003e from flavorjones/fix-ci-minitest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/2f9965a5d1e47aa052daba4df8768908c2e54821\"\u003e\u003ccode\u003e2f9965a\u003c/code\u003e\u003c/a\u003e Support minitest 6 where possible, pin \u0026lt; 6 elsewhere\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.1.2 to 8.1.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix reported thread/memory leak when jobs fail \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7006\"\u003e#7006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsers can limit data displayed on Busy page with the \u003ccode\u003eonly\u003c/code\u003e parameter \u003ccode\u003e/busy?only=(jobs|processes)\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace Rack::Utils usage with standard library APIs\u003c/li\u003e\n\u003cli\u003eSeveral minor fixes from AI scanners.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sub-second precision when computing the \u003ccode\u003eretry_for\u003c/code\u003e deadline \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7003\"\u003e#7003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIdentify Sidekiq connnections in Redis with \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case where Web UI could show an empty Batch set \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe TTIN signal is undeprecated as the INFO signal is not supported on Linux\u003c/li\u003e\n\u003cli\u003eShow iteration job state on Busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6978\"\u003e#6978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge case leading to duplicate, concurrent execution \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\nIf 2 Capsules process jobs from the same queue, long-running\njobs could run in parallel during process shutdown.\u003c/li\u003e\n\u003cli\u003e[SECURITY] Remove as much YAML usage as possible. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\nLocalization files in \u003ccode\u003eweb/locales\u003c/code\u003e are now manually parsed.\nSidekiq::CLI will now only require YAML if you use a \u003ccode\u003e-C\u003c/code\u003e .yml file.\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/sidekiq/sidekiq/commit/90da768570b8da237566e9002093624a509b304b\"\u003e\u003ccode\u003e90da768\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/94c8888f9b3e9b781a06704b5950e78987902293\"\u003e\u003ccode\u003e94c8888\u003c/code\u003e\u003c/a\u003e update changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/393b56c1849a6f7cab365463a27f325856b6948f\"\u003e\u003ccode\u003e393b56c\u003c/code\u003e\u003c/a\u003e ensure that busy?only parameter survives Live Poll refresh, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6008c4f09ee368de5fcd638cc97c8aaad4d5ed9d\"\u003e\u003ccode\u003e6008c4f\u003c/code\u003e\u003c/a\u003e remove more rack::utils usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/f87657dafa55e6b05431079b24e63a921e7f5023\"\u003e\u003ccode\u003ef87657d\u003c/code\u003e\u003c/a\u003e Rename example erb to follow Herb's filenaming scheme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/7a4302d689c566c79d98050805f0f6edf758749b\"\u003e\u003ccode\u003e7a4302d\u003c/code\u003e\u003c/a\u003e Remove rack::utils usage, use CGI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/88c4d7b1abd30db013999020746d263bf3edc7e8\"\u003e\u003ccode\u003e88c4d7b\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/832b3439a99f14cca9bba6568075f7849cc6bce5\"\u003e\u003ccode\u003e832b343\u003c/code\u003e\u003c/a\u003e Implement  parameter to limit data displayed on Busy page, fixes \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6820de00f387ed57dd8cfaac420e4cc973b679b5\"\u003e\u003ccode\u003e6820de0\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::JobUtil (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6999\"\u003e#6999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/b8393fae0d4b5d72ee2a44fb247ab93ce7975612\"\u003e\u003ccode\u003eb8393fa\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::Paginator (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7000\"\u003e#7000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.1.2...v8.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-rails` from 6.5.0 to 6.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e(yabeda) Add sentry-yabeda adapter gem by \u003ca href=\"https://github.com/dingsdax\"\u003e\u003ccode\u003e@​dingsdax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2925\"\u003e#2925\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThere's a new \u003ccode\u003esentry-yabeda\u003c/code\u003e gem that integrates Sentry Metrics with \u003ca href=\"https://github.com/yabeda-rb/yabeda\"\u003eYabeda\u003c/a\u003e.\nAdd the new gem to your \u003ccode\u003eGemfile\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003egem \u0026quot;sentry-yabeda\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eInitialize Sentry with metrics enabled. The Yabeda adapter registers itself automatically when \u003ccode\u003esentry-yabeda\u003c/code\u003e is required — there's no extra setup:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  config.dsn = ENV[\u0026quot;SENTRY_DSN\u0026quot;]\n  config.enable_metrics = true\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd release detection from Kamal deployment by \u003ca href=\"https://github.com/t27duck\"\u003e\u003ccode\u003e@​t27duck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2895\"\u003e#2895\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(sidekiq) Report error when retry limit is below attempt_threshold by \u003ca href=\"https://github.com/marcboquet\"\u003e\u003ccode\u003e@​marcboquet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2940\"\u003e#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(specs) Stop sidekiq-scheduler after each test by \u003ca href=\"https://github.com/solnic\"\u003e\u003ccode\u003e@​solnic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(stacktrace) Stop leaking internal frame state into event payload by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2962\"\u003e#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(tests) Proper dummy transport clean up for hub cloning by \u003ca href=\"https://github.com/solnic\"\u003e\u003ccode\u003e@​solnic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2957\"\u003e#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(yabeda) Normalize plural Yabeda units to Sentry's singular form by \u003ca href=\"https://github.com/sentry-junior\"\u003e\u003ccode\u003e@​sentry-junior\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2953\"\u003e#2953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not overwrite baggage header contents if it already exists by \u003ca href=\"https://github.com/jakubsomonday\"\u003e\u003ccode\u003e@​jakubsomonday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2896\"\u003e#2896\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003cp\u003eWe made some memory performance and caching improvements with the help of pi-autoresearch. Enjoy the lower overhead!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse FilenameCache in profilers by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2919\"\u003e#2919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd FilenameCache to cache compute_filename results by \u003ca href=\"https://github.com/HazAT\"\u003e\u003ccode\u003e@​HazAT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2904\"\u003e#2904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize LineCache to reduce allocations by \u003ca href=\"https://github.com/HazAT\"\u003e\u003ccode\u003e@​HazAT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2903\"\u003e#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid unnecessary allocations in hot paths by \u003ca href=\"https://github.com/HazAT\"\u003e\u003ccode\u003e@​HazAT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2902\"\u003e#2902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize lowercase check in RequestInterface by \u003ca href=\"https://github.com/HazAT\"\u003e\u003ccode\u003e@​HazAT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2908\"\u003e#2908\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/getsentry/sentry-ruby/commit/1754a7f5b4481081a50cc6ed1d9d67b13148b0b5\"\u003e\u003ccode\u003e1754a7f\u003c/code\u003e\u003c/a\u003e release: 6.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/a1f02d6150856417bf2a9434b2a7b2f865d2d5f1\"\u003e\u003ccode\u003ea1f02d6\u003c/code\u003e\u003c/a\u003e chore(tests): spec stability fixes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2960\"\u003e#2960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/e74774045d584e2b1177a950d57ef462d0cabae6\"\u003e\u003ccode\u003ee747740\u003c/code\u003e\u003c/a\u003e refactor(tests): rework active-job spec into shared spec (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/8635dbc8b041e478e63b9a1ecb512ecf81bec892\"\u003e\u003ccode\u003e8635dbc\u003c/code\u003e\u003c/a\u003e test: Increase duration for jruby (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.5.0...6.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-ruby` from 6.5.0 to 6.6.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-ruby's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(metrics) Dup attributes in capture_metric by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2965\"\u003e#2965\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.6.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGuard TelemetryEventBuffer against re-entrant mutex acquisition by \u003ca href=\"https://github.com/sentry-junior\"\u003e\u003ccode\u003e@​sentry-junior\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2964\"\u003e#2964\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.6.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e(yabeda) Add sentry-yabeda adapter gem by \u003ca href=\"https://github.com/dingsdax\"\u003e\u003ccode\u003e@​dingsdax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2925\"\u003e#2925\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThere's a new \u003ccode\u003esentry-yabeda\u003c/code\u003e gem that integrates Sentry Metrics with \u003ca href=\"https://github.com/yabeda-rb/yabeda\"\u003eYabeda\u003c/a\u003e.\nAdd the new gem to your \u003ccode\u003eGemfile\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003egem \u0026quot;sentry-yabeda\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eInitialize Sentry with metrics enabled. The Yabeda adapter registers itself automatically when \u003ccode\u003esentry-yabeda\u003c/code\u003e is required — there's no extra setup:\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eSentry.init do |config|\n  config.dsn = ENV[\u0026quot;SENTRY_DSN\u0026quot;]\n  config.enable_metrics = true\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd release detection from Kamal deployment by \u003ca href=\"https://github.com/t27duck\"\u003e\u003ccode\u003e@​t27duck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2895\"\u003e#2895\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(sidekiq) Report error when retry limit is below attempt_threshold by \u003ca href=\"https://github.com/marcboquet\"\u003e\u003ccode\u003e@​marcboquet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2940\"\u003e#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(specs) Stop sidekiq-scheduler after each test by \u003ca href=\"https://github.com/solnic\"\u003e\u003ccode\u003e@​solnic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(stacktrace) Stop leaking internal frame state into event payload by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2962\"\u003e#2962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(tests) Proper dummy transport clean up for hub cloning by \u003ca href=\"https://github.com/solnic\"\u003e\u003ccode\u003e@​solnic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2957\"\u003e#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(yabeda) Normalize plural Yabeda units to Sentry's singular form by \u003ca href=\"https://github.com/sentry-junior\"\u003e\u003ccode\u003e@​sentry-junior\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2953\"\u003e#2953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not overwrite baggage header contents if it already exists by \u003ca href=\"https://github.com/jakubsomonday\"\u003e\u003ccode\u003e@​jakubsomonday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2896\"\u003e#2896\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003cp\u003eWe made some memory performance and caching improvements with the help of pi-autoresearch. Enjoy the lower overhead!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse FilenameCache in profilers by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2919\"\u003e#2919\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/getsentry/sentry-ruby/commit/3e2219cd4be9a5c81599777384fcd220eb1596d6\"\u003e\u003ccode\u003e3e2219c\u003c/code\u003e\u003c/a\u003e release: 6.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/7c260953fe353179288e9d17ae58f9bf764cda23\"\u003e\u003ccode\u003e7c26095\u003c/code\u003e\u003c/a\u003e fix(metrics): Dup attributes in capture_metric (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2965\"\u003e#2965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3a55ed2c5afe4750a481fc4db710ff9c5ca6ba4e\"\u003e\u003ccode\u003e3a55ed2\u003c/code\u003e\u003c/a\u003e release: 6.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/129ada3e23a7e232987075e7ee65189ac0d693a6\"\u003e\u003ccode\u003e129ada3\u003c/code\u003e\u003c/a\u003e fix: guard TelemetryEventBuffer against re-entrant mutex acquisition (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2964\"\u003e#2964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/1754a7f5b4481081a50cc6ed1d9d67b13148b0b5\"\u003e\u003ccode\u003e1754a7f\u003c/code\u003e\u003c/a\u003e release: 6.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/af610cddc33a7059f702ecb1e22e69f02b7b815c\"\u003e\u003ccode\u003eaf610cd\u003c/code\u003e\u003c/a\u003e fix(stacktrace): stop leaking internal frame state into event payload (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2962\"\u003e#2962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/427612b56072f37c597154657b7c1dcc2bba300d\"\u003e\u003ccode\u003e427612b\u003c/code\u003e\u003c/a\u003e fix(tests): proper dummy transport clean up for hub cloning (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/3b64cc23b510fe05e5d281c57aa6f9d40b756cd7\"\u003e\u003ccode\u003e3b64cc2\u003c/code\u003e\u003c/a\u003e feat(yabeda): Add sentry-yabeda adapter gem (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2925\"\u003e#2925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/f6e0ad195840f05746983347b164e473a08f0688\"\u003e\u003ccode\u003ef6e0ad1\u003c/code\u003e\u003c/a\u003e perf: Use FilenameCache in profilers (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-ruby/commit/e2a073a782f0860b159262bccfd9b0f2825ca0e4\"\u003e\u003ccode\u003ee2a073a\u003c/code\u003e\u003c/a\u003e perf: Add FilenameCache to cache compute_filename results (\u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/issues/2904\"\u003e#2904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-ruby/compare/6.5.0...6.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `overcommit` from 0.69.0 to 0.70.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sds/overcommit/releases\"\u003eovercommit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.70.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd oxc pre-commit hooks by \u003ca href=\"https://github.com/benmelz\"\u003e\u003ccode\u003e@​benmelz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sds/overcommit/pull/879\"\u003esds/overcommit#879\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sds/overcommit/compare/v0.69.0...v0.70.0\"\u003ehttps://github.com/sds/overcommit/compare/v0.69.0...v0.70.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/sds/overcommit/blob/main/CHANGELOG.md\"\u003eovercommit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.70.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoxfmt\u003c/code\u003e and \u003ccode\u003eoxlint\u003c/code\u003e pre-commit hooks\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/sds/overcommit/commit/141b0aedd314bb01983eab9653aa034799c68e92\"\u003e\u003ccode\u003e141b0ae\u003c/code\u003e\u003c/a\u003e Cut version 0.70.0 (\u003ca href=\"https://redirect.github.com/sds/overcommit/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sds/overcommit/commit/032af772175087eb2e5f0026dcbfa30c8112b35b\"\u003e\u003ccode\u003e032af77\u003c/code\u003e\u003c/a\u003e Add oxc pre-commit hooks (\u003ca href=\"https://redirect.github.com/sds/overcommit/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sds/overcommit/commit/92b22f0b50b1fe7d83a9fb3103976a74ca8cbb18\"\u003e\u003ccode\u003e92b22f0\u003c/code\u003e\u003c/a\u003e Add Ruby 3.4 and 4.0 to CI matrix (\u003ca href=\"https://redirect.github.com/sds/overcommit/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sds/overcommit/compare/v0.69.0...v0.70.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axe-core-rspec` from 4.11.1 to 4.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dequelabs/axe-core-gems/releases\"\u003eaxe-core-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.11.3\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003ea0330b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 4.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\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/dequelabs/axe-core-gems/blob/develop/CHANGELOG.md\"\u003eaxe-core-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.2...v4.11.3\"\u003e4.11.3\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003ea0330b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.2\"\u003e4.11.2\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\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/dequelabs/axe-core-gems/commit/0fbfe215855653959e66487fbb2d7dfa2c2f3ff6\"\u003e\u003ccode\u003e0fbfe21\u003c/code\u003e\u003c/a\u003e chore: release v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/b45e785233d0bdac230f9dffaec30e60d4adf2ba\"\u003e\u003ccode\u003eb45e785\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/45f30e034cb2f4df9cc859dcda448eebb556edd0\"\u003e\u003ccode\u003e45f30e0\u003c/code\u003e\u003c/a\u003e Merge branch 'release' into release-2026-04-29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a748ba8978dc93e99fc6223cc6d0e454c2e2bfa2\"\u003e\u003ccode\u003ea748ba8\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003e\u003ccode\u003ea0330b0\u003c/code\u003e\u003c/a\u003e fix: Update axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/62d60478fc3973c639177d04a471efeb54566c65\"\u003e\u003ccode\u003e62d6047\u003c/code\u003e\u003c/a\u003e chore: merge master into develop (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/480\"\u003e#480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/fd8a85c7db631005fa1cb155e002e7a7d73a9bbd\"\u003e\u003ccode\u003efd8a85c\u003c/code\u003e\u003c/a\u003e chore: add create-release workflow (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/61cd3cca5135f73234fc3cfd12ca0a92368ae44c\"\u003e\u003ccode\u003e61cd3cc\u003c/code\u003e\u003c/a\u003e chore: Release 4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/94a90f6c4bd9d23d5ac3ef3de8c7b3b225f0493c\"\u003e\u003ccode\u003e94a90f6\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/dd9b9a9755ea0c571af412349d9df4608dbd2c05\"\u003e\u003ccode\u003edd9b9a9\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.86.1 to 1.87.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.87.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15167\"\u003e#15167\u003c/a\u003e: Add \u003ccode\u003e--enable-all-cops\u003c/code\u003e and \u003ccode\u003e--disable-all-cops\u003c/code\u003e command line options that override \u003ccode\u003eAllCops/EnabledByDefault\u003c/code\u003e and \u003ccode\u003eAllCops/DisabledByDefault\u003c/code\u003e in configuration files. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept the new \u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e directive comments. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15173\"\u003e#15173\u003c/a\u003e: Add optional Rubydex integration via \u003ccode\u003eAllCops/UseProjectIndex\u003c/code\u003e to enable cross-file detection in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e (experimental). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15168\"\u003e#15168\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the first argument is a call-like expression with its own parentheses, such as \u003ccode\u003eyield(...)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e when one side is an array or hash literal containing non-literal elements. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15182\"\u003e#15182\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/Alias\u003c/code\u003e causing a syntax error when the return value of \u003ccode\u003ealias_method\u003c/code\u003e is used, such as an argument to \u003ccode\u003epublic\u003c/code\u003e, \u003ccode\u003eprivate\u003c/code\u003e, \u003ccode\u003eprotected\u003c/code\u003e, or \u003ccode\u003emodule_function\u003c/code\u003e, or the right-hand side of an assignment. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15174\"\u003e#15174\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/ClassAndModuleChildren\u003c/code\u003e causing a syntax error when the namespace contains a method call (e.g., \u003ccode\u003eclass self.class::Foo; end\u003c/code\u003e). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15180\"\u003e#15180\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/FileWrite\u003c/code\u003e causing a syntax error when the written heredoc is chained with another method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15186\"\u003e#15186\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/HashConversion\u003c/code\u003e causing a syntax error when \u003ccode\u003eHash[...]\u003c/code\u003e is passed an anonymous splat (\u003ccode\u003e*\u003c/code\u003e). (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15192\"\u003e#15192\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/StructInheritance\u003c/code\u003e causing a syntax error when the inherited \u003ccode\u003eStruct.new\u003c/code\u003e is called without parentheses. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15170\"\u003e#15170\u003c/a\u003e: Fix an infinite loop for \u003ccode\u003eLayout/RedundantLineBreak\u003c/code\u003e when a single-line block is chained with a safe navigation method call. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15175\"\u003e#15175\u003c/a\u003e: Fix \u003ccode\u003eLayout/IndentationWidth\u003c/code\u003e to indent block bodies relative to the method selector for trailing-dot multi-line method chains when \u003ccode\u003eEnforcedStyleAlignWith\u003c/code\u003e is \u003ccode\u003erelative_to_receiver\u003c/code\u003e. (\u003ca href=\"https://github.com/ddbrendan\"\u003e\u003ccode\u003e@​ddbrendan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15135\"\u003e#15135\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/RedundantParentheses\u003c/code\u003e that swallowed chained method calls into a trailing inline comment on the line above the closing parenthesis. (\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15184\"\u003e#15184\u003c/a\u003e: Fix various typos and grammar mistakes in documentation and cop descriptions. (\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15171\"\u003e#15171\u003c/a\u003e: Cache \u003ccode\u003eFilePatterns#match?\u003c/code\u003e results per path so cops sharing the same \u003ccode\u003eInclude\u003c/code\u003e/\u003ccode\u003eExclude\u003c/code\u003e configuration do not each repeat \u003ccode\u003eFile.fnmatch?\u003c/code\u003e work on every file. (\u003ca href=\"https://github.com/Darhazer\"\u003e\u003ccode\u003e@​Darhazer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop v1.86.2\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15075\"\u003e#15075\u003c/a\u003e: Implement true runner parallelism. ([\u003ca href=\"https://github.com/tdeo\"\u003e\u003ccode\u003e@​tdeo\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15156\"\u003e#15156\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when chaining \u003ccode\u003efetch\u003c/code\u003e (or \u003ccode\u003e[]\u003c/code\u003e) calls on the same expression. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15161\"\u003e#15161\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ReduceToHash\u003c/code\u003e when nested \u003ccode\u003eeach_with_object\u003c/code\u003e/\u003ccode\u003einject\u003c/code\u003e/\u003ccode\u003ereduce\u003c/code\u003e calls would build hashes. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15144\"\u003e#15144\u003c/a\u003e: Fix an error in \u003ccode\u003eStyle/SoleNestedConditional\u003c/code\u003e when autocorrecting nested conditionals containing comments. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15040\"\u003e#15040\u003c/a\u003e: Exclude \u003ccode\u003econstants\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/t-daisuke\"\u003e\u003ccode\u003e@​t-daisuke\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15155\"\u003e#15155\u003c/a\u003e: Fix false negatives in \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e when an explicit \u003ccode\u003eself\u003c/code\u003e receiver in one scope matches the LHS of an \u003ccode\u003e||=\u003c/code\u003e, \u003ccode\u003e\u0026amp;\u0026amp;=\u003c/code\u003e, or \u003ccode\u003eop_asgn\u003c/code\u003e in another scope. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15107\"\u003e#15107\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RequireRelativeSelfPath\u003c/code\u003e when a non-\u003ccode\u003e.rb\u003c/code\u003e file uses \u003ccode\u003erequire_relative\u003c/code\u003e with its own basename. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15137\"\u003e#15137\u003c/a\u003e: Fix incorrect \u0026quot;does not support IndentationWidth parameter\u0026quot; warning for \u003ccode\u003eLayout/ClosingParenthesisIndentation\u003c/code\u003e and \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15148\"\u003e#15148\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e bodies. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15147\"\u003e#15147\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in the body of \u003ccode\u003eunless\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15163\"\u003e#15163\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e\\A#\u003c/code\u003e, uses \u003ccode\u003e\\s\u003c/code\u003e metacharacters, or has multiple spaces after \u003ccode\u003e#\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10179\"\u003e#10179\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/DocumentDynamicEvalDefinition\u003c/code\u003e when the heredoc contains an escaped interpolation (\u003ccode\u003e\\#{...}\u003c/code\u003e). ([\u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15154\"\u003e#15154\u003c/a\u003e: Fix bug where specifying \u003ccode\u003e--out\u003c/code\u003e disables parallelization. ([\u003ca href=\"https://github.com/deivid-rodriguez\"\u003e\u003ccode\u003e@​deivid-rodriguez\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/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.87.0 (2026-05-30)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15167\"\u003e#15167\u003c/a\u003e: Add \u003ccode\u003e--enable-all-cops\u003c/code\u003e and \u003ccode\u003e--disable-all-cops\u003c/code\u003e command line options that override \u003ccode\u003eAllCops/EnabledByDefault\u003c/code\u003e and \u003ccode\u003eAllCops/DisabledByDefault\u003c/code\u003e in configuration files. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15185\"\u003e#15185\u003c/a\u003e: Make \u003ccode\u003eLayout/EmptyLineAfterGuardClause\u003c/code\u003e accept the new \u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e directive comments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15173\"\u003e#15173\u003c/a\u003e: Add optional Rubydex integration via \u003ccode\u003eAllCops/UseProjectIndex\u003c/code\u003e to enable cross-file detection in \u003ccode\u003eLint/ConstantReassignment\u003c/code\u003e (experimental). ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15168\"\u003e#15168\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/ParenthesesAsGroupedExpression\u003c/code\u003e when the first argument is a call-like expression with its own parentheses, such as \u003ccode\u003eyield(...)\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15188\"\u003e#15188\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/YodaCondition\u003c/code\u003e when one side is an array or hash literal containing non-literal elements. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15182\"\u003e#15182\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eStyle/Alias\u003c/code\u003e causing a syntax error when the return value of \u003ccode\u003ealias_method\u003c/code\u003e is used, such as an argument to \u003ccode\u003epublic\u003c/code\u003e, \u003ccode\u003eprivate\u003c/code\u003e, \u003ccode\u003eprotected\u003c/code\u003e, or \u003ccode\u003emodule_function\u003c/code\u003e, or the right-hand side of an assignment. ([\u003ca href=\"https:/...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-assess-crime-forms/pull/1259","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-assess-crime-forms/issues/1259","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1259/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-06-03T00:02:42.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4575827170","node_id":"PR_kwDOSacg4s7iA2jz","number":10,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-05T15:32:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-03T00:02:42.000Z","updated_at":"2026-09-05T15:32:12.000Z","time_to_close":8177361,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/keitakishino/sanin-legacy/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/keitakishino%2Fsanin-legacy/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-06-02T08:29:28.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4569809342","node_id":"PR_kwDOR7JI-87htAEb","number":19,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-13T12:52:03.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T08:29:28.000Z","updated_at":"2026-10-13T12:52:14.000Z","time_to_close":11506955,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/jbrenesp/gk_blog/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrenesp%2Fgk_blog/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-06-02T04:53:42.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4568531739","node_id":"PR_kwDORWg2Oc7ho3pT","number":36,"state":"closed","title":"build(deps): bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-07T01:10:16.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T04:53:42.000Z","updated_at":"2026-06-07T01:10:18.000Z","time_to_close":418594,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/SunTea43/Hestia/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTea43%2FHestia/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-05-31T00:09:56.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4556082972","node_id":"PR_kwDOSM-EFc7hBU5u","number":55,"state":"closed","title":"Bump the bundler-minor-patch group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-02T02:04:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T00:09:56.000Z","updated_at":"2026-06-02T02:04:49.000Z","time_to_close":179684,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler-minor-patch","update_count":9,"packages":[{"name":"puma","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"bootsnap","old_version":"1.24.1","new_version":"1.24.5","repository_url":"https://github.com/rails/bootsnap"},{"name":"sidekiq","old_version":"8.1.3","new_version":"8.1.6","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"sidekiq-cron","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/ondrejbartas/sidekiq-cron"},{"name":"commonmarker","old_version":"2.8.1","new_version":"2.8.2","repository_url":"https://github.com/gjtorikian/commonmarker"},{"name":"view_component","old_version":"4.10.0","new_version":"4.11.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"mcp","old_version":"0.14.0","new_version":"0.18.0","repository_url":"https://github.com/modelcontextprotocol/ruby-sdk"},{"name":"doorkeeper","old_version":"5.9.0","new_version":"5.9.1","repository_url":"https://github.com/doorkeeper-gem/doorkeeper"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler-minor-patch group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [puma](https://github.com/puma/puma) | `8.0.1` | `8.0.2` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.14.1` | `2.15.1` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.1` | `1.24.5` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.3` | `8.1.6` |\n| [sidekiq-cron](https://github.com/ondrejbartas/sidekiq-cron) | `2.3.1` | `2.4.0` |\n| [commonmarker](https://github.com/gjtorikian/commonmarker) | `2.8.1` | `2.8.2` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.10.0` | `4.11.0` |\n| [mcp](https://github.com/modelcontextprotocol/ruby-sdk) | `0.14.0` | `0.18.0` |\n| [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) | `5.9.0` | `5.9.1` |\n\n\nUpdates `puma` from 8.0.1 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\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/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v8.0.1...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.14.1 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.24.1 to 1.24.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\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/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/103a92bc6fd05c7c97abfd048c8fc5cb0bd05757\"\u003e\u003ccode\u003e103a92b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/551\"\u003e#551\u003c/a\u003e from byroot/enable-fstr-global\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/33c927dc61e8ea868f1dcc681df5275d173b71fb\"\u003e\u003ccode\u003e33c927d\u003c/code\u003e\u003c/a\u003e Update compiler options when global options change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/122db7fdaea8a05fd54a8d23df8946bed43d9f54\"\u003e\u003ccode\u003e122db7f\u003c/code\u003e\u003c/a\u003e Simplify \u003ccode\u003eenable_frozen_string_literal(app_only: false)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/0d8a0a64cd1f302a4cbb29088fff7847ef9852c8\"\u003e\u003ccode\u003e0d8a0a6\u003c/code\u003e\u003c/a\u003e Release 1.24.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6ccc5ebda794afe4e2b36be677640b4f7b6a03ac\"\u003e\u003ccode\u003e6ccc5eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/550\"\u003e#550\u003c/a\u003e from byroot/fstr-and-coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/86e95864f89067159dadb8be68b656ae1a5f38ea\"\u003e\u003ccode\u003e86e9586\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e work even with coverage on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/36c22246259452d163986565f7a946154f742da7\"\u003e\u003ccode\u003e36c2224\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/549\"\u003e#549\u003c/a\u003e from byroot/integration-tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.1.3 to 8.1.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix reported thread/memory leak when jobs fail \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7006\"\u003e#7006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsers can limit data displayed on Busy page with the \u003ccode\u003eonly\u003c/code\u003e parameter \u003ccode\u003e/busy?only=(jobs|processes)\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace Rack::Utils usage with standard library APIs\u003c/li\u003e\n\u003cli\u003eSeveral minor fixes from AI scanners.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sub-second precision when computing the \u003ccode\u003eretry_for\u003c/code\u003e deadline \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7003\"\u003e#7003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIdentify Sidekiq connnections in Redis with \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case where Web UI could show an empty Batch set \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe TTIN signal is undeprecated as the INFO signal is not supported on Linux\u003c/li\u003e\n\u003cli\u003eShow iteration job state on Busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6978\"\u003e#6978\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/sidekiq/sidekiq/commit/90da768570b8da237566e9002093624a509b304b\"\u003e\u003ccode\u003e90da768\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/94c8888f9b3e9b781a06704b5950e78987902293\"\u003e\u003ccode\u003e94c8888\u003c/code\u003e\u003c/a\u003e update changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/393b56c1849a6f7cab365463a27f325856b6948f\"\u003e\u003ccode\u003e393b56c\u003c/code\u003e\u003c/a\u003e ensure that busy?only parameter survives Live Poll refresh, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6008c4f09ee368de5fcd638cc97c8aaad4d5ed9d\"\u003e\u003ccode\u003e6008c4f\u003c/code\u003e\u003c/a\u003e remove more rack::utils usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/f87657dafa55e6b05431079b24e63a921e7f5023\"\u003e\u003ccode\u003ef87657d\u003c/code\u003e\u003c/a\u003e Rename example erb to follow Herb's filenaming scheme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/7a4302d689c566c79d98050805f0f6edf758749b\"\u003e\u003ccode\u003e7a4302d\u003c/code\u003e\u003c/a\u003e Remove rack::utils usage, use CGI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/88c4d7b1abd30db013999020746d263bf3edc7e8\"\u003e\u003ccode\u003e88c4d7b\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/832b3439a99f14cca9bba6568075f7849cc6bce5\"\u003e\u003ccode\u003e832b343\u003c/code\u003e\u003c/a\u003e Implement  parameter to limit data displayed on Busy page, fixes \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6820de00f387ed57dd8cfaac420e4cc973b679b5\"\u003e\u003ccode\u003e6820de0\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::JobUtil (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6999\"\u003e#6999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/b8393fae0d4b5d72ee2a44fb247ab93ce7975612\"\u003e\u003ccode\u003eb8393fa\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::Paginator (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7000\"\u003e#7000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.1.3...v8.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq-cron` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ondrejbartas/sidekiq-cron/releases\"\u003esidekiq-cron's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate simplecov-covertura by \u003ca href=\"https://github.com/fwininger\"\u003e\u003ccode\u003e@​fwininger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/570\"\u003esidekiq-cron/sidekiq-cron#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reflected XSS on Sidekiq-UI. by \u003ca href=\"https://github.com/fwininger\"\u003e\u003ccode\u003e@​fwininger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/568\"\u003esidekiq-cron/sidekiq-cron#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate web extension tests to support Sidekiq 8.1.0 by \u003ca href=\"https://github.com/kevinrobell-st\"\u003e\u003ccode\u003e@​kevinrobell-st\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/573\"\u003esidekiq-cron/sidekiq-cron#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd cron_process_count_override config option by \u003ca href=\"https://github.com/kevinrobell-st\"\u003e\u003ccode\u003e@​kevinrobell-st\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/572\"\u003esidekiq-cron/sidekiq-cron#572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Spanish translation for enabled/disabled states by \u003ca href=\"https://github.com/roseliux\"\u003e\u003ccode\u003e@​roseliux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/575\"\u003esidekiq-cron/sidekiq-cron#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow to conditionally disable Sidekiq-Cron by \u003ca href=\"https://github.com/akodkod\"\u003e\u003ccode\u003e@​akodkod\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/574\"\u003esidekiq-cron/sidekiq-cron#574\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/fwininger\"\u003e\u003ccode\u003e@​fwininger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/570\"\u003esidekiq-cron/sidekiq-cron#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/roseliux\"\u003e\u003ccode\u003e@​roseliux\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/575\"\u003esidekiq-cron/sidekiq-cron#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/akodkod\"\u003e\u003ccode\u003e@​akodkod\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/574\"\u003esidekiq-cron/sidekiq-cron#574\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/compare/v2.3.1...v2.4.0\"\u003ehttps://github.com/sidekiq-cron/sidekiq-cron/compare/v2.3.1...v2.4.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/sidekiq-cron/sidekiq-cron/blob/master/CHANGELOG.md\"\u003esidekiq-cron's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix reflected XSS on Sidekiq-UI (\u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/568\"\u003esidekiq-cron/sidekiq-cron#568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecron_process_count_override\u003c/code\u003e config option (\u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/572\"\u003esidekiq-cron/sidekiq-cron#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Spanish translation for enabled/disabled states (\u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/575\"\u003esidekiq-cron/sidekiq-cron#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to conditionally disable Sidekiq-Cron (\u003ca href=\"https://redirect.github.com/sidekiq-cron/sidekiq-cron/pull/574\"\u003esidekiq-cron/sidekiq-cron#574\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/sidekiq-cron/sidekiq-cron/commit/3af55a8f29c99d1c5ea1452fe4595635c3ddf938\"\u003e\u003ccode\u003e3af55a8\u003c/code\u003e\u003c/a\u003e Prepare new release v2.4.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/44c12804b3c6377cafab1a07a02a3a79db2de7b2\"\u003e\u003ccode\u003e44c1280\u003c/code\u003e\u003c/a\u003e Allow to conditionally disable Sidekiq-Cron (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/a5ddb28da70a14d7aee04426a0f566c7aaa289f9\"\u003e\u003ccode\u003ea5ddb28\u003c/code\u003e\u003c/a\u003e Fix Spanish translation for enabled/disabled states (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/196b9b7c04913d76eedf52c80a081978fbb6e7a1\"\u003e\u003ccode\u003e196b9b7\u003c/code\u003e\u003c/a\u003e Add cron_process_count_override config option (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/9e802c97d4da9556ee0719d8805dc8bb70eac64d\"\u003e\u003ccode\u003e9e802c9\u003c/code\u003e\u003c/a\u003e Update web extension tests to support Sidekiq 8.1.0 (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/7b4ae4822f93ef4646f5cb55500ca4e25662db7c\"\u003e\u003ccode\u003e7b4ae48\u003c/code\u003e\u003c/a\u003e Fix reflected XSS on Sidekiq-UI. (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/568\"\u003e#568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq-cron/sidekiq-cron/commit/11535a5940171513b4ff4ff44d4300e608f4b5cc\"\u003e\u003ccode\u003e11535a5\u003c/code\u003e\u003c/a\u003e Update simplecov-covertura (\u003ca href=\"https://redirect.github.com/ondrejbartas/sidekiq-cron/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ondrejbartas/sidekiq-cron/compare/v2.3.1...v2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `commonmarker` from 2.8.1 to 2.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gjtorikian/commonmarker/releases\"\u003ecommonmarker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.8.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump rb-sys from 0.9.126 to 0.9.127 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/459\"\u003egjtorikian/commonmarker#459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd alert_type accessors for alert nodes by \u003ca href=\"https://github.com/fukayatsu\"\u003e\u003ccode\u003e@​fukayatsu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/460\"\u003egjtorikian/commonmarker#460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease for 2.8.2 by \u003ca href=\"https://github.com/gjtorikian\"\u003e\u003ccode\u003e@​gjtorikian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/461\"\u003egjtorikian/commonmarker#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[skip test] Release v2.8.2 by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/462\"\u003egjtorikian/commonmarker#462\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.2\"\u003ehttps://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gjtorikian/commonmarker/blob/main/CHANGELOG.md\"\u003ecommonmarker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e[v2.8.2] - 09-05-2026\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump rb-sys from 0.9.126 to 0.9.127 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/459\"\u003egjtorikian/commonmarker#459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd alert_type accessors for alert nodes by \u003ca href=\"https://github.com/fukayatsu\"\u003e\u003ccode\u003e@​fukayatsu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/460\"\u003egjtorikian/commonmarker#460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease for 2.8.2 by \u003ca href=\"https://github.com/gjtorikian\"\u003e\u003ccode\u003e@​gjtorikian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/pull/461\"\u003egjtorikian/commonmarker#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.2\"\u003ehttps://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.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/gjtorikian/commonmarker/commit/958a139d675ca9e44793917f8765a4ef3f15a6f1\"\u003e\u003ccode\u003e958a139\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/issues/462\"\u003e#462\u003c/a\u003e from gjtorikian/release/v2.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/54acd714a1a72f2c4c63b191be150777b53d0c14\"\u003e\u003ccode\u003e54acd71\u003c/code\u003e\u003c/a\u003e [skip test] update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/0898c4c24955b0d157e11f7613128b2bf4f45a1b\"\u003e\u003ccode\u003e0898c4c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/issues/461\"\u003e#461\u003c/a\u003e from gjtorikian/bump-version-for-alert\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/6df2bacd9a04d803450db1767a691a70fa8b304d\"\u003e\u003ccode\u003e6df2bac\u003c/code\u003e\u003c/a\u003e release for 2.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/d96a8500421a2c7ac256c94c9e5db7875afb27af\"\u003e\u003ccode\u003ed96a850\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/issues/460\"\u003e#460\u003c/a\u003e from fukayatsu/add-alert-type-getter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/d935437ca48c74ed6e5affa45969867c9fecfbfe\"\u003e\u003ccode\u003ed935437\u003c/code\u003e\u003c/a\u003e Add alert_type accessors for alert nodes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/98eda97e54da0cfee73227b46d0af81922793fdd\"\u003e\u003ccode\u003e98eda97\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gjtorikian/commonmarker/issues/459\"\u003e#459\u003c/a\u003e from gjtorikian/dependabot/cargo/rb-sys-0.9.127\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gjtorikian/commonmarker/commit/69a13de315ddb81afed59eb227a3398d2518eb37\"\u003e\u003ccode\u003e69a13de\u003c/code\u003e\u003c/a\u003e Bump rb-sys from 0.9.126 to 0.9.127\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/gjtorikian/commonmarker/compare/v2.8.1...v2.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `view_component` from 4.10.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/viewcomponent/view_component/releases\"\u003eview_component's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003erender_in\u003c/code\u003e signature to accept \u003ccode\u003e**_\u003c/code\u003e for compatibility with Rails \u003ca href=\"https://redirect.github.com/rails/rails/pull/50623\"\u003e#50623\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix translation scope resolution in nested lambda-backed slots. Relative \u003ccode\u003et(\u0026quot;.key\u0026quot;)\u003c/code\u003e calls inside lambda-backed slots were resolving against an intermediate component's scope instead of the original partial's scope where the block was defined.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eArtin Boghosian\u003c/em\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ViewComponent/view_component/blob/main/docs/CHANGELOG.md\"\u003eview_component's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003erender_in\u003c/code\u003e signature to accept \u003ccode\u003e**_\u003c/code\u003e for compatibility with Rails \u003ca href=\"https://redirect.github.com/rails/rails/pull/50623\"\u003e#50623\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix translation scope resolution in nested lambda-backed slots. Relative \u003ccode\u003et(\u0026quot;.key\u0026quot;)\u003c/code\u003e calls inside lambda-backed slots were resolving against an intermediate component's scope instead of the original partial's scope where the block was defined.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eArtin Boghosian\u003c/em\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/ViewComponent/view_component/commit/b1f6917f3fe02589873c4ae95f7794e0bcb3b0ef\"\u003e\u003ccode\u003eb1f6917\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2640\"\u003e#2640\u003c/a\u003e from ViewComponent/release-4-11-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/f54b15a7b4cd9b27d9dd45e6907a9ef57d91b918\"\u003e\u003ccode\u003ef54b15a\u003c/code\u003e\u003c/a\u003e bump allocations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/49b66854d2d24fff1e3e3c4822cade917a1ea837\"\u003e\u003ccode\u003e49b6685\u003c/code\u003e\u003c/a\u003e release 4.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e94672a5e27e52c793a8d1ddf68f60e2c5fd1afe\"\u003e\u003ccode\u003ee94672a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2636\"\u003e#2636\u003c/a\u003e from ViewComponent/render_in_api\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9360f6a1483b28fcfe9ae391543f61070e41937a\"\u003e\u003ccode\u003e9360f6a\u003c/code\u003e\u003c/a\u003e Fix appraisal naming consistency: use underscores throughout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5b6e7320ab1dbba18f9066cc685a319142818ae5\"\u003e\u003ccode\u003e5b6e732\u003c/code\u003e\u003c/a\u003e whitespace\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8a8e8c031eaef4bc52ec3eabf2bf7c615004a3a1\"\u003e\u003ccode\u003e8a8e8c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2634\"\u003e#2634\u003c/a\u003e from ViewComponent/dependabot/bundler/selenium-webdr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/346937739f4288a6defff13572bb58369d2fe874\"\u003e\u003ccode\u003e3469377\u003c/code\u003e\u003c/a\u003e Rename rails_main-head gemfile to use underscore for appraisal compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da30a8f7d762e4ec1f4d316de782d5e2f1900c58\"\u003e\u003ccode\u003eda30a8f\u003c/code\u003e\u003c/a\u003e Fix Rails main compatibility issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/635645d172cd395f9ca574d0d3edf7c456f43495\"\u003e\u003ccode\u003e635645d\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.10.0...v4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 0.14.0 to 0.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/releases\"\u003emcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.18.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport server-to-client \u003ccode\u003eping\u003c/code\u003e per MCP specification (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn on implicit stdio initialization (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eTool::Schema\u003c/code\u003e validation to avoid re-validating identical schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix case-sensitive \u003ccode\u003eAccept\u003c/code\u003e header comparison (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OAuth 2.1 client support for MCP authorization flow (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003eMCP-Protocol-Version\u003c/code\u003e header in \u003ccode\u003eStreamableHTTPTransport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject duplicate \u003ccode\u003einitialize\u003c/code\u003e requests (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject non-Hash JSON-RPC bodies in \u003ccode\u003eStreamableHTTPTransport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.16.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd opt-in tool output validation (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdvertise JSON Schema 2020-12 dialect on emitted tool schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve client tool output schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003eoutput_schema\u003c/code\u003e argument in \u003ccode\u003edefine_tool\u003c/code\u003e API (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003enotifications/cancelled\u003c/code\u003e per MCP specification (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd client-level \u003ccode\u003econnect\u003c/code\u003e for initialize handshake (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/327\"\u003e#327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd client-level \u003ccode\u003econnect\u003c/code\u003e handshake to stdio transport (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn tool argument validation failures as tool execution errors (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/333\"\u003e#333\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/modelcontextprotocol/ruby-sdk/blob/main/CHANGELOG.md\"\u003emcp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.18.0] - 2026-05-30\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport server-to-client \u003ccode\u003eping\u003c/code\u003e per MCP specification (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn on implicit stdio initialization (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eTool::Schema\u003c/code\u003e validation to avoid re-validating identical schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix case-sensitive \u003ccode\u003eAccept\u003c/code\u003e header comparison (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17.0] - 2026-05-19\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OAuth 2.1 client support for MCP authorization flow (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003eMCP-Protocol-Version\u003c/code\u003e header in \u003ccode\u003eStreamableHTTPTransport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject duplicate \u003ccode\u003einitialize\u003c/code\u003e requests (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject non-Hash JSON-RPC bodies in \u003ccode\u003eStreamableHTTPTransport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.16.0] - 2026-05-14\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd opt-in tool output validation (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdvertise JSON Schema 2020-12 dialect on emitted tool schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve client tool output schemas (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003eoutput_schema\u003c/code\u003e argument in \u003ccode\u003edefine_tool\u003c/code\u003e API (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.15.0] - 2026-05-05\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003enotifications/cancelled\u003c/code\u003e per MCP specification (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd client-level \u003ccode\u003econnect\u003c/code\u003e for initialize handshake (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/327\"\u003e#327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd client-level \u003ccode\u003econnect\u003c/code\u003e handshake to stdio transport (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/336\"\u003e#336\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/modelcontextprotocol/ruby-sdk/commit/3ff237a02c0792bbfbcacef5e37c0c7529c1f2a5\"\u003e\u003ccode\u003e3ff237a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/367\"\u003e#367\u003c/a\u003e from koic/release_0_18_0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/39882919b899a8a4d9a264da2185c52e7b3055dc\"\u003e\u003ccode\u003e3988291\u003c/code\u003e\u003c/a\u003e Release 0.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/f6e43d971e2882144f9b2e136c53f7152077111f\"\u003e\u003ccode\u003ef6e43d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/363\"\u003e#363\u003c/a\u003e from koic/cache-tool-schema-validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/5c8b132dcdc0bfeed978167889535632f0b07ad0\"\u003e\u003ccode\u003e5c8b132\u003c/code\u003e\u003c/a\u003e Cache \u003ccode\u003eTool::Schema\u003c/code\u003e Validation to Avoid Re-validating Identical Schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/fd2fd27625c6f2917e0f7a1cbd4ec9e2b57880ba\"\u003e\u003ccode\u003efd2fd27\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/338\"\u003e#338\u003c/a\u003e from atesgoral/warn-stdio-implicit-connect\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/c4c1f2bbc094c6c318b475f6265e3736ddab1fd5\"\u003e\u003ccode\u003ec4c1f2b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/360\"\u003e#360\u003c/a\u003e from yuki3738/fix_typo_for_client_method_references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/a28a34374164e240f59bba7eac378802a2332c94\"\u003e\u003ccode\u003ea28a343\u003c/code\u003e\u003c/a\u003e [Doc] Fix typos in MCP::Client method references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/b6462feef0c1616d39c1f24938ef4183dbe97bfb\"\u003e\u003ccode\u003eb6462fe\u003c/code\u003e\u003c/a\u003e feat: warn on implicit stdio initialization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/dd7dacae47c0aafea9f7ebae3b94f49b3a7122a4\"\u003e\u003ccode\u003edd7daca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/359\"\u003e#359\u003c/a\u003e from koic/case_insensitive_accept_header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/9b89620257f1d185287f766466331e1404e09ee8\"\u003e\u003ccode\u003e9b89620\u003c/code\u003e\u003c/a\u003e Fix case-sensitive Accept header comparison\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/compare/v0.14.0...v0.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `doorkeeper` from 5.9.0 to 5.9.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/releases\"\u003edoorkeeper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1781\"\u003e#1781\u003c/a\u003e Honor \u003ccode\u003ehandle_auth_errors :raise\u003c/code\u003e in \u003ccode\u003eAuthorizationsController#authorize_response\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1795\"\u003e#1795\u003c/a\u003e Fix: detailed error 'insufficient_scope' in protected resources 403s\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1797\"\u003e#1797\u003c/a\u003e Fix \u003ccode\u003edoorkeeper:db:cleanup\u003c/code\u003e rake task failure on PostgreSQL\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1800\"\u003e#1800\u003c/a\u003e Set \u003ccode\u003e@grant_type\u003c/code\u003e in \u003ccode\u003eClientCredentialsRequest\u003c/code\u003e and \u003ccode\u003eRefreshTokenRequest\u003c/code\u003e constructors so \u003ccode\u003erequest.grant_type\u003c/code\u003e returns\nthe correct value in hooks like \u003ccode\u003ebefore_successful_strategy_response\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1802\"\u003e#1802\u003c/a\u003e Fix \u003ccode\u003efilter_parameters\u003c/code\u003e not applied when \u003ccode\u003eDoorkeeper.configure\u003c/code\u003e is called inside to_prepare.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1804\"\u003e#1804\u003c/a\u003e Use \u003ccode\u003eActiveSupport.on_load(:active_record)\u003c/code\u003e in ORM hooks to prevent loading ActiveRecord models too early\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1806\"\u003e#1806\u003c/a\u003e Fix token revocation bypass for public clients (RFC 7009)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1815\"\u003e#1815\u003c/a\u003e Expose \u003ccode\u003ecurrent_resource_owner\u003c/code\u003e as a view helper in \u003ccode\u003eDoorkeeper::ApplicationController\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1818\"\u003e#1818\u003c/a\u003e Fix token introspection returning \u003ccode\u003eexp: 0\u003c/code\u003e for non-expiring tokens.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1784\"\u003e#1784\u003c/a\u003e Remove hardcoded colons from view templates, move punctuation to i18n translation strings.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e[IMPORTANT]\u003c/strong\u003e: if you have customized Doorkeeper views (\u003ccode\u003eauthorizations/new\u003c/code\u003e, \u003ccode\u003eauthorizations/show\u003c/code\u003e,\n\u003ccode\u003eapplications/show\u003c/code\u003e) or overridden the default \u003ccode\u003een.yml\u003c/code\u003e translations, you may need to update them.\nColons are no longer hardcoded in the views — they are now part of the translation strings.\nUpdate the \u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper-i18n\"\u003edoorkeeper-i18n\u003c/a\u003e gem to get the\nupdated translations for all locales.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1820\"\u003e#1820\u003c/a\u003e Remove dead wildcard presence check in \u003ccode\u003eScopes#dynamic_scope_match?\u003c/code\u003e (internal cleanup, no behavior change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1822\"\u003e#1822\u003c/a\u003e Update Rubocop config, auto-corrections.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1823\"\u003e#1823\u003c/a\u003e Update Rubocop config, part 2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1825\"\u003e#1825\u003c/a\u003e Update Rubocop config, part 3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1821\"\u003e#1821\u003c/a\u003e Fix noisy \u003ccode\u003eCould not find command \u0026quot;no_previous_refresh_token_column?\u0026quot;\u003c/code\u003e Thor output during the\n\u003ccode\u003ePreviousRefreshTokenGenerator\u003c/code\u003e spec by stubbing the underlying DB column check instead of the generator's\nprivate method (test-only change).\u003c/p\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/doorkeeper-gem/doorkeeper/blob/main/CHANGELOG.md\"\u003edoorkeeper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1781\"\u003e#1781\u003c/a\u003e Honor \u003ccode\u003ehandle_auth_errors :raise\u003c/code\u003e in \u003ccode\u003eAuthorizationsController#authorize_response\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1795\"\u003e#1795\u003c/a\u003e Fix: detailed error 'insufficient_scope' in protected resources 403s\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1797\"\u003e#1797\u003c/a\u003e Fix \u003ccode\u003edoorkeeper:db:cleanup\u003c/code\u003e rake task failure on PostgreSQL\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1800\"\u003e#1800\u003c/a\u003e Set \u003ccode\u003e@grant_type\u003c/code\u003e in \u003ccode\u003eClientCredentialsRequest\u003c/code\u003e and \u003ccode\u003eRefreshTokenRequest\u003c/code\u003e constructors so \u003ccode\u003erequest.grant_type\u003c/code\u003e returns\nthe correct value in hooks like \u003ccode\u003ebefore_successful_strategy_response\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1802\"\u003e#1802\u003c/a\u003e Fix \u003ccode\u003efilter_parameters\u003c/code\u003e not applied when \u003ccode\u003eDoorkeeper.configure\u003c/code\u003e is called inside to_prepare.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1804\"\u003e#1804\u003c/a\u003e Use \u003ccode\u003eActiveSupport.on_load(:active_record)\u003c/code\u003e in ORM hooks to prevent loading ActiveRecord models too early\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1806\"\u003e#1806\u003c/a\u003e Fix token revocation bypass for public clients (RFC 7009)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1815\"\u003e#1815\u003c/a\u003e Expose \u003ccode\u003ecurrent_resource_owner\u003c/code\u003e as a view helper in \u003ccode\u003eDoorkeeper::ApplicationController\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1818\"\u003e#1818\u003c/a\u003e Fix token introspection returning \u003ccode\u003eexp: 0\u003c/code\u003e for non-expiring tokens.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1784\"\u003e#1784\u003c/a\u003e Remove hardcoded colons from view templates, move punctuation to i18n translation strings.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e[IMPORTANT]\u003c/strong\u003e: if you have customized Doorkeeper views (\u003ccode\u003eauthorizations/new\u003c/code\u003e, \u003ccode\u003eauthorizations/show\u003c/code\u003e,\n\u003ccode\u003eapplications/show\u003c/code\u003e) or overridden the default \u003ccode\u003een.yml\u003c/code\u003e translations, you may need to update them.\nColons are no longer hardcoded in the views — they are now part of the translation strings.\nUpdate the \u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper-i18n\"\u003edoorkeeper-i18n\u003c/a\u003e gem to get the\nupdated translations for all locales.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1820\"\u003e#1820\u003c/a\u003e Remove dead wildcard presence check in \u003ccode\u003eScopes#dynamic_scope_match?\u003c/code\u003e (internal cleanup, no behavior change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1822\"\u003e#1822\u003c/a\u003e Update Rubocop config, auto-corrections.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1823\"\u003e#1823\u003c/a\u003e Update Rubocop config, part 2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1825\"\u003e#1825\u003c/a\u003e Update Rubocop config, part 3.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1821\"\u003e#1821\u003c/a\u003e Fix noisy \u003ccode\u003eCould not find command \u0026quot;no_previous_refresh_token_column?\u0026quot;\u003c/code\u003e Thor output during the\n\u003ccode\u003ePreviousRefreshTokenGenerator\u003c/code\u003e spec by stubbing the underlying DB column check instead of the generator's\nprivate method (test-only change).\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/doorkeeper-gem/doorkeeper/commit/3f5a58d01ac887113e9d6669d2262dedbd8c4991\"\u003e\u003ccode\u003e3f5a58d\u003c/code\u003e\u003c/a\u003e Release 5.9.1 :tada:\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/04cf40f734eb35a21c6f141a27e1ecc75180ddc2\"\u003e\u003ccode\u003e04cf40f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1821\"\u003e#1821\u003c/a\u003e from 55728/55728/fix/generator-spec-thor-command-noise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/2f3c315da6d4526a9da06b92b449b66319173603\"\u003e\u003ccode\u003e2f3c315\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1825\"\u003e#1825\u003c/a\u003e from doorkeeper-gem/update-rubocop-part3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/7856e0006a8c7543d24c962673e9f5751836c121\"\u003e\u003ccode\u003e7856e00\u003c/code\u003e\u003c/a\u003e Update Rubocop, part 3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/0b65e0be27dd952eff3092492b648eba9e8d5437\"\u003e\u003ccode\u003e0b65e0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1824\"\u003e#1824\u003c/a\u003e from doorkeeper-gem/changelog-upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/94eb3570959fd26606802a54c241f7788fa928be\"\u003e\u003ccode\u003e94eb357\u003c/code\u003e\u003c/a\u003e Update GitHub Workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/b3a8812f249aff46c414b56a9d7cbd9d83fa4a66\"\u003e\u003ccode\u003eb3a8812\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1823\"\u003e#1823\u003c/a\u003e from doorkeeper-gem/fix-rubocop-part2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/d1e6d32547389ca0249d9a22e49ad1c313361f1d\"\u003e\u003ccode\u003ed1e6d32\u003c/code\u003e\u003c/a\u003e Update Rubocop, part 2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/c1d79612f0ff8cd8f9f46683bcf0ff653201daaa\"\u003e\u003ccode\u003ec1d7961\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/doorkeeper-gem/doorkeeper/issues/1822\"\u003e#1822\u003c/a\u003e from doorkeeper-gem/rubocop-part1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/commit/ae9687337e65995f6eb52c2d23bc7e477c30d1ae\"\u003e\u003ccode\u003eae96873\u003c/code\u003e\u003c/a\u003e Update Rubocop, part 1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/doorkeeper-gem/doorkeeper/compare/v.5.9.0...v5.9.1\"\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/gmrdad82/pito/pull/55","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmrdad82%2Fpito/issues/55","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/55/packages"}},{"old_version":"2.15.0","new_version":"2.15.1","update_type":"patch","path":null,"pr_created_at":"2026-05-30T11:03:10.000Z","version_change":"2.15.0 → 2.15.1","issue":{"uuid":"4554179035","node_id":"PR_kwDOSloiFs7g7qUi","number":126,"state":"open","title":"chore(deps): bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-30T11:03:10.000Z","updated_at":"2026-05-31T05:01:12.977Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/shakacode/react-on-rails-starter-tanstack/pull/126","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakacode%2Freact-on-rails-starter-tanstack/issues/126","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/126/packages"}},{"old_version":"2.15.0","new_version":"2.15.1","update_type":"patch","path":null,"pr_created_at":"2026-05-29T12:31:07.000Z","version_change":"2.15.0 → 2.15.1","issue":{"uuid":"4548453113","node_id":"PR_kwDOSks6js7gpKY2","number":4,"state":"closed","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-06-25T20:04:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-29T12:31:07.000Z","updated_at":"2026-06-25T20:04:23.000Z","time_to_close":2359994,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\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/keng-oh/anisonar/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/keng-oh%2Fanisonar/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"2.15.0","new_version":"2.15.1","update_type":"patch","path":null,"pr_created_at":"2026-05-29T10:06:49.000Z","version_change":"2.15.0 → 2.15.1","issue":{"uuid":"4547586598","node_id":"PR_kwDOSRTiXM7gmUK6","number":13,"state":"closed","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-07T00:18:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-29T10:06:49.000Z","updated_at":"2026-06-07T00:18:28.000Z","time_to_close":742298,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/wjrus/photos/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wjrus%2Fphotos/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-05-28T19:35:26.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4543237016","node_id":"PR_kwDOSEh2h87gYGEE","number":18,"state":"closed","title":"Bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-08T23:33:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-28T19:35:26.000Z","updated_at":"2026-06-08T23:33:29.000Z","time_to_close":964681,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\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/SSapunar/EventHub/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SSapunar%2FEventHub/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"2.15.0","new_version":"2.15.1","update_type":"patch","path":null,"pr_created_at":"2026-05-28T18:29:15.000Z","version_change":"2.15.0 → 2.15.1","issue":{"uuid":"4542803040","node_id":"PR_kwDORrPvXc7gWqDE","number":35,"state":"closed","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-06T12:42:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-28T18:29:15.000Z","updated_at":"2026-06-06T12:42:45.000Z","time_to_close":756808,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/kplawver/did/pull/35","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kplawver%2Fdid/issues/35","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/35/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-05-28T08:36:39.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4538968917","node_id":"PR_kwDOJKv3g87gKECu","number":1242,"state":"closed","title":"Bump the bundler group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-08T02:06:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-28T08:36:39.000Z","updated_at":"2026-06-08T02:06:46.000Z","time_to_close":927005,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":14,"packages":[{"name":"aws-sdk-s3","old_version":"1.219.0","new_version":"1.224.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.24.5","repository_url":"https://github.com/rails/bootsnap"},{"name":"faker","old_version":"3.7.1","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"laa_crime_forms_common","old_version":"","new_version":"[oauth2](https://github.com/ruby-oauth/oauth2)","repository_url":"https://github.com/ministryofjustice/laa-crime-forms-common"},{"name":"`2.0.20`","old_version":"","new_version":"[propshaft](https://github.com/rails/propshaft)"},{"name":"`1.3.2`","old_version":"","new_version":"[puma](https://github.com/puma/puma)"},{"name":"`8.0.2`","old_version":"","new_version":"[sidekiq](https://github.com/sidekiq/sidekiq)"},{"name":"`8.1.6`","old_version":"","new_version":"[axe-core-rspec](https://github.com/dequelabs/axe-core-gems)"},{"name":"`4.11.3`","old_version":"","new_version":"[rubocop](https://github.com/rubocop/rubocop)"},{"name":"`1.86.2`","old_version":"","new_version":"[rubocop-rails](https://github.com/rubocop/rubocop-rails)"},{"name":"`2.35.3`","old_version":"","new_version":"[selenium-webdriver](https://github.com/SeleniumHQ/selenium)"},{"name":"`4.44.0`","old_version":"","new_version":"[super_diff](https://github.com/splitwise/super_diff)"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.219.0` | `1.224.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.24.5` |\n| [faker](https://github.com/faker-ruby/faker) | `3.7.1` | `3.8.0` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.14.1` | `2.15.1` |\n| [laa_crime_forms_common](https://github.com/ministryofjustice/laa-crime-forms-common) | ``e94f122`` | ``41fa1ce`` |\n| [oauth2](https://github.com/ruby-oauth/oauth2) | `2.0.18` | `2.0.20` |\n| [propshaft](https://github.com/rails/propshaft) | `1.3.1` | `1.3.2` |\n| [puma](https://github.com/puma/puma) | `8.0.0` | `8.0.2` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.2` | `8.1.6` |\n| [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) | `4.11.1` | `4.11.3` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.86.1` | `1.86.2` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.3` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.43.0` | `4.44.0` |\n| [super_diff](https://github.com/splitwise/super_diff) | `0.18.0` | `0.19.0` |\n\n\nUpdates `aws-sdk-s3` from 1.219.0 to 1.224.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.224.0 (2026-05-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.223.0 (2026-05-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.222.0 (2026-05-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Code Generated Changes, see \u003ccode\u003e./build_tools\u003c/code\u003e or \u003ccode\u003eaws-sdk-core\u003c/code\u003e's CHANGELOG.md for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.221.0 (2026-05-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Validate outpost access point resource name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.220.0 (2026-04-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - This release adds five additional checksum algorithms for S3 data integrity (MD5, SHA-512, XXHash3, XXHash64, XXHash128) and support for S3 Inventory on directory buckets (S3 Express One Zone).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.24.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.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/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\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/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/103a92bc6fd05c7c97abfd048c8fc5cb0bd05757\"\u003e\u003ccode\u003e103a92b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/551\"\u003e#551\u003c/a\u003e from byroot/enable-fstr-global\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/33c927dc61e8ea868f1dcc681df5275d173b71fb\"\u003e\u003ccode\u003e33c927d\u003c/code\u003e\u003c/a\u003e Update compiler options when global options change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/122db7fdaea8a05fd54a8d23df8946bed43d9f54\"\u003e\u003ccode\u003e122db7f\u003c/code\u003e\u003c/a\u003e Simplify \u003ccode\u003eenable_frozen_string_literal(app_only: false)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/0d8a0a64cd1f302a4cbb29088fff7847ef9852c8\"\u003e\u003ccode\u003e0d8a0a6\u003c/code\u003e\u003c/a\u003e Release 1.24.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6ccc5ebda794afe4e2b36be677640b4f7b6a03ac\"\u003e\u003ccode\u003e6ccc5eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/550\"\u003e#550\u003c/a\u003e from byroot/fstr-and-coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/86e95864f89067159dadb8be68b656ae1a5f38ea\"\u003e\u003ccode\u003e86e9586\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e work even with coverage on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/36c22246259452d163986565f7a946154f742da7\"\u003e\u003ccode\u003e36c2224\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/549\"\u003e#549\u003c/a\u003e from byroot/integration-tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 3.7.1 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-ruby/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Lazy loading config by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3244\"\u003efaker-ruby/faker#3244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnabling lazy load\u003c/h2\u003e\n\u003cp\u003eThis version introduces lazy loading. It means users will only pay for what they use. Faker \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/experiments/lazy_load.md\"\u003eloads 2x faster\u003c/a\u003e when it's enabled.\u003c/p\u003e\n\u003cp\u003eLazy loading the generators is disabled by default. To enable it, choose one of the configuration options below:\u003c/p\u003e\n\u003ch3\u003e1 - Set lazy load as a Faker Config\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eFaker::Config.lazy_loading = true\u003c/code\u003e\u003c/p\u003e\n\u003ch3\u003e2 - Set lazy load as an environment variable\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eFAKER_LAZY_LOAD = 1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWe hope you get to see the improvement by enabling it. Please file a bug report for any issues!\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jeremyevans\"\u003e\u003ccode\u003e@​jeremyevans\u003c/code\u003e\u003c/a\u003e for the mentoring, and to \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e for pairing and code reviews.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.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/faker-ruby/faker/blob/main/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.8.0\"\u003ev3.8.0\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Lazy loading config by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3244\"\u003efaker-ruby/faker#3244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnabling lazy load\u003c/h3\u003e\n\u003cp\u003eThis version introduces lazy loading. It means users will only pay for what they use. Faker \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/experiments/lazy_load.md\"\u003eloads 2x faster\u003c/a\u003e when it's enabled.\u003c/p\u003e\n\u003cp\u003eLazy loading the generators is disabled by default. To enable it, choose one of the configuration options below:\u003c/p\u003e\n\u003ch4\u003e1 - Set lazy load as a Faker Config\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eFaker::Config.lazy_loading = true\u003c/code\u003e\u003c/p\u003e\n\u003ch4\u003e2 - Set lazy load as an environment variable\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eFAKER_LAZY_LOAD = 1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eWe hope you get to see the improvement by enabling it. Please file a bug report for any issues!\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/jeremyevans\"\u003e\u003ccode\u003e@​jeremyevans\u003c/code\u003e\u003c/a\u003e for the mentoring, and to \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e for pairing and code reviews.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\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/faker-ruby/faker/commit/e48d35f4fa0d4bda8257975d9549e4d9422a0ba4\"\u003e\u003ccode\u003ee48d35f\u003c/code\u003e\u003c/a\u003e bump faker to v3.8.0 (\u003ca href=\"https://redirect.github.com/faker-ruby/faker/issues/3245\"\u003e#3245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/faker-ruby/faker/commit/7193b32ef1a6bb1445fbba203996b790d9b7b314\"\u003e\u003ccode\u003e7193b32\u003c/code\u003e\u003c/a\u003e Add Lazy loading config (\u003ca href=\"https://redirect.github.com/faker-ruby/faker/issues/3244\"\u003e#3244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.7.1...v3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.14.1 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `laa_crime_forms_common` from `e94f122` to `41fa1ce`\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/41fa1cec56a56340ed1d011b3c1964f1072cb906\"\u003e\u003ccode\u003e41fa1ce\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/119\"\u003e#119\u003c/a\u003e from ministryofjustice/CRM457-3022-github-security-ba...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/7991d9f65367005ae177c2b6965cada43d5a05cb\"\u003e\u003ccode\u003e7991d9f\u003c/code\u003e\u003c/a\u003e CRM457-3022 added cooldown config for dependabot\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/ac6148ec20983f00aa5c7301781aa63d01df6683\"\u003e\u003ccode\u003eac6148e\u003c/code\u003e\u003c/a\u003e CRM457-3022 added pre-commit hook process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/e76aedc1b2e8a915bb8f154ed3ebe5aceb14cc7a\"\u003e\u003ccode\u003ee76aedc\u003c/code\u003e\u003c/a\u003e CRM457-3022 added SCA - software composition analysis action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/d4e472c1614d1641b63ea143a142204ccf32d837\"\u003e\u003ccode\u003ed4e472c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/114\"\u003e#114\u003c/a\u003e from ministryofjustice/CRM457-2999-github-actions-str...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/5dec183708d41188c5597d930e88a01507bf819f\"\u003e\u003ccode\u003e5dec183\u003c/code\u003e\u003c/a\u003e Update pipeline, pin actions to commit SHAs instead of versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/dd7de8cbe58898fa5ce9f46f033ddcd05095c950\"\u003e\u003ccode\u003edd7de8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/113\"\u003e#113\u003c/a\u003e from ministryofjustice/dependabot/bundler/activesuppo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/d93ab8075c0e5689c21fa58ff9c33244b591eb33\"\u003e\u003ccode\u003ed93ab80\u003c/code\u003e\u003c/a\u003e Bump activesupport from 8.1.1 to 8.1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/b40bb472dbf9690271e988d10ee795f066045b8d\"\u003e\u003ccode\u003eb40bb47\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/laa-crime-forms-common/issues/112\"\u003e#112\u003c/a\u003e from ministryofjustice/dependabot/bundler/json-2.15.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/commit/119dce0ada4068e7cdfda9566f63ecdb53b17a4a\"\u003e\u003ccode\u003e119dce0\u003c/code\u003e\u003c/a\u003e Bump json from 2.15.2 to 2.15.2.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/laa-crime-forms-common/compare/e94f122b9555ec36ffccb300d6cbd53158b23f54...41fa1cec56a56340ed1d011b3c1964f1072cb906\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oauth2` from 2.0.18 to 2.0.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases\"\u003eoauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.19...v2.0.20\"\u003e2.0.20\u003c/a\u003e - 2026-05-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.20\"\u003ev2.0.20\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 99.62% -- 525/527 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth2::VERSION (Traditional Constant Location)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eauth-sanitizer v0.1.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/721\"\u003egh!721\u003c/a\u003e Load \u003ccode\u003eauth-sanitizer\u003c/code\u003e through an internal isolated loader so requiring \u003ccode\u003eoauth2\u003c/code\u003e does not add top-level \u003ccode\u003eAuth\u003c/code\u003e or \u003ccode\u003eAuthSanitizer\u003c/code\u003e constants that may collide with downstream applications by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003eOfficial Discord 👉️ [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]\u003c/p\u003e\n\u003cp\u003eMany paths lead to being a sponsor or a backer of this project. Are you on such a path?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://opencollective.com/ruby-oauth#backer\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/backers/badge.svg?style=flat\" alt=\"OpenCollective Backers\" /\u003e\u003c/a\u003e \u003ca href=\"https://opencollective.com/ruby-oauth#sponsor\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/sponsors/badge.svg?style=flat\" alt=\"OpenCollective Sponsors\" /\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sponsors/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social\u0026amp;logo=github\" alt=\"Sponsor Me on Github\" /\u003e\u003c/a\u003e \u003ca href=\"https://liberapay.com/pboling/donate\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay\u0026amp;color=a51611\u0026amp;style=flat\" alt=\"Liberapay Goal Progress\" /\u003e\u003c/a\u003e [![Donate on PayPal][🖇paypal-img]][🖇paypal]\u003c/p\u003e\n\u003cp\u003e[\u003cimg src=\"https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat\" alt=\"Buy me a coffee\" /\u003e][🖇buyme] \u003ca href=\"https://polar.sh/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/polar-donate-a51611.svg?style=flat\" alt=\"Donate on Polar\" /\u003e\u003c/a\u003e \u003ca href=\"https://ko-fi.com/O5O86SNP4\"\u003e\u003cimg src=\"https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts at ko-fi.com\" /\u003e\u003c/a\u003e \u003ca href=\"https://patreon.com/galtzo\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts using Patreon\" /\u003e\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/blob/main/CHANGELOG.md\"\u003eoauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.20] - 2026-05-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.20][2.0.20t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 99.62% -- 525/527 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth2::VERSION (Traditional Constant Location)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eauth-sanitizer v0.1.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/721\"\u003egh!721\u003c/a\u003e Load \u003ccode\u003eauth-sanitizer\u003c/code\u003e through an internal isolated loader so requiring \u003ccode\u003eoauth2\u003c/code\u003e does not add top-level \u003ccode\u003eAuth\u003c/code\u003e or \u003ccode\u003eAuthSanitizer\u003c/code\u003e constants that may collide with downstream applications by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003ch2\u003e[2.0.19] - 2026-05-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.19][2.0.19t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 515/515 lines in 14 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files\u003c/li\u003e\n\u003cli\u003e89.11% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Add \u003ccode\u003eOAuth2.config[:filtered_label]\u003c/code\u003e to configure the placeholder used for filtered sensitive values in inspected objects and debug logging output by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Add \u003ccode\u003eOAuth2.config[:filtered_debug_keys]\u003c/code\u003e to configure which key names have their values redacted from debug logging output by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Make inspect-time and debug-log filters snapshot their configuration at initialization time rather than tracking later config changes by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[gh!714][gh!714]Refactor sensitive-value filtering to use \u003ccode\u003eauth-sanitizer\u003c/code\u003e while preserving \u003ccode\u003eOAuth2::FilteredAttributes\u003c/code\u003e as a permanent API alias by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove the internal \u003ccode\u003eOAuth2::ThingFilter\u003c/code\u003e and \u003ccode\u003eOAuth2::SanitizedLogger\u003c/code\u003e implementations now provided by \u003ccode\u003eauth-sanitizer\u003c/code\u003e by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Redact sensitive values from debug logging output, including Authorization headers and common token/secret fields in headers, query strings, form bodies, and JSON payloads by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eNOTE: debug logging has always been, and remains, opt-in. It is turned off by default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/e2d509705db6091c8d5f27c31e29c58e39e51c7c\"\u003e\u003ccode\u003ee2d5097\u003c/code\u003e\u003c/a\u003e 🔧 :nocov: for unreachable error states\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/30650b2e1cb743e3263181e8b8a32c57ef33b9fb\"\u003e\u003ccode\u003e30650b2\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/23f2855f1b0053a38b6b5df00c870d83db761c31\"\u003e\u003ccode\u003e23f2855\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/721\"\u003e#721\u003c/a\u003e from ruby-oauth/fix/top-level-namespace-pollution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/5e4c98831ecb68ec446fcc99be0af40e6e68490c\"\u003e\u003ccode\u003e5e4c988\u003c/code\u003e\u003c/a\u003e Fix RuboCop Gradual offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/89397f699bd6903c5ac3a9927d1743984a946dc5\"\u003e\u003ccode\u003e89397f6\u003c/code\u003e\u003c/a\u003e Constrain auth-sanitizer loader lookup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/8e71e19890fe486d7d260eb29ec67eb5ac1e75d0\"\u003e\u003ccode\u003e8e71e19\u003c/code\u003e\u003c/a\u003e 📝 CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/6082a21c5628b270953dc9edb0af57dafb36e194\"\u003e\u003ccode\u003e6082a21\u003c/code\u003e\u003c/a\u003e ⬆️ snaky_hash, faraday-net_http, zeitwerk, bundler-audit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/350da4214e9285fd88e21a9859d049dc8e954a25\"\u003e\u003ccode\u003e350da42\u003c/code\u003e\u003c/a\u003e Avoid auth-sanitizer top-level namespaces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/0bc19030c2226ab16fc237b547e95d90ed8fa2e9\"\u003e\u003ccode\u003e0bc1903\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/719\"\u003e#719\u003c/a\u003e from step-security-bot/chore/GHA-182236-stepsecurity-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/148d716337a530494895091fe3b4359a410212a5\"\u003e\u003ccode\u003e148d716\u003c/code\u003e\u003c/a\u003e Switch pre-commit hook to rubocop_gradual\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.18...v2.0.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `propshaft` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/propshaft/releases\"\u003epropshaft's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd charset=utf-8 to Content-Type for CSS and HTML assets by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/264\"\u003erails/propshaft#264\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/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/propshaft/pull/265\"\u003erails/propshaft#265\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ehttps://github.com/rails/propshaft/compare/v1.3.1...v1.3.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/rails/propshaft/commit/eb5957157c2e59fabff5b15c710826670fd66c27\"\u003e\u003ccode\u003eeb59571\u003c/code\u003e\u003c/a\u003e Bump version for 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/8335366ac8e4bcb71ef169f6465d1575f6fcadca\"\u003e\u003ccode\u003e8335366\u003c/code\u003e\u003c/a\u003e Add charset=utf-8 to Content-Type for CSS and HTML assets (\u003ca href=\"https://redirect.github.com/rails/propshaft/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/67def02992440379f43b821da8df3be6fd881b3b\"\u003e\u003ccode\u003e67def02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/propshaft/issues/265\"\u003e#265\u003c/a\u003e from flavorjones/fix-ci-minitest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/propshaft/commit/2f9965a5d1e47aa052daba4df8768908c2e54821\"\u003e\u003ccode\u003e2f9965a\u003c/code\u003e\u003c/a\u003e Support minitest 6 where possible, pin \u0026lt; 6 elsewhere\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/propshaft/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 8.0.0 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\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/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\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/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/puma/puma/compare/v8.0.0...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.1.2 to 8.1.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix reported thread/memory leak when jobs fail \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7006\"\u003e#7006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsers can limit data displayed on Busy page with the \u003ccode\u003eonly\u003c/code\u003e parameter \u003ccode\u003e/busy?only=(jobs|processes)\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace Rack::Utils usage with standard library APIs\u003c/li\u003e\n\u003cli\u003eSeveral minor fixes from AI scanners.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix sub-second precision when computing the \u003ccode\u003eretry_for\u003c/code\u003e deadline \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7003\"\u003e#7003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIdentify Sidekiq connnections in Redis with \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case where Web UI could show an empty Batch set \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe TTIN signal is undeprecated as the INFO signal is not supported on Linux\u003c/li\u003e\n\u003cli\u003eShow iteration job state on Busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6978\"\u003e#6978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge case leading to duplicate, concurrent execution \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\nIf 2 Capsules process jobs from the same queue, long-running\njobs could run in parallel during process shutdown.\u003c/li\u003e\n\u003cli\u003e[SECURITY] Remove as much YAML usage as possible. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\nLocalization files in \u003ccode\u003eweb/locales\u003c/code\u003e are now manually parsed.\nSidekiq::CLI will now only require YAML if you use a \u003ccode\u003e-C\u003c/code\u003e .yml file.\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/sidekiq/sidekiq/commit/90da768570b8da237566e9002093624a509b304b\"\u003e\u003ccode\u003e90da768\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/94c8888f9b3e9b781a06704b5950e78987902293\"\u003e\u003ccode\u003e94c8888\u003c/code\u003e\u003c/a\u003e update changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/393b56c1849a6f7cab365463a27f325856b6948f\"\u003e\u003ccode\u003e393b56c\u003c/code\u003e\u003c/a\u003e ensure that busy?only parameter survives Live Poll refresh, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6008c4f09ee368de5fcd638cc97c8aaad4d5ed9d\"\u003e\u003ccode\u003e6008c4f\u003c/code\u003e\u003c/a\u003e remove more rack::utils usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/f87657dafa55e6b05431079b24e63a921e7f5023\"\u003e\u003ccode\u003ef87657d\u003c/code\u003e\u003c/a\u003e Rename example erb to follow Herb's filenaming scheme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/7a4302d689c566c79d98050805f0f6edf758749b\"\u003e\u003ccode\u003e7a4302d\u003c/code\u003e\u003c/a\u003e Remove rack::utils usage, use CGI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/88c4d7b1abd30db013999020746d263bf3edc7e8\"\u003e\u003ccode\u003e88c4d7b\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/832b3439a99f14cca9bba6568075f7849cc6bce5\"\u003e\u003ccode\u003e832b343\u003c/code\u003e\u003c/a\u003e Implement  parameter to limit data displayed on Busy page, fixes \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6992\"\u003e#6992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6820de00f387ed57dd8cfaac420e4cc973b679b5\"\u003e\u003ccode\u003e6820de0\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::JobUtil (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6999\"\u003e#6999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/b8393fae0d4b5d72ee2a44fb247ab93ce7975612\"\u003e\u003ccode\u003eb8393fa\u003c/code\u003e\u003c/a\u003e Add unit tests for Sidekiq::Paginator (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/7000\"\u003e#7000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.1.2...v8.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `axe-core-rspec` from 4.11.1 to 4.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dequelabs/axe-core-gems/releases\"\u003eaxe-core-rspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.11.3\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003ea0330b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 4.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\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/dequelabs/axe-core-gems/blob/develop/CHANGELOG.md\"\u003eaxe-core-rspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.2...v4.11.3\"\u003e4.11.3\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003ea0330b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.2\"\u003e4.11.2\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/473\"\u003e#473\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/249537040ad3a335ebfb84cf567b724746404f15\"\u003e2495370\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/dequelabs/axe-core-gems/commit/0fbfe215855653959e66487fbb2d7dfa2c2f3ff6\"\u003e\u003ccode\u003e0fbfe21\u003c/code\u003e\u003c/a\u003e chore: release v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/b45e785233d0bdac230f9dffaec30e60d4adf2ba\"\u003e\u003ccode\u003eb45e785\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/45f30e034cb2f4df9cc859dcda448eebb556edd0\"\u003e\u003ccode\u003e45f30e0\u003c/code\u003e\u003c/a\u003e Merge branch 'release' into release-2026-04-29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a748ba8978dc93e99fc6223cc6d0e454c2e2bfa2\"\u003e\u003ccode\u003ea748ba8\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/a0330b013ec805b423670ef08b939c9785eb6688\"\u003e\u003ccode\u003ea0330b0\u003c/code\u003e\u003c/a\u003e fix: Update axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/62d60478fc3973c639177d04a471efeb54566c65\"\u003e\u003ccode\u003e62d6047\u003c/code\u003e\u003c/a\u003e chore: merge master into develop (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/480\"\u003e#480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/fd8a85c7db631005fa1cb155e002e7a7d73a9bbd\"\u003e\u003ccode\u003efd8a85c\u003c/code\u003e\u003c/a\u003e chore: add create-release workflow (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/61cd3cca5135f73234fc3cfd12ca0a92368ae44c\"\u003e\u003ccode\u003e61cd3cc\u003c/code\u003e\u003c/a\u003e chore: Release 4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/94a90f6c4bd9d23d5ac3ef3de8c7b3b225f0493c\"\u003e\u003ccode\u003e94a90f6\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-gems/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-gems/commit/dd9b9a9755ea0c571af412349d9df4608dbd2c05\"\u003e\u003ccode\u003edd9b9a9\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dequelabs/axe-core-gems/compare/v4.11.1...v4.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop` from 1.86.1 to 1.86.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop/releases\"\u003erubocop's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop v1.86.2\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15075\"\u003e#15075\u003c/a\u003e: Implement true runner parallelism. (\u003ca href=\"https://github.com/tdeo\"\u003e\u003ccode\u003e@​tdeo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15156\"\u003e#15156\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when chaining \u003ccode\u003efetch\u003c/code\u003e (or \u003ccode\u003e[]\u003c/code\u003e) calls on the same expression. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15161\"\u003e#15161\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ReduceToHash\u003c/code\u003e when nested \u003ccode\u003eeach_with_object\u003c/code\u003e/\u003ccode\u003einject\u003c/code\u003e/\u003ccode\u003ereduce\u003c/code\u003e calls would build hashes. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15144\"\u003e#15144\u003c/a\u003e: Fix an error in \u003ccode\u003eStyle/SoleNestedConditional\u003c/code\u003e when autocorrecting nested conditionals containing comments. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15040\"\u003e#15040\u003c/a\u003e: Exclude \u003ccode\u003econstants\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. (\u003ca href=\"https://github.com/t-daisuke\"\u003e\u003ccode\u003e@​t-daisuke\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15155\"\u003e#15155\u003c/a\u003e: Fix false negatives in \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e when an explicit \u003ccode\u003eself\u003c/code\u003e receiver in one scope matches the LHS of an \u003ccode\u003e||=\u003c/code\u003e, \u003ccode\u003e\u0026amp;\u0026amp;=\u003c/code\u003e, or \u003ccode\u003eop_asgn\u003c/code\u003e in another scope. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15107\"\u003e#15107\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RequireRelativeSelfPath\u003c/code\u003e when a non-\u003ccode\u003e.rb\u003c/code\u003e file uses \u003ccode\u003erequire_relative\u003c/code\u003e with its own basename. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15137\"\u003e#15137\u003c/a\u003e: Fix incorrect \u0026quot;does not support IndentationWidth parameter\u0026quot; warning for \u003ccode\u003eLayout/ClosingParenthesisIndentation\u003c/code\u003e and \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15148\"\u003e#15148\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e bodies. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15147\"\u003e#15147\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in the body of \u003ccode\u003eunless\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15163\"\u003e#15163\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e\\A#\u003c/code\u003e, uses \u003ccode\u003e\\s\u003c/code\u003e metacharacters, or has multiple spaces after \u003ccode\u003e#\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10179\"\u003e#10179\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/DocumentDynamicEvalDefinition\u003c/code\u003e when the heredoc contains an escaped interpolation (\u003ccode\u003e\\#{...}\u003c/code\u003e). (\u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15154\"\u003e#15154\u003c/a\u003e: Fix bug where specifying \u003ccode\u003e--out\u003c/code\u003e disables parallelization. (\u003ca href=\"https://github.com/deivid-rodriguez\"\u003e\u003ccode\u003e@​deivid-rodriguez\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15106\"\u003e#15106\u003c/a\u003e: Fix \u003ccode\u003eTargetFinder\u003c/code\u003e to work correctly inside hidden parent directories. (\u003ca href=\"https://github.com/alpaca-tc\"\u003e\u003ccode\u003e@​alpaca-tc\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15102\"\u003e#15102\u003c/a\u003e: Fix \u003ccode\u003eFrozenError\u003c/code\u003e in \u003ccode\u003eDisabledConfigFormatter\u003c/code\u003e for frozen array config parameters. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15141\"\u003e#15141\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eGemspec/RequireMFA\u003c/code\u003e causing an infinite loop when \u003ccode\u003erubygems_mfa_required\u003c/code\u003e metadata uses a symbol key. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15142\"\u003e#15142\u003c/a\u003e: Fix infinite loop for \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e and offense near heredoc. (\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15054\"\u003e#15054\u003c/a\u003e: Fix false positive for \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a dot-aligned method chain is inside a hash pair value. (\u003ca href=\"https://github.com/nicolas-finary\"\u003e\u003ccode\u003e@​nicolas-finary\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15136\"\u003e#15136\u003c/a\u003e: Fix false positive for \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e when \u003ccode\u003e# rubocop:disable\u003c/code\u003e is wrapped in a \u003ccode\u003e# rubocop:push\u003c/code\u003e / \u003ccode\u003e# rubocop:pop\u003c/code\u003e block. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15115\"\u003e#15115\u003c/a\u003e: Fix an incorrect autocorrect in \u003ccode\u003eStyle/RegexpLiteral\u003c/code\u003e when the regexp contains unbalanced braces that conflict with the preferred \u003ccode\u003e%r\u003c/code\u003e delimiters. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15130\"\u003e#15130\u003c/a\u003e: Fix incorrect autocorrect in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eAutocorrectNotice\u003c/code\u003e lacks a \u003ccode\u003e#\u003c/code\u003e prefix or \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e^#\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14821\"\u003e#14821\u003c/a\u003e: Fix \u003ccode\u003eStyle/IfInsideElse\u003c/code\u003e autocorrect moving comments into the wrong branch when a comment precedes the nested \u003ccode\u003eif\u003c/code\u003e in an \u003ccode\u003eelse\u003c/code\u003e. (\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14583\"\u003e#14583\u003c/a\u003e: Fix template extractor applying only the last fragment's autocorrection. (\u003ca href=\"https://github.com/zeronosu77108\"\u003e\u003ccode\u003e@​zeronosu77108\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14971\"\u003e#14971\u003c/a\u003e: Fix false positive for \u003ccode\u003eStyle/WhileUntilModifier\u003c/code\u003e when the body is a conditional. (\u003ca href=\"https://github.com/fujitanisora\"\u003e\u003ccode\u003e@​fujitanisora\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/rubocop/rubocop/blob/master/CHANGELOG.md\"\u003erubocop's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.86.2 (2026-05-14)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15075\"\u003e#15075\u003c/a\u003e: Implement true runner parallelism. ([\u003ca href=\"https://github.com/tdeo\"\u003e\u003ccode\u003e@​tdeo\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15156\"\u003e#15156\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/HashLookupMethod\u003c/code\u003e when chaining \u003ccode\u003efetch\u003c/code\u003e (or \u003ccode\u003e[]\u003c/code\u003e) calls on the same expression. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15161\"\u003e#15161\u003c/a\u003e: Fix an error for \u003ccode\u003eStyle/ReduceToHash\u003c/code\u003e when nested \u003ccode\u003eeach_with_object\u003c/code\u003e/\u003ccode\u003einject\u003c/code\u003e/\u003ccode\u003ereduce\u003c/code\u003e calls would build hashes. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15144\"\u003e#15144\u003c/a\u003e: Fix an error in \u003ccode\u003eStyle/SoleNestedConditional\u003c/code\u003e when autocorrecting nested conditionals containing comments. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15040\"\u003e#15040\u003c/a\u003e: Exclude \u003ccode\u003econstants\u003c/code\u003e from \u003ccode\u003eStyle/ModuleMemberExistenceCheck\u003c/code\u003e. ([\u003ca href=\"https://github.com/t-daisuke\"\u003e\u003ccode\u003e@​t-daisuke\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15155\"\u003e#15155\u003c/a\u003e: Fix false negatives in \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e when an explicit \u003ccode\u003eself\u003c/code\u003e receiver in one scope matches the LHS of an \u003ccode\u003e||=\u003c/code\u003e, \u003ccode\u003e\u0026amp;\u0026amp;=\u003c/code\u003e, or \u003ccode\u003eop_asgn\u003c/code\u003e in another scope. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15107\"\u003e#15107\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RequireRelativeSelfPath\u003c/code\u003e when a non-\u003ccode\u003e.rb\u003c/code\u003e file uses \u003ccode\u003erequire_relative\u003c/code\u003e with its own basename. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15137\"\u003e#15137\u003c/a\u003e: Fix incorrect \u0026quot;does not support IndentationWidth parameter\u0026quot; warning for \u003ccode\u003eLayout/ClosingParenthesisIndentation\u003c/code\u003e and \u003ccode\u003eLayout/CommentIndentation\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15148\"\u003e#15148\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in \u003ccode\u003erescue\u003c/code\u003e or \u003ccode\u003eensure\u003c/code\u003e bodies. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15147\"\u003e#15147\u003c/a\u003e: Fix false positives in \u003ccode\u003eLint/RedundantSafeNavigation\u003c/code\u003e when safe navigation appears in the body of \u003ccode\u003eunless\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15163\"\u003e#15163\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e\\A#\u003c/code\u003e, uses \u003ccode\u003e\\s\u003c/code\u003e metacharacters, or has multiple spaces after \u003ccode\u003e#\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/10179\"\u003e#10179\u003c/a\u003e: Fix false positives in \u003ccode\u003eStyle/DocumentDynamicEvalDefinition\u003c/code\u003e when the heredoc contains an escaped interpolation (\u003ccode\u003e\\#{...}\u003c/code\u003e). ([\u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15154\"\u003e#15154\u003c/a\u003e: Fix bug where specifying \u003ccode\u003e--out\u003c/code\u003e disables parallelization. ([\u003ca href=\"https://github.com/deivid-rodriguez\"\u003e\u003ccode\u003e@​deivid-rodriguez\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15106\"\u003e#15106\u003c/a\u003e: Fix \u003ccode\u003eTargetFinder\u003c/code\u003e to work correctly inside hidden parent directories. ([\u003ca href=\"https://github.com/alpaca-tc\"\u003e\u003ccode\u003e@​alpaca-tc\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15102\"\u003e#15102\u003c/a\u003e: Fix \u003ccode\u003eFrozenError\u003c/code\u003e in \u003ccode\u003eDisabledConfigFormatter\u003c/code\u003e for frozen array config parameters. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15141\"\u003e#15141\u003c/a\u003e: Fix incorrect autocorrect for \u003ccode\u003eGemspec/RequireMFA\u003c/code\u003e causing an infinite loop when \u003ccode\u003erubygems_mfa_required\u003c/code\u003e metadata uses a symbol key. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15142\"\u003e#15142\u003c/a\u003e: Fix infinite loop for \u003ccode\u003e--disable-uncorrectable\u003c/code\u003e and offense near heredoc. ([\u003ca href=\"https://github.com/jonas054\"\u003e\u003ccode\u003e@​jonas054\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15054\"\u003e#15054\u003c/a\u003e: Fix false positive for \u003ccode\u003eLayout/MultilineMethodCallIndentation\u003c/code\u003e when a dot-aligned method chain is inside a hash pair value. ([\u003ca href=\"https://github.com/nicolas-finary\"\u003e\u003ccode\u003e@​nicolas-finary\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15136\"\u003e#15136\u003c/a\u003e: Fix false positive for \u003ccode\u003eLint/MissingCopEnableDirective\u003c/code\u003e when \u003ccode\u003e# rubocop:disable\u003c/code\u003e is wrapped in a \u003ccode\u003e# rubocop:push\u003c/code\u003e / \u003ccode\u003e# rubocop:pop\u003c/code\u003e block. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15115\"\u003e#15115\u003c/a\u003e: Fix an incorrect autocorrect in \u003ccode\u003eStyle/RegexpLiteral\u003c/code\u003e when the regexp contains unbalanced braces that conflict with the preferred \u003ccode\u003e%r\u003c/code\u003e delimiters. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15130\"\u003e#15130\u003c/a\u003e: Fix incorrect autocorrect in \u003ccode\u003eStyle/Copyright\u003c/code\u003e when \u003ccode\u003eAutocorrectNotice\u003c/code\u003e lacks a \u003ccode\u003e#\u003c/code\u003e prefix or \u003ccode\u003eNotice\u003c/code\u003e pattern starts with \u003ccode\u003e^#\u003c/code\u003e. ([\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14821\"\u003e#14821\u003c/a\u003e: Fix \u003ccode\u003eStyle/IfInsideElse\u003c/code\u003e autocorrect moving comments into the wrong branch when a comment precedes the nested \u003ccode\u003eif\u003c/code\u003e in an \u003ccode\u003eelse\u003c/code\u003e. ([\u003ca href=\"https://github.com/hammadxcm\"\u003e\u003ccode\u003e@​hammadxcm\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14583\"\u003e#14583\u003c/a\u003e: Fix template extractor applying only the last fragment's autocorrection. ([\u003ca href=\"https://github.com/zeronosu77108\"\u003e\u003ccode\u003e@​zeronosu77108\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/14971\"\u003e#14971\u003c/a\u003e: Fix false positive for \u003ccode\u003eStyle/WhileUntilModifier\u003c/code\u003e when the body is a conditional. ([\u003ca href=\"https://github.com/fujitanisora\"\u003e\u003ccode\u003e@​fujitanisora\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/rubocop/rubocop/commit/e513d333754b242c5b530192be0239638055acaf\"\u003e\u003ccode\u003ee513d33\u003c/code\u003e\u003c/a\u003e Cut 1.86.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/5fea1b52a1e4cbd2da0a071a1e3456de0a69141c\"\u003e\u003ccode\u003e5fea1b5\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2a3dfcd230ecd97824c9f10d995a471449cba8a9\"\u003e\u003ccode\u003e2a3dfcd\u003c/code\u003e\u003c/a\u003e Don't use Registry#to_h\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/836b2751937092f20940fc20cf01e60c16fb4a05\"\u003e\u003ccode\u003e836b275\u003c/code\u003e\u003c/a\u003e Simplify registry internals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/90348d5c70e3986d51dc4943615a0a846b6d260c\"\u003e\u003ccode\u003e90348d5\u003c/code\u003e\u003c/a\u003e Fix false positives in \u003ccode\u003eStyle/Copyright\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/7419163797ba5908ce0fd4cd6a0a47eaf005e632\"\u003e\u003ccode\u003e7419163\u003c/code\u003e\u003c/a\u003e Fix extension suggestion documentation link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/e4673357d34fad1f10e8f84e0dbcb9a19d34e331\"\u003e\u003ccode\u003ee467335\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15161\"\u003e#15161\u003c/a\u003e from koic/fix_an_error_for_style_reduce_to_hash.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/bd48b6b2b2c58ec1195780ec1c25fc75dd855a85\"\u003e\u003ccode\u003ebd48b6b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15160\"\u003e#15160\u003c/a\u003e from lovro-bikic/autoload-mixins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b9cda613a6194dbbf146c999c03fbaee7b0a2178\"\u003e\u003ccode\u003eb9cda61\u003c/code\u003e\u003c/a\u003e Autoload mixins instead of requiring them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/55a827814ae5ab00d2d4bb6810a9bb6c651da471\"\u003e\u003ccode\u003e55a8278\u003c/code\u003e\u003c/a\u003e Fix an error for \u003ccode\u003eStyle/ReduceToHash\u003c/code\u003e cop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.86.1...v1.86.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rubocop-rails` from 2.34.3 to 2.35.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubocop/rubocop-rails/releases\"\u003erubocop-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuboCop Rails v2.35.3\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1630\"\u003e#1630\u003c/a\u003e: Fix a false positive in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when negating \u003ccode\u003eparams[:key]\u003c/code\u003e with \u003ccode\u003e!\u003c/code\u003e, such as \u003ccode\u003e!params[:key]\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1629\"\u003e#1629\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using the safe navigation operator (\u003ccode\u003e\u0026amp;.\u003c/code\u003e) on \u003ccode\u003eparams[:key]\u003c/code\u003e. Autocorrecting \u003ccode\u003eparams[:key]\u0026amp;.downcase\u003c/code\u003e to \u003ccode\u003eparams.expect(:key).downcase\u003c/code\u003e silently changes behavior — a missing param goes from returning \u003ccode\u003enil\u003c/code\u003e to raising \u003ccode\u003eActionController::ParameterMissing\u003c/code\u003e. (\u003ca href=\"https://github.com/lucasmazza\"\u003e\u003ccode\u003e@​lucasmazza\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1625\"\u003e#1625\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using collection methods (such as \u003ccode\u003edelete\u003c/code\u003e, \u003ccode\u003ekeys\u003c/code\u003e, \u003ccode\u003emerge\u003c/code\u003e, \u003ccode\u003eslice\u003c/code\u003e, \u003ccode\u003edig\u003c/code\u003e, \u003ccode\u003efetch\u003c/code\u003e, or \u003ccode\u003etransform_values\u003c/code\u003e) on \u003ccode\u003eparams[:key]\u003c/code\u003e, as well as block-style calls such as \u003ccode\u003eparams[:key].each { ... }\u003c/code\u003e or \u003ccode\u003eparams[:key].map(\u0026amp;:to_s)\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1627\"\u003e#1627\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e for usages like \u003ccode\u003eparams[:key].try(:method)\u003c/code\u003e and \u003ccode\u003eparams[:key].try!(:method)\u003c/code\u003e. (\u003ca href=\"https://github.com/nicholasdower\"\u003e\u003ccode\u003e@​nicholasdower\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.1\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1616\"\u003e#1616\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using nil-safe conversion methods such as \u003ccode\u003eto_i\u003c/code\u003e, \u003ccode\u003eto_s\u003c/code\u003e, \u003ccode\u003eto_a\u003c/code\u003e, \u003ccode\u003eto_f\u003c/code\u003e, and \u003ccode\u003eto_h\u003c/code\u003e on \u003ccode\u003eparams[:key]\u003c/code\u003e. (\u003ca href=\"https://github.com/koic\"\u003e\u003ccode\u003e@​koic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1622\"\u003e#1622\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using key-c...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-assess-crime-forms/pull/1242","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-assess-crime-forms/issues/1242","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1242/packages"}},{"old_version":"2.14.1","new_version":"2.15.1","update_type":"minor","path":null,"pr_created_at":"2026-05-27T16:11:54.000Z","version_change":"2.14.1 → 2.15.1","issue":{"uuid":"4533880448","node_id":"PR_kwDOSPlnyM7f5ik6","number":10,"state":"closed","title":"build(deps): bump jbuilder from 2.14.1 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-11T13:24:00.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-27T16:11:54.000Z","updated_at":"2026-09-11T13:24:02.000Z","time_to_close":9234726,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.14.1 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\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/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.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/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.14.1\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR 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\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/kswkrmmr/tokubank-app/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kswkrmmr%2Ftokubank-app/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"2.15.0","new_version":"2.15.1","update_type":"patch","path":null,"pr_created_at":"2026-05-27T05:28:53.000Z","version_change":"2.15.0 → 2.15.1","issue":{"uuid":"4529772235","node_id":"PR_kwDOPwphEs7fsGu9","number":2293,"state":"open","title":"chore(deps): bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-27T05:28:53.000Z","updated_at":"2026-05-27T05:29:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/hackclub/flavortown/pull/2293","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fflavortown/issues/2293","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2293/packages"}},{"old_version":"2.15.0","new_version":"2.15.1","update_type":"patch","path":null,"pr_created_at":"2026-05-27T05:03:31.000Z","version_change":"2.15.0 → 2.15.1","issue":{"uuid":"4529664032","node_id":"PR_kwDOOqvUmc7frxM7","number":566,"state":"open","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-27T05:03:31.000Z","updated_at":"2026-05-27T05:07:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ethanliu24/beatstore/pull/566","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethanliu24%2Fbeatstore/issues/566","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/566/packages"}},{"old_version":"2.15.0","new_version":"2.15.1","update_type":"patch","path":null,"pr_created_at":"2026-05-27T00:58:24.000Z","version_change":"2.15.0 → 2.15.1","issue":{"uuid":"4528594669","node_id":"PR_kwDOGldeHc7foYGi","number":965,"state":"closed","title":"Bump jbuilder from 2.15.0 to 2.15.1","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-27T06:12:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-27T00:58:24.000Z","updated_at":"2026-05-27T06:12:37.000Z","time_to_close":18851,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"jbuilder","old_version":"2.15.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.15.0 to 2.15.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\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/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jbuilder\u0026package-manager=bundler\u0026previous-version=2.15.0\u0026new-version=2.15.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ecosyste-ms/timeline/pull/965","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecosyste-ms%2Ftimeline/issues/965","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/965/packages"}}]}