{"id":5725,"name":"view_component","ecosystem":"rubygems","repository_url":"https://github.com/viewcomponent/view_component","issues_count":1310,"created_at":"2025-06-06T21:06:28.686Z","updated_at":"2025-06-06T21:06:28.686Z","purl":"pkg:gem/view_component","metadata":{"id":325313,"name":"view_component","ecosystem":"rubygems","description":"A framework for building reusable, testable \u0026 encapsulated view components in Ruby on Rails.","homepage":"https://viewcomponent.org","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/viewcomponent/view_component","keywords_array":[],"namespace":null,"versions_count":150,"first_release_published_at":"2020-03-20T19:18:12.406Z","latest_release_published_at":"2025-05-23T18:33:18.222Z","latest_release_number":"3.23.2","last_synced_at":"2025-06-06T07:01:05.190Z","created_at":"2022-04-06T12:13:27.444Z","updated_at":"2025-06-06T07:01:05.190Z","registry_url":"https://rubygems.org/gems/view_component","install_command":"gem install view_component -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/view_component/","metadata":{"funding":null},"repo_metadata":{"id":37085001,"uuid":"200302808","full_name":"ViewComponent/view_component","owner":"ViewComponent","description":"A framework for building reusable, testable \u0026 encapsulated view components in Ruby on Rails.","archived":false,"fork":false,"pushed_at":"2024-10-29T17:30:40.000Z","size":4015,"stargazers_count":3299,"open_issues_count":75,"forks_count":430,"subscribers_count":166,"default_branch":"main","last_synced_at":"2024-10-29T18:54:58.554Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://viewcomponent.org","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/ViewComponent.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-02T22:02:20.000Z","updated_at":"2024-10-29T17:30:43.000Z","dependencies_parsed_at":"2024-01-08T16:47:54.851Z","dependency_job_id":"f3904dbf-8869-4e33-b4ee-ffe4d0eb33af","html_url":"https://github.com/ViewComponent/view_component","commit_stats":{"total_commits":1811,"total_committers":236,"mean_commits":7.673728813559322,"dds":0.6454997239094423,"last_synced_commit":"c696930250b696fb5528be08edea13a0c78b8325"},"previous_names":["github/view_component"],"tags_count":164,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ViewComponent","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222119790,"owners_count":16934949,"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":"ViewComponent","name":"ViewComponent","uuid":"93401166","kind":"organization","description":"A framework for creating reusable, testable \u0026 encapsulated view components, built to integrate seamlessly with Ruby on Rails.","email":"opensource+view_component@github.com","website":"https://viewcomponent.org","location":null,"twitter":"viewcomponent","company":null,"icon_url":"https://avatars.githubusercontent.com/u/93401166?v=4","repositories_count":5,"last_synced_at":"2023-03-04T04:38:42.553Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ViewComponent","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T09:37:49.731Z","updated_at":"2023-03-04T04:38:42.558Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ViewComponent","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ViewComponent/repositories"},"tags":[{"name":"v3.12.1","sha":"7eac9a74ad76d88b3f963cccec3d29a2020cdc61","kind":"tag","published_at":"2024-04-17T21:27:07.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.12.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.12.1/manifests"},{"name":"v3.12.0","sha":"19df77c87bab289d862225b29cce600fb13eaffc","kind":"tag","published_at":"2024-04-12T23:03:33.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.12.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.12.0/manifests"},{"name":"v3.11.0","sha":"394692b4214c1b242699e91ab5a573912b35d5ee","kind":"tag","published_at":"2024-02-21T19:07:24.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.11.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.11.0/manifests"},{"name":"v3.10.0","sha":"591977dd450f5de788fb1e8ed254a08b56b6abbd","kind":"tag","published_at":"2024-01-09T18:00:35.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.10.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.10.0/manifests"},{"name":"v2.83.0","sha":"ab407af583fe9221931431ef3d575850b9e88008","kind":"tag","published_at":"2024-01-08T22:40:16.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.83.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.83.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.83.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.83.0/manifests"},{"name":"v3.9.0","sha":"c8462c2113ca1771b681fc89eb025d8e8b685727","kind":"tag","published_at":"2024-01-04T19:39:37.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.9.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.9.0/manifests"},{"name":"v3.8.0","sha":"ab99379aff5bce602c9086e9b47a4d7f39b82a8a","kind":"tag","published_at":"2023-11-27T21:11:31.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.8.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.8.0/manifests"},{"name":"v3.7.0","sha":"9f61796a47c9dbddf4c93f9f0c461c776647fa44","kind":"tag","published_at":"2023-10-30T18:15:39.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.7.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.7.0/manifests"},{"name":"v3.6.0","sha":"8ae53607d24991ff6056d4001651b92da0b25ec7","kind":"tag","published_at":"2023-09-14T23:08:21.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.6.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.6.0/manifests"},{"name":"v3.5.0","sha":"3487283035bbcb868e46f93fcfb6abadfeed650a","kind":"tag","published_at":"2023-07-24T20:49:56.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.5.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.5.0/manifests"},{"name":"v3.4.0","sha":"27f444d72e5a0f96a9386583414a076ff71b1f0c","kind":"tag","published_at":"2023-07-11T21:10:03.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.4.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.4.0/manifests"},{"name":"v3.3.0","sha":"a35641ef4f82a8fd10e4669c8afef901e5bcadce","kind":"tag","published_at":"2023-06-26T18:14:44.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.3.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.3.0/manifests"},{"name":"v3.2.0","sha":"72b4f7de53d0834f5b9bf1ee83bee5ff79e2a09b","kind":"tag","published_at":"2023-06-12T18:38:32.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.2.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.2.0/manifests"},{"name":"v3.1.0","sha":"904c4803a9837a4f9559bc90adf1fb44c33fd411","kind":"tag","published_at":"2023-05-31T23:11:56.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.1.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.1.0/manifests"},{"name":"v3.0.0","sha":"c696930250b696fb5528be08edea13a0c78b8325","kind":"tag","published_at":"2023-04-24T11:09:24.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.0.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0/manifests"},{"name":"v3.0.0.rc6","sha":"bf670ffe95212b4c00f72d37644f89a464b24944","kind":"tag","published_at":"2023-04-12T14:43:17.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.0.0.rc6","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.0.0.rc6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc6/manifests"},{"name":"v3.0.0.rc5","sha":"0bc531333b5f310ed6607b6d9c8309bd3c751281","kind":"tag","published_at":"2023-03-16T22:09:02.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.0.0.rc5","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.0.0.rc5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc5/manifests"},{"name":"v3.0.0.rc4","sha":"b17504c99427ae48d205c2347a2d4574403318e9","kind":"tag","published_at":"2023-03-09T16:59:12.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.0.0.rc4","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.0.0.rc4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc4/manifests"},{"name":"v3.0.0.rc3","sha":"2718ff16fa5a83cb75282055afe3121434f0ea1d","kind":"tag","published_at":"2023-03-08T21:37:36.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.0.0.rc3","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.0.0.rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc3/manifests"},{"name":"v3.0.0.rc2","sha":"1b492516c2e376eb4f6bd81705541327848047d3","kind":"tag","published_at":"2023-02-17T20:01:33.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.0.0.rc2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.0.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc2/manifests"},{"name":"v3.0.0.rc1","sha":"05c4b3abdc29d43b6beb8d857bdb1921a9aece3d","kind":"tag","published_at":"2023-01-17T21:24:06.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v3.0.0.rc1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v3.0.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v3.0.0.rc1/manifests"},{"name":"v2.82.0","sha":"6c8d2ad8cb6bd40f542ec0719928bcb4941e70be","kind":"tag","published_at":"2023-01-11T23:51:40.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.82.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.82.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.82.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.82.0/manifests"},{"name":"v2.81.0","sha":"306be44f71d6423e2d9ca508fda4db1e325304c7","kind":"tag","published_at":"2023-01-10T19:40:15.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.81.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.81.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.81.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.81.0/manifests"},{"name":"v2.80.0","sha":"b0e4f769888b16f46a6f2bd10d0dde7f56ab77e5","kind":"tag","published_at":"2022-12-21T22:46:35.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.80.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.80.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.80.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.80.0/manifests"},{"name":"v2.79.0","sha":"c182916f422816d80f7436d10c601c99ac035f25","kind":"tag","published_at":"2022-12-12T22:58:38.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.79.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.79.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.79.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.79.0/manifests"},{"name":"v2.78.0","sha":"c9b7d36e5dd2a043b20756cf5a6bdef3d3463902","kind":"tag","published_at":"2022-11-28T18:17:38.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.78.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.78.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.78.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.78.0/manifests"},{"name":"v2.77.0","sha":"e1b9b47f621893b247a3a034b2b7bbc21bf24e9a","kind":"tag","published_at":"2022-11-21T21:34:47.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.77.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.77.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.77.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.77.0/manifests"},{"name":"v2.76.0","sha":"3a619417dd8d7366ae16c84c6a22dd762a86a6f5","kind":"tag","published_at":"2022-11-16T21:09:18.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.76.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.76.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.76.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.76.0/manifests"},{"name":"v2.75.0","sha":"e294f60c79d58ad9a10fec036cbb54729cbf3f97","kind":"tag","published_at":"2022-11-02T21:26:06.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.75.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.75.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.75.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.75.0/manifests"},{"name":"v2.74.1","sha":"7d1b3448e6b77a1d89b73a579bc34cd4fae69dfa","kind":"tag","published_at":"2022-10-10T21:27:30.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.74.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.74.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.74.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.74.1/manifests"},{"name":"v2.74.0","sha":"74c03517ef342ad68b5bafb1d30f6ce9c44c8ef8","kind":"tag","published_at":"2022-09-28T16:53:19.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.74.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.74.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.74.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.74.0/manifests"},{"name":"show","sha":"74c03517ef342ad68b5bafb1d30f6ce9c44c8ef8","kind":"tag","published_at":"2022-09-28T16:53:19.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/show","html_url":"https://github.com/ViewComponent/view_component/releases/tag/show","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/show","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/show/manifests"},{"name":"v2.73.0","sha":"e34f08498e2d5dce8ac036decf1e719443ceb396","kind":"tag","published_at":"2022-09-27T19:25:33.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.73.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.73.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.73.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.73.0/manifests"},{"name":"v2.72.0","sha":"e8365e52c3cf7c84d896eb969e39d1854a27c413","kind":"tag","published_at":"2022-09-14T17:43:39.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.72.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.72.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.72.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.72.0/manifests"},{"name":"v2.71.0","sha":"eb94e75c4a59d1406f9d5af2e8784fcdf171baac","kind":"tag","published_at":"2022-08-31T17:51:24.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.71.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.71.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.71.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.71.0/manifests"},{"name":"v2.70.0","sha":"978e1dc9b6bf6dc3ee2246dd0b5bea46638a6218","kind":"tag","published_at":"2022-08-29T17:02:05.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.70.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.70.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.70.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.70.0/manifests"},{"name":"v2.69.0","sha":"6dd9ac9ac789eaff6cfecfafbffb81c073e2355b","kind":"tag","published_at":"2022-08-17T18:45:33.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.69.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.69.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.69.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.69.0/manifests"},{"name":"v2.68.0","sha":"a4bc4e06d7e9b3327951b606c7608cfb5881def9","kind":"tag","published_at":"2022-08-15T22:47:04.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.68.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.68.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.68.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.68.0/manifests"},{"name":"v2.67.0","sha":"8e51b73bbfcfc89357b8f700728109c779360d03","kind":"tag","published_at":"2022-08-15T17:28:39.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.67.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.67.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.67.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.67.0/manifests"},{"name":"v2.66.0","sha":"7f4ea54a7b7e7c8edbcdfb5c6fbdf1f18e70ebda","kind":"tag","published_at":"2022-08-09T13:49:36.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.66.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.66.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.66.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.66.0/manifests"},{"name":"v2.65.0","sha":"8ed02f923b2c9651ae16cf83f902976caa90e9ae","kind":"tag","published_at":"2022-08-09T13:24:53.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.65.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.65.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.65.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.65.0/manifests"},{"name":"v2.64.0","sha":"b8febaf355810746c359250b301afd0f96e3bebe","kind":"tag","published_at":"2022-08-03T12:34:00.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.64.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.64.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.64.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.64.0/manifests"},{"name":"v2.63.0","sha":"18dd241327b6a6947eb14e8753006af45c741fdd","kind":"tag","published_at":"2022-08-01T19:47:02.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.63.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.63.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.63.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.63.0/manifests"},{"name":"v2.62.0","sha":"2cb49f11bf7600992a92fcc3a54e320a5514cd3d","kind":"tag","published_at":"2022-07-25T18:52:58.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.62.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.62.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.62.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.62.0/manifests"},{"name":"v2.61.1","sha":"b626eca9d7685191420c6f863be0fa966cf63b14","kind":"tag","published_at":"2022-07-21T16:50:23.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.61.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.61.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.61.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.61.1/manifests"},{"name":"v2.61.0","sha":"515f6bb316d848704fdaac529cc098fdc721f4ae","kind":"tag","published_at":"2022-07-18T18:43:08.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.61.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.61.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.61.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.61.0/manifests"},{"name":"v2.60.0","sha":"2bc8928e794946921510eca59395ea36844f1d70","kind":"commit","published_at":"2022-07-18T16:58:55.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.60.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.60.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.60.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.60.0/manifests"},{"name":"v2.59.0","sha":"34351b2ab2bb4cc1b21588c6507263db750ffaa8","kind":"commit","published_at":"2022-07-13T21:38:55.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.59.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.59.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.59.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.59.0/manifests"},{"name":"v2.58.0","sha":"8f32b890ad8395d45247202df6923f7ad3ae7bc3","kind":"commit","published_at":"2022-07-13T19:17:23.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.58.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.58.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.58.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.58.0/manifests"},{"name":"v2.57.1","sha":"b81584b9d44ab076a1a31d8f9014c1e0bfa1c1a5","kind":"commit","published_at":"2022-06-15T22:31:12.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.57.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.57.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.57.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.57.1/manifests"},{"name":"v2.57.0","sha":"3e54e2d1fd5e70ef7070d17d36e45b4820c2d7a8","kind":"commit","published_at":"2022-06-10T20:40:02.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.57.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.57.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.57.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.57.0/manifests"},{"name":"v2.56.2","sha":"cd029f7365e1911e963fdd87f5c652f3f04e992c","kind":"tag","published_at":"2022-06-02T21:53:52.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.56.2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.56.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.56.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.56.2/manifests"},{"name":"v2.56.1","sha":"ca42e0590adebd894ed59451e2d8703004bcd8ea","kind":"tag","published_at":"2022-06-01T12:20:40.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.56.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.56.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.56.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.56.1/manifests"},{"name":"v2.56.0","sha":"0b55bb7e2c17ecb075789b14fe1a336bd8168344","kind":"tag","published_at":"2022-05-31T21:09:18.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.56.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.56.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.56.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.56.0/manifests"},{"name":"v2.55.0","sha":"1ada27f39403aeb20b6a38994ea8c4a018b6c90d","kind":"tag","published_at":"2022-05-13T12:42:25.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.55.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.55.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.55.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.55.0/manifests"},{"name":"v2.54.1","sha":"ec5a524906bc384f9b3204f7ca5ad750e88464c1","kind":"tag","published_at":"2022-05-11T17:01:41.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.54.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.54.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.54.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.54.1/manifests"},{"name":"v2.54.0","sha":"dcd84fd584b8e62eed8740eee36058c7cac6d4a0","kind":"tag","published_at":"2022-05-10T17:08:44.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.54.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.54.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.54.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.54.0/manifests"},{"name":"v2.53.0","sha":"e797dc06773803d1c48383372ed3942851b7cf46","kind":"tag","published_at":"2022-04-20T19:39:09.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.53.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.53.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.53.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.53.0/manifests"},{"name":"v2.52.0","sha":"008ac0df848a9c1231518dc2f00fc87b69868971","kind":"tag","published_at":"2022-03-25T18:11:05.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.52.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.52.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.52.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.52.0/manifests"},{"name":"v2.51.0","sha":"3a6a957f12aa8bac50b28f08a6760f41edada926","kind":"commit","published_at":"2022-03-19T16:11:42.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.51.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.51.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.51.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.51.0/manifests"},{"name":"v2.50.0","sha":"9ca762fab65eaf993c13abc459cb607b62c1a103","kind":"commit","published_at":"2022-03-10T15:42:20.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.50.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.50.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.50.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.50.0/manifests"},{"name":"v2.31.2","sha":"e3f065e3c8d47c73d98700040c0efdf4370181ad","kind":"tag","published_at":"2022-03-02T22:13:17.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.31.2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.31.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.31.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.31.2/manifests"},{"name":"v2.49.1","sha":"b8a5f4a97f78d60293f57aa12765a0f0007247d4","kind":"tag","published_at":"2022-03-02T21:22:00.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.49.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.49.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.49.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.49.1/manifests"},{"name":"v2.49.0","sha":"d4678fda2079c987136524fb9cf3b6be60b95bdd","kind":"commit","published_at":"2022-02-11T00:11:11.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.49.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.49.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.49.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.49.0/manifests"},{"name":"v2.48.0","sha":"e702e602773b760774eb3a64022f1bc841796f3e","kind":"tag","published_at":"2022-01-14T21:04:05.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.48.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.48.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.48.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.48.0/manifests"},{"name":"v2.47.0","sha":"d7bf301fe90d169bc2ff96dff7dd4dbc5454398a","kind":"tag","published_at":"2021-12-20T22:08:20.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.47.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.47.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.47.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.47.0/manifests"},{"name":"v2.46.0","sha":"cb5b2da1be2ad73d7ebd828bfbd016acd09c9f58","kind":"tag","published_at":"2021-12-03T16:03:21.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.46.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.46.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.46.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.46.0/manifests"},{"name":"v2.45.0","sha":"da341f82a18f48d252a0fedcd1b8310f05ad5c75","kind":"tag","published_at":"2021-11-23T22:51:15.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.45.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.45.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.45.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.45.0/manifests"},{"name":"v2.44.0","sha":"f147adcf7ec96f6327a36781c813f2087995440e","kind":"tag","published_at":"2021-11-18T22:58:46.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.44.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.44.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.44.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.44.0/manifests"},{"name":"v2.43.1","sha":"6355a07d6ed496252f7a11d71f52bb52588b803f","kind":"tag","published_at":"2021-11-09T21:58:20.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.43.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.43.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.43.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.43.1/manifests"},{"name":"v2.43.0","sha":"149f3eeb62f8f848dbb77ff5913189859704bbbe","kind":"tag","published_at":"2021-11-07T19:46:02.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.43.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.43.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.43.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.43.0/manifests"},{"name":"v2.42.0","sha":"e87def6d1065ad44ff9e34be57d16c1db9d5c517","kind":"tag","published_at":"2021-10-27T21:49:23.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.42.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.42.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.42.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.42.0/manifests"},{"name":"v2.41.0","sha":"c35300b1f608448028572a1a2e9d75166deb9926","kind":"tag","published_at":"2021-10-21T18:24:37.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.41.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.41.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.41.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.41.0/manifests"},{"name":"v2.40.0","sha":"551a51937a19bc54b8871ef507f0d6dbaeec3e0f","kind":"tag","published_at":"2021-09-09T16:16:01.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.40.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.40.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.40.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.40.0/manifests"},{"name":"v2.39.0","sha":"1c2cf9ca56bf3354db698d3032cd843e23b96671","kind":"tag","published_at":"2021-08-31T19:42:49.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.39.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.39.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.39.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.39.0/manifests"},{"name":"v2.38.0","sha":"a1e1ffeb7f1e77a24dad078d754c70b9b234b577","kind":"tag","published_at":"2021-08-12T21:53:03.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.38.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.38.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.38.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.38.0/manifests"},{"name":"v2.37.0","sha":"bf134e8ddeabfeb07a23c957760cbc97245860fc","kind":"commit","published_at":"2021-08-09T21:34:11.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.37.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.37.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.37.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.37.0/manifests"},{"name":"v2.36.0","sha":"e1c2217c9317bfcf3b3b2629a85b96b3719236bb","kind":"tag","published_at":"2021-07-28T17:57:33.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.36.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.36.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.36.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.36.0/manifests"},{"name":"v2.35.0","sha":"3a6a2d7f07d1941a4362cc4c7b25e920518f8899","kind":"tag","published_at":"2021-07-02T21:21:08.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.35.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.35.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.35.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.35.0/manifests"},{"name":"v2.34.0","sha":"460d7431e321bbb9694bc007a6a567c6ba4778ff","kind":"tag","published_at":"2021-06-09T23:04:45.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.34.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.34.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.34.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.34.0/manifests"},{"name":"v2.33.0","sha":"8db6f29a9b60893b0016a30023fc9627f1f6f434","kind":"tag","published_at":"2021-06-02T21:58:40.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.33.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.33.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.33.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.33.0/manifests"},{"name":"v2.32.0","sha":"b436bd26989a82ced092f72e203e62dc9d8f1dbd","kind":"tag","published_at":"2021-05-21T18:40:19.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.32.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.32.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.32.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.32.0/manifests"},{"name":"v2.31.1","sha":"5be9d671b3c7fb94e9b876cb1548197eb8ff2f2e","kind":"tag","published_at":"2021-04-27T21:28:48.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.31.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.31.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.31.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.31.1/manifests"},{"name":"v2.31.0","sha":"73051f692acfcbe8f3535ef4952e1c1df2d86887","kind":"tag","published_at":"2021-04-26T18:04:18.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.31.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.31.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.31.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.31.0/manifests"},{"name":"v2.30.0","sha":"50133d1808c5af0878cbf1ac9d8c917ab28cf58f","kind":"tag","published_at":"2021-04-02T20:15:14.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.30.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.30.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.30.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.30.0/manifests"},{"name":"v2.29.0","sha":"36f4ecb77fba0794c0440c4b4445d3b7b9c6e091","kind":"commit","published_at":"2021-04-02T18:43:43.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.29.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.29.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.29.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.29.0/manifests"},{"name":"v2.28.0","sha":"9f813e8cffcfa3a35281444ba93d2cc349fd20b1","kind":"tag","published_at":"2021-03-16T15:47:42.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.28.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.28.0/manifests"},{"name":"v2.27.0","sha":"c44f9402c780b148cf4fc49d1899a2ec8fd20bcf","kind":"tag","published_at":"2021-03-08T19:53:00.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.27.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.27.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.27.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.27.0/manifests"},{"name":"v2.26.1","sha":"ef5a5f0132479fd71044cda9cfd39fa01e71af25","kind":"tag","published_at":"2021-02-23T21:27:22.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.26.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.26.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.26.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.26.1/manifests"},{"name":"v2.26.0","sha":"a855b96cccff379ac6d6a8af4267161f48cdff1a","kind":"tag","published_at":"2021-02-22T22:10:13.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.26.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.26.0/manifests"},{"name":"v2.25.1","sha":"a3d625d304d74724fff235d94968fcce835a5905","kind":"tag","published_at":"2021-02-01T20:38:59.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.25.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.25.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.25.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.25.1/manifests"},{"name":"v2.25.0","sha":"8fe930197dc163f9cba3761219e6f3161763a187","kind":"commit","published_at":"2021-01-25T21:56:38.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.25.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.25.0/manifests"},{"name":"v2.24.0","sha":"527e0e1cf07d427378239968d5a35401cdc5fc2b","kind":"commit","published_at":"2020-12-23T21:07:44.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.24.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.24.0/manifests"},{"name":"v2.23.2","sha":"0bce19f922cac4536bfaf4c9040d32e5f869ad87","kind":"commit","published_at":"2020-12-15T18:00:43.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.23.2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.23.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.23.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.23.2/manifests"},{"name":"v2.23.1","sha":"274fab02803b814974d777531114ec5209c6759f","kind":"commit","published_at":"2020-12-10T16:42:47.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.23.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.23.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.23.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.23.1/manifests"},{"name":"2.23.0","sha":"9a1a68c4513cfc1dc5e188f49446465530a77182","kind":"commit","published_at":"2020-12-09T22:02:31.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/2.23.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/2.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/2.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/2.23.0/manifests"},{"name":"v2.22.1","sha":"6cbe5c10d1af723de928c9afbf7bfe55ff689889","kind":"commit","published_at":"2020-11-10T14:55:10.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.22.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.22.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.22.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.22.1/manifests"},{"name":"v2.22.0","sha":"baed5e941d0bb96703f285a9b45bc1f207bcf5a4","kind":"commit","published_at":"2020-11-09T23:09:06.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.22.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.22.0/manifests"},{"name":"v2.21.0","sha":"b30c35c776e355e92db667617716fe9975408029","kind":"commit","published_at":"2020-10-26T22:09:15.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.21.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.21.0/manifests"},{"name":"v2.20.0","sha":"57dc526942ef84e922ab3ff4151cb3a950d06777","kind":"commit","published_at":"2020-10-19T18:47:37.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.20.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.20.0/manifests"},{"name":"v2.19.1","sha":"931551d467f48934e2cff1364aad0ae34c48729b","kind":"commit","published_at":"2020-09-21T19:24:31.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.19.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.19.1/manifests"},{"name":"v2.19.0","sha":"b4144409a93e4f600a69d7dc8323097b4f5141de","kind":"commit","published_at":"2020-09-14T22:17:39.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.19.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.19.0/manifests"},{"name":"v2.18.2","sha":"13c71b7d78a112a994e52fd034ac96ff493e6365","kind":"commit","published_at":"2020-09-09T13:58:12.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.18.2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.18.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.18.2/manifests"},{"name":"v2.18.1","sha":"c0129a93fbd9d7f37e0c85c82984a5d05b9f3fc1","kind":"commit","published_at":"2020-08-10T20:46:46.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.18.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.18.1/manifests"},{"name":"v2.18.0","sha":"f33f9bc87246d6b54c3a34e3070fa11e3f82fe68","kind":"commit","published_at":"2020-07-27T15:55:12.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.18.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.18.0/manifests"},{"name":"v2.17.1","sha":"edf1a205aa71c0b9d6c835bcf3d4bd1540915bbb","kind":"commit","published_at":"2020-07-22T19:32:02.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.17.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.17.1/manifests"},{"name":"v2.17.0","sha":"5b2c32d6a4f8c34966e33251a14d06169d7b2770","kind":"commit","published_at":"2020-07-21T20:25:25.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.17.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.17.0/manifests"},{"name":"v2.16.0","sha":"1e9f430e875b1b2b29bd819b92789be7f5e26c0e","kind":"commit","published_at":"2020-07-15T19:55:56.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.16.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.16.0/manifests"},{"name":"v2.15.0","sha":"853f29adadec4f2fe2c65cf619e5dc50d4d6b4e7","kind":"commit","published_at":"2020-07-13T16:11:09.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.15.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.15.0/manifests"},{"name":"v2.14.1","sha":"064c1ac086872ab43125920924209713c8a5226c","kind":"commit","published_at":"2020-07-10T16:30:20.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.14.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.14.1/manifests"},{"name":"v2.14.0","sha":"457e9b40c56bb197ecd76e6621a1ab324bf467d9","kind":"commit","published_at":"2020-07-07T22:25:47.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.14.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.14.0/manifests"},{"name":"v2.13.0","sha":"fe8b6f24aa0635115e20920353a40b683b76cef7","kind":"commit","published_at":"2020-07-02T17:41:29.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.13.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.13.0/manifests"},{"name":"v2.12.0","sha":"33648bc639dabf40df8011a24f42796e85f7f182","kind":"commit","published_at":"2020-06-30T17:36:08.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.12.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.12.0/manifests"},{"name":"v2.11.1","sha":"8ff0046b0a219c4e575e1a1b6871d15567fc1c69","kind":"commit","published_at":"2020-06-17T17:50:33.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.11.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.11.1/manifests"},{"name":"v2.11.0","sha":"a20b755e37b8581f4ecb86980e4a1f5c8aafc3b0","kind":"commit","published_at":"2020-06-16T18:59:32.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.11.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.11.0/manifests"},{"name":"v2.10.0","sha":"2bcbfb5a7a9d948858bc5a59626be8b00bc8cc58","kind":"commit","published_at":"2020-06-15T20:31:12.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.10.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.10.0/manifests"},{"name":"v2.9.0","sha":"faad42a2fa69c155f49ad2564a1ba4daa54defe0","kind":"commit","published_at":"2020-06-12T21:18:27.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.9.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.9.0/manifests"},{"name":"v2.8.0","sha":"6a4fb2083bef6efdfd6bf4e3a694a72e8c259f1d","kind":"commit","published_at":"2020-06-08T15:35:18.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.8.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.8.0/manifests"},{"name":"v2.7.0","sha":"41ada750f54352afd390393d22c5eb177a2597bc","kind":"commit","published_at":"2020-05-19T17:37:18.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.7.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.7.0/manifests"},{"name":"v2.6.0","sha":"399048edc0a2b66342aa6e01a828aa0bb1e502c0","kind":"commit","published_at":"2020-05-14T15:43:22.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.6.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.6.0/manifests"},{"name":"v2.5.1","sha":"b2a14b565bb3b9dd554705e78db5269fd60ff8ab","kind":"commit","published_at":"2020-04-21T21:22:48.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.5.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.5.1/manifests"},{"name":"v2.5.0","sha":"b6dd98584af3a45bb7439f9baaf6f25f092584b3","kind":"commit","published_at":"2020-04-20T17:42:12.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.5.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.5.0/manifests"},{"name":"v2.4.0","sha":"a7ca347ffc3598032d1aca101a2605add8ace022","kind":"commit","published_at":"2020-04-16T19:56:02.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.4.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.4.0/manifests"},{"name":"v2.3.0","sha":"d316e02db6961aa961db1b516f70bb39de902026","kind":"commit","published_at":"2020-04-14T21:41:55.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.3.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.3.0/manifests"},{"name":"v2.2.2","sha":"f1f6360acfca52872e831753b1d03feee05f33a2","kind":"commit","published_at":"2020-04-07T22:36:27.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.2.2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.2.2/manifests"},{"name":"v2.2.1","sha":"0ec3e843ab4e1a44d2ba443d881198615968fd3d","kind":"commit","published_at":"2020-04-01T15:20:58.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.2.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"127c312008781e008835f14d42939780a02b83ef","kind":"commit","published_at":"2020-03-31T21:21:37.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.2.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.2.0/manifests"},{"name":"v2.1.0","sha":"600e18789e9cd541f31ba6926e9c27869c90ab99","kind":"commit","published_at":"2020-03-27T17:59:09.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.1.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"a1635d48ace33103c05dfc96cc88442e4e663ab8","kind":"commit","published_at":"2020-03-23T15:55:50.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v2.0.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v2.0.0/manifests"},{"name":"v1.17.0","sha":"be46b716b691bb3e9088c993c95a642a346bb2b0","kind":"commit","published_at":"2020-03-23T15:44:33.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.17.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.17.0/manifests"},{"name":"v1.16.0","sha":"32f90e6ac5483d905a660039a0394ce5f213430c","kind":"commit","published_at":"2020-03-20T17:58:21.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.16.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.16.0/manifests"},{"name":"v1.15.0","sha":"17d87b24f5e3f9d1ec73da028a9cf1d23790e0ef","kind":"commit","published_at":"2020-03-09T20:04:03.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.15.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.15.0/manifests"},{"name":"v1.14.1","sha":"fc6e8a2c965757a4a8bcdc0c7dcd01af8759aa75","kind":"commit","published_at":"2020-03-03T21:21:38.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.14.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.14.1/manifests"},{"name":"v1.14.0","sha":"da516ce9af73eda56ba87ae46a32534367c256cf","kind":"commit","published_at":"2020-03-03T19:47:54.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.14.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"cd6959699476b41edc53466f755fcd250a401aab","kind":"commit","published_at":"2020-03-02T17:08:08.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.13.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.13.0/manifests"},{"name":"v1.12.0","sha":"4ef815230bf15926b457ecc36c65b75d35ae2ee8","kind":"commit","published_at":"2020-02-26T14:43:31.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.12.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.12.0/manifests"},{"name":"v1.11.1","sha":"971109e2d68431d468484efaf0d348636f8c224d","kind":"commit","published_at":"2020-02-19T23:47:01.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.11.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.11.1/manifests"},{"name":"v1.11.0","sha":"3906ed45df5956cad8b86efa6114fb5a71c02102","kind":"commit","published_at":"2020-02-19T22:50:11.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.11.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.11.0/manifests"},{"name":"v1.10.0","sha":"0ce7bd425ac9046a9e3690e9472cb00ae742e8ff","kind":"commit","published_at":"2020-02-14T22:52:03.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.10.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.10.0/manifests"},{"name":"v1.9.0","sha":"12f52a4728af9e7e6b33ef83ba8de4c69f8fc09d","kind":"commit","published_at":"2020-02-14T22:04:17.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.9.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.9.0/manifests"},{"name":"v1.8.1","sha":"4935a06f971830fbf67e81976c503142c0f5f00a","kind":"commit","published_at":"2020-01-24T18:21:50.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.8.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.8.1/manifests"},{"name":"v1.1","sha":"4c002e9f5e74bf7e780e0517206413441dedd3c6","kind":"commit","published_at":"2020-01-23T17:51:01.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.1/manifests"},{"name":"v1.8.0","sha":"4c002e9f5e74bf7e780e0517206413441dedd3c6","kind":"commit","published_at":"2020-01-23T17:51:01.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.8.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.8.0/manifests"},{"name":"v1.7.0","sha":"765afb3146b7678851c04825f38bf72fa91d367c","kind":"commit","published_at":"2020-01-09T23:20:29.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.7.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.7.0/manifests"},{"name":"v1.6.2","sha":"01dda4f246834b2553e403326a1c8edc311751bd","kind":"commit","published_at":"2020-01-06T18:14:01.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.6.2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.6.2/manifests"},{"name":"v1.6.1","sha":"445a7e3792ac60ea6287b8891931ef526cba4878","kind":"commit","published_at":"2019-12-25T14:18:05.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.6.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.6.1/manifests"},{"name":"v1.6.0","sha":"420d567f0658e2fba49c831c81663e68643fdb50","kind":"commit","published_at":"2019-12-11T22:19:29.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.6.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.6.0/manifests"},{"name":"v1.5.3","sha":"d573fe6c4962b19856e657c6887f60658d683c41","kind":"commit","published_at":"2019-11-26T19:21:12.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.5.3","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.5.3/manifests"},{"name":"v1.5.2","sha":"6c943a7232dc3b16aeabc72212b5bab4e9fa42a3","kind":"commit","published_at":"2019-11-22T15:46:55.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.5.2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.5.2/manifests"},{"name":"v1.5.1","sha":"1aad6f4b9ccdd87c15491d31785dd1c1da5b992e","kind":"commit","published_at":"2019-11-21T23:22:33.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.5.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.5.1/manifests"},{"name":"v1.5.0","sha":"038ad46f9ca2283caa91d44478d00916329c583a","kind":"commit","published_at":"2019-11-21T18:32:21.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.5.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.5.0/manifests"},{"name":"v1.4.0","sha":"dbfd904b4a21ac33cd864a1657fdd967c027bcb7","kind":"commit","published_at":"2019-11-07T19:03:30.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.4.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.4.0/manifests"},{"name":"v1.3.6","sha":"6c8081bb17ce528a7b9209e6c32efc371fcce975","kind":"commit","published_at":"2019-10-21T20:59:59.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.3.6","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.6/manifests"},{"name":"v1.3.5","sha":"912c96e73b56f74a1005c63b9d07fc5bf18a1175","kind":"commit","published_at":"2019-10-17T18:21:23.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.3.5","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.5/manifests"},{"name":"v1.3.4","sha":"69eb49180b5347d367f3cfd368ceebe55a8f8f93","kind":"commit","published_at":"2019-10-07T18:39:26.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.3.4","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.4/manifests"},{"name":"v1.3.3","sha":"0661b14565096a86d864e86486d21ea75fa3a930","kind":"commit","published_at":"2019-10-02T19:46:24.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.3.3","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.3/manifests"},{"name":"v1.3.2","sha":"b66fa08c7102faeda51041a27f8c776e185fbc87","kind":"commit","published_at":"2019-10-02T16:48:20.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.3.2","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.2/manifests"},{"name":"v1.3.1","sha":"aa30cfa6d43a2b7895828987fe06c3b4c911a176","kind":"commit","published_at":"2019-10-01T17:35:48.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.3.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"06a3e3a95367fea53292164edddf1682adf498df","kind":"commit","published_at":"2019-09-27T23:02:57.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.3.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.3.0/manifests"},{"name":"v1.2.1","sha":"ac773ddd1ee4e7f464b27ac0b619214c1bc52be7","kind":"commit","published_at":"2019-08-28T23:19:19.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.2.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"1783742b83e1d8d3b8c08bcd6ec2e27c57450f73","kind":"commit","published_at":"2019-08-28T18:28:46.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.2.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"42f474699a16158086ee4cdbd66238aba0472da1","kind":"commit","published_at":"2019-08-27T19:21:08.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.1.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"a9570d41a406a29ff8ec9724bb49d9b356d01c52","kind":"commit","published_at":"2019-08-23T16:59:41.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.0.1","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"41974a2bfcf8082f3b4d5f138c23b16f3a8094d7","kind":"commit","published_at":"2019-08-20T16:21:01.000Z","download_url":"https://codeload.github.com/ViewComponent/view_component/tar.gz/v1.0.0","html_url":"https://github.com/ViewComponent/view_component/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewComponent%2Fview_component/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2024-10-29T21:54:27.044Z","dependent_packages_count":92,"downloads":43786176,"downloads_period":"total","dependent_repos_count":1602,"rankings":{"downloads":0.7667173680356036,"dependent_repos_count":0.7836178243479242,"dependent_packages_count":0.464783495397235,"stargazers_count":0.6371472029744804,"forks_count":1.290068165173793,"docker_downloads_count":0.2946312883781195,"average":0.7061608907178593},"purl":"pkg:gem/view_component","advisories":[{"uuid":"GSA_kwCzR0hTQS13ZjJ4LTh3NmotcXczN84AA4My","url":"https://github.com/advisories/GHSA-wf2x-8w6j-qw37","title":"view_component Cross-site Scripting vulnerability","description":"### Impact\n_What kind of vulnerability is it? Who is impacted?_\n\nThis is an XSS vulnerability that has the potential to impact anyone rendering a component directly from a controller with the view_component gem. Note that only components that define a [`#call` method](https://viewcomponent.org/guide/templates.html#call) (i.e. instead of using a sidecar template) are affected. The return value of the `#call` method is not sanitized and can include user-defined content.\n\nIn addition, the return value of the [`#output_postamble` method](https://viewcomponent.org/api.html#output_postamble--string) is not sanitized, which can also lead to XSS issues.\n\n### Patches\n_Has the problem been patched? What versions should users upgrade to?_\n\nVersions 3.9.0 has been released and fully mitigates both the `#call` and the `#output_postamble` vulnerabilities.\n\n### Workarounds\n_Is there a way for users to fix or remediate the vulnerability without upgrading?_\n\nSanitize the return value of `#call`, eg:\n\n```ruby\nclass MyComponent \u003c ApplicationComponent\n  def call\n    html_escape(\"\u003cdiv\u003e#{user_input}\u003c/div\u003e\")\n  end\nend\n```\n\n### References\n_Are there any links users can visit to find out more?_\n\nhttps://github.com/ViewComponent/view_component/pull/1950\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\nOpen an issue in the [github/view_component](https://github.com/github/view_component) project.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-01-04T21:54:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://github.com/ViewComponent/view_component/security/advisories/GHSA-wf2x-8w6j-qw37","https://nvd.nist.gov/vuln/detail/CVE-2024-21636","https://github.com/ViewComponent/view_component/pull/1950","https://github.com/ViewComponent/view_component/commit/0d26944a8d2730ea40e60eae23d70684483e5017","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/view_component/CVE-2024-21636.yml","https://github.com/ViewComponent/view_component/pull/1962","https://github.com/ViewComponent/view_component/commit/c43d8bafa7117cbce479669a423ab266de150697","https://github.com/advisories/GHSA-wf2x-8w6j-qw37"],"source_kind":"github","identifiers":["GHSA-wf2x-8w6j-qw37","CVE-2024-21636"],"repository_url":"https://github.com/ViewComponent/view_component","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.83.0","vulnerable_version_range":"\u003c 2.83.0"},{"first_patched_version":"3.9.0","vulnerable_version_range":"\u003e= 3.0.0, \u003c 3.9.0"}],"ecosystem":"rubygems","package_name":"view_component"}],"created_at":"2024-01-04T22:05:41.554Z","updated_at":"2025-04-16T02:12:19.166Z","epss_percentage":0.00369,"epss_percentile":0.57656},{"uuid":"GSA_kwCzR0hTQS1jbTl3LWM0cmotcjJjZs0vug","url":"https://github.com/advisories/GHSA-cm9w-c4rj-r2cf","title":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in view_component","description":"This is an XSS vulnerability that has the potential to impact anyone using translations with the view_component gem. Data received via user input and passed as an interpolation argument to the `translate` method is not properly sanitized before display.\n\nVersions 2.29.1 and 2.49.1 have been released and fully mitigate the vulnerability.\n\nAvoid passing user input to the `translate` function, or sanitize the inputs before passing them.\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in the [github/view_component](http://github.com/github/view_component) project\n","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2022-03-02T22:24:05.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://github.com/github/view_component/security/advisories/GHSA-cm9w-c4rj-r2cf","https://github.com/github/view_component/commit/3f82a6e62578ff6f361aba24a1feb2caccf83ff9","https://nvd.nist.gov/vuln/detail/CVE-2022-24722","https://github.com/github/view_component/releases/tag/v2.31.2","https://github.com/github/view_component/releases/tag/v2.49.1","https://github.com/rubysec/ruby-advisory-db/blob/master/gems/view_component/CVE-2022-24722.yml","https://github.com/advisories/GHSA-cm9w-c4rj-r2cf"],"source_kind":"github","identifiers":["GHSA-cm9w-c4rj-r2cf","CVE-2022-24722"],"repository_url":"https://github.com/github/view_component","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"2.49.1","vulnerable_version_range":"\u003e= 2.32.0, \u003c 2.49.1"},{"first_patched_version":"2.31.2","vulnerable_version_range":"\u003e= 2.31.0, \u003c 2.31.2"}],"ecosystem":"rubygems","package_name":"view_component"}],"created_at":"2022-12-21T16:12:34.424Z","updated_at":"2025-04-16T02:17:09.325Z","epss_percentage":0.00341,"epss_percentile":0.5577}],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/view_component","docker_dependents_count":139,"docker_downloads_count":461537598,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/view_component","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/view_component/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/view_component/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/view_component/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/view_component/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/view_component/related_packages","maintainers":[{"uuid":"58667","login":"camertron","name":null,"email":null,"url":null,"packages_count":95,"html_url":"https://rubygems.org/profiles/camertron","role":null,"created_at":"2022-11-09T09:55:55.281Z","updated_at":"2022-11-09T09:55:55.281Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/camertron/packages"},{"uuid":"96446","login":"joelhawksley","name":null,"email":null,"url":null,"packages_count":10,"html_url":"https://rubygems.org/profiles/joelhawksley","role":null,"created_at":"2022-11-09T09:55:55.295Z","updated_at":"2022-11-09T09:55:55.295Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/joelhawksley/packages"},{"uuid":"56732","login":"BlakeWilliams","name":null,"email":null,"url":null,"packages_count":15,"html_url":"https://rubygems.org/profiles/BlakeWilliams","role":null,"created_at":"2022-11-09T09:55:55.307Z","updated_at":"2022-11-09T09:55:55.307Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/BlakeWilliams/packages"},{"uuid":"127566","login":"boardfish","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://rubygems.org/profiles/boardfish","role":null,"created_at":"2022-11-09T09:55:55.249Z","updated_at":"2022-11-09T09:55:55.249Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/boardfish/packages"},{"uuid":"118014","login":"Spone","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://rubygems.org/profiles/Spone","role":null,"created_at":"2022-11-09T09:55:55.269Z","updated_at":"2022-11-09T09:55:55.269Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/Spone/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":365,"unique_repositories_count_past_30_days":2,"recent_issues":[{"uuid":"4823533707","node_id":"PR_kwDOCSVaMM7ukYn6","number":7624,"state":"open","title":"build(deps): bump the minor-and-patch group across 1 directory with 10 updates","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-07-06T22:21:40.000Z","updated_at":"2026-07-06T22:22:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-and-patch","update_count":10,"packages":[{"name":"view_component","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"bootsnap","old_version":"1.24.5","new_version":"1.24.6","repository_url":"https://github.com/rails/bootsnap"},{"name":"coveralls_reborn","old_version":"0.29.0","new_version":"0.29.1","repository_url":"https://github.com/tagliala/coveralls-ruby-reborn"},{"name":"rubocop-rails","old_version":"2.35.3","new_version":"2.35.5","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":"capybara-playwright-driver","old_version":"0.5.9","new_version":"0.5.10","repository_url":"https://github.com/YusukeIwaki/capybara-playwright-driver"},{"name":"rubocop","old_version":"1.86.2","new_version":"1.88.1","repository_url":"https://github.com/rubocop/rubocop"},{"name":"aws-sdk-s3","old_version":"1.224.0","new_version":"1.226.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"opentelemetry-instrumentation-active_job","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby-contrib"},{"name":"maintenance_tasks","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/Shopify/maintenance_tasks"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.11.0` | `4.12.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.5` | `1.24.6` |\n| [coveralls_reborn](https://github.com/tagliala/coveralls-ruby-reborn) | `0.29.0` | `0.29.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.35.3` | `2.35.5` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.9.0` | `3.10.2` |\n| [capybara-playwright-driver](https://github.com/YusukeIwaki/capybara-playwright-driver) | `0.5.9` | `0.5.10` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.86.2` | `1.88.1` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.224.0` | `1.226.0` |\n| [opentelemetry-instrumentation-active_job](https://github.com/open-telemetry/opentelemetry-ruby-contrib) | `0.12.0` | `0.13.0` |\n| [maintenance_tasks](https://github.com/Shopify/maintenance_tasks) | `2.16.0` | `2.17.0` |\n\n\nUpdates `view_component` from 4.11.0 to 4.12.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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale render context on reused component instances. A \u003ccode\u003eViewComponent::Base\u003c/code\u003e instance memoized its controller, helpers, request, view context, lookup context, view flow, and requested format details on first render via \u003ccode\u003e||=\u003c/code\u003e. Rendering the same instance a second time (intentionally or via aliasing) reused that stale context, which could leak data across requests, sessions, or users. \u003ccode\u003e#render_in\u003c/code\u003e now resets these ivars on every call so each render derives its context from the current view.\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 HTML-safety bypass in \u003ccode\u003earound_render\u003c/code\u003e. \u003ccode\u003eViewComponent::Base#around_render\u003c/code\u003e could return HTML-unsafe strings that bypassed the escaping applied to normal \u003ccode\u003e#call\u003c/code\u003e return values, creating an XSS risk. The vulnerability was amplified in \u003ccode\u003eViewComponent::Collection#render_in\u003c/code\u003e, which joined per-item results and unconditionally marked the output \u003ccode\u003ehtml_safe\u003c/code\u003e. HTML-unsafe strings returned from \u003ccode\u003earound_render\u003c/code\u003e are now escaped (with a warning) and \u003ccode\u003eCollection#render_in\u003c/code\u003e now uses \u003ccode\u003esafe_join\u003c/code\u003e so unsafe per-item output is escaped instead of laundered into a \u003ccode\u003eSafeBuffer\u003c/code\u003e.\n\u003cem\u003eJoel Hawksley\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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale render context on reused component instances. A \u003ccode\u003eViewComponent::Base\u003c/code\u003e instance memoized its controller, helpers, request, view context, lookup context, view flow, and requested format details on first render via \u003ccode\u003e||=\u003c/code\u003e. Rendering the same instance a second time (intentionally or via aliasing) reused that stale context, which could leak data across requests, sessions, or users. \u003ccode\u003e#render_in\u003c/code\u003e now resets these ivars on every call so each render derives its context from the current view.\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 HTML-safety bypass in \u003ccode\u003earound_render\u003c/code\u003e. \u003ccode\u003eViewComponent::Base#around_render\u003c/code\u003e could return HTML-unsafe strings that bypassed the escaping applied to normal \u003ccode\u003e#call\u003c/code\u003e return values, creating an XSS risk. The vulnerability was amplified in \u003ccode\u003eViewComponent::Collection#render_in\u003c/code\u003e, which joined per-item results and unconditionally marked the output \u003ccode\u003ehtml_safe\u003c/code\u003e. HTML-unsafe strings returned from \u003ccode\u003earound_render\u003c/code\u003e are now escaped (with a warning) and \u003ccode\u003eCollection#render_in\u003c/code\u003e now uses \u003ccode\u003esafe_join\u003c/code\u003e so unsafe per-item output is escaped instead of laundered into a \u003ccode\u003eSafeBuffer\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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/4cbdbaaf8fb37299926a5dc45be2ffc03e436fc1\"\u003e\u003ccode\u003e4cbdbaa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2649\"\u003e#2649\u003c/a\u003e from ViewComponent/release-4-12-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a8888e1bb3318f6af9c4b6aef1e1f3987c54a09c\"\u003e\u003ccode\u003ea8888e1\u003c/code\u003e\u003c/a\u003e Fix lint and bump allocation ranges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/02d88969bc2a7ad96a81d514a247de228b29425d\"\u003e\u003ccode\u003e02d8896\u003c/code\u003e\u003c/a\u003e lockfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/50a2bafb35c8675001ac727cdc8c8c77b8c35c95\"\u003e\u003ccode\u003e50a2baf\u003c/code\u003e\u003c/a\u003e release 4.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6796b2e89d0bd7b9d7d763a86275e5334731dd61\"\u003e\u003ccode\u003e6796b2e\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/015f42cd9253815ef8ba0c0fe6bb3c20ec414258\"\u003e\u003ccode\u003e015f42c\u003c/code\u003e\u003c/a\u003e clean up changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5963e485483c9cc9fd8240877c65bab920025410\"\u003e\u003ccode\u003e5963e48\u003c/code\u003e\u003c/a\u003e simplify\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/53106bebd1994145202940f66204248212abe2cd\"\u003e\u003ccode\u003e53106be\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/7b05073be28037f7d5ff141e9dd42f3cf47956a4\"\u003e\u003ccode\u003e7b05073\u003c/code\u003e\u003c/a\u003e fix  Reused component instances retain stale render context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/48e5fd2d602344c7d33019fbc5c8b087e315bb78\"\u003e\u003ccode\u003e48e5fd2\u003c/code\u003e\u003c/a\u003e fix for around_render safety gap\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.11.0...v4.12.0\"\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.5 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\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\u003eSee full diff in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coveralls_reborn` from 0.29.0 to 0.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/releases\"\u003ecoveralls_reborn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.29.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump simplecov-lcov version by \u003ca href=\"https://github.com/tagliala\"\u003e\u003ccode\u003e@​tagliala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/pull/58\"\u003etagliala/coveralls-ruby-reborn#58\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 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/tagliala/coveralls-ruby-reborn/pull/57\"\u003etagliala/coveralls-ruby-reborn#57\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 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/tagliala/coveralls-ruby-reborn/pull/59\"\u003etagliala/coveralls-ruby-reborn#59\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor internal updates by \u003ca href=\"https://github.com/tagliala\"\u003e\u003ccode\u003e@​tagliala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/pull/61\"\u003etagliala/coveralls-ruby-reborn#61\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/compare/v0.29.0...v0.29.1\"\u003ehttps://github.com/tagliala/coveralls-ruby-reborn/compare/v0.29.0...v0.29.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/blob/main/CHANGELOG.md\"\u003ecoveralls_reborn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.29.1 / 2026-06-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ENHANCEMENT] Minor internal updates \u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/pull/61\"\u003e#61\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/tagliala/coveralls-ruby-reborn/commit/3b19171a3fab923a544716260145ec7991407342\"\u003e\u003ccode\u003e3b19171\u003c/code\u003e\u003c/a\u003e Minor internal updates (\u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/issues/61\"\u003e#61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/commit/4e7528356f7a399e392548b86917db0e8ccb6fdc\"\u003e\u003ccode\u003e4e75283\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/issues/59\"\u003e#59\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/commit/326890f7db130f2156f49e00dd6b1c3abcbb5c9e\"\u003e\u003ccode\u003e326890f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/commit/25061e74138b5c3771f341f0fa95ffe56f2536cc\"\u003e\u003ccode\u003e25061e7\u003c/code\u003e\u003c/a\u003e Bump simplecov-lcov version (\u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/issues/58\"\u003e#58\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/compare/v0.29.0...v0.29.1\"\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.3 to 2.35.5\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.5\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/1379\"\u003e#1379\u003c/a\u003e: Fix an incorrect offense for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method is the last expression in a multiline method or block. (\u003ca href=\"https://github.com/aki77\"\u003e\u003ccode\u003e@​aki77\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-rails/pull/1617\"\u003e#1617\u003c/a\u003e: Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e. (\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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.5 (2026-06-21)\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/1379\"\u003e#1379\u003c/a\u003e: Fix an incorrect offense for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method is the last expression in a multiline method or block. ([\u003ca href=\"https://github.com/aki77\"\u003e\u003ccode\u003e@​aki77\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-rails/pull/1617\"\u003e#1617\u003c/a\u003e: Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\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\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/7ec7b4bfb1b3233f839b2d97976c0996257a1bcc\"\u003e\u003ccode\u003e7ec7b4b\u003c/code\u003e\u003c/a\u003e Cut 2.35.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/6393e5367519e7df8165311fee2cd91817bf44ad\"\u003e\u003ccode\u003e6393e53\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/138a926d7ca1362a15f63c925133a2425604efd5\"\u003e\u003ccode\u003e138a926\u003c/code\u003e\u003c/a\u003e Prevent \u003ccode\u003erubocop:disable\u003c/code\u003e directives from being included in examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/de6b1c27e733c9e3cda7e9d18eb6f70bddc2aa0e\"\u003e\u003ccode\u003ede6b1c2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1640\"\u003e#1640\u003c/a\u003e from aki77/issue-1379\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/697529ee99e001b706c9f5c31074b589626b84b8\"\u003e\u003ccode\u003e697529e\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1379\"\u003e#1379\u003c/a\u003e] Fix a false positive for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/20bd64f6d000ddc2ffd46221476f21413635b62c\"\u003e\u003ccode\u003e20bd64f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1638\"\u003e#1638\u003c/a\u003e from corsonknowles/allow-rails-env-local\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/16cfcb2c8a10eec84cc1769785a2067d12fbad1d\"\u003e\u003ccode\u003e16cfcb2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/d3e3a603de97874194f56e01195ba344cf628f6e\"\u003e\u003ccode\u003ed3e3a60\u003c/code\u003e\u003c/a\u003e Fix a build error in the Ruby 3.1 CI matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/c6d6c6886af15ae3c4439ed41f45f3036b9cba6c\"\u003e\u003ccode\u003ec6d6c68\u003c/code\u003e\u003c/a\u003e Reset the docs version\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.35.3...v2.35.5\"\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 `capybara-playwright-driver` from 0.5.9 to 0.5.10\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/3c543b7eab81b20ab4943169aff0fdaccca9a331\"\u003e\u003ccode\u003e3c543b7\u003c/code\u003e\u003c/a\u003e 0.5.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/98c99522b21b4f5eac23aff4d707fee76b8364c7\"\u003e\u003ccode\u003e98c9952\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/YusukeIwaki/capybara-playwright-driver/issues/148\"\u003e#148\u003c/a\u003e from YusukeIwaki/codex/simplify-compatibility-specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/5a7332a641e9c9b803615537c445297224343f5d\"\u003e\u003ccode\u003e5a7332a\u003c/code\u003e\u003c/a\u003e Use DRIVER for compatibility workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/35f4a997362471d9290e474105ec781cfad4bea7\"\u003e\u003ccode\u003e35f4a99\u003c/code\u003e\u003c/a\u003e Simplify compatibility specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/45c808085c9bb68d84063967115fee7e18263b18\"\u003e\u003ccode\u003e45c8080\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/YusukeIwaki/capybara-playwright-driver/issues/147\"\u003e#147\u003c/a\u003e from YusukeIwaki/codex/fix-node-set-tab-compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/455b70f4645bd0170ee3752e8419195678b279d2\"\u003e\u003ccode\u003e455b70f\u003c/code\u003e\u003c/a\u003e Fix Node#set tab key compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/0ad07e7f27e95f81a345fea571072c96474a1e35\"\u003e\u003ccode\u003e0ad07e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/YusukeIwaki/capybara-playwright-driver/issues/146\"\u003e#146\u003c/a\u003e from YusukeIwaki/codex/selenium-window-size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/14d81231e8f4114e590b732b047f93049ade202e\"\u003e\u003ccode\u003e14d8123\u003c/code\u003e\u003c/a\u003e Align window size with Selenium\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/5a40db072fdf4e42ac4a374c225d211ee0a0aef6\"\u003e\u003ccode\u003e5a40db0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/YusukeIwaki/capybara-playwright-driver/issues/145\"\u003e#145\u003c/a\u003e from YusukeIwaki/fix-98\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/02707565cc7b0c5b99da356103f95261caf182d7\"\u003e\u003ccode\u003e0270756\u003c/code\u003e\u003c/a\u003e Keep contenteditable branch in set_text\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/compare/0.5.9...0.5.10\"\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.88.1\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.88.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/pull/15408\"\u003e#15408\u003c/a\u003e: Fix a crash for \u003ccode\u003eBundler/GemComment\u003c/code\u003e with a non-literal gem option key. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix a crash for \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when a class body is a single safe-navigation call (e.g. \u003ccode\u003etest\u0026amp;.private_methods(def foo; end)\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15413\"\u003e#15413\u003c/a\u003e: Fix a crash for \u003ccode\u003eGemspec/DevelopmentDependencies\u003c/code\u003e when \u003ccode\u003eAllowedGems\u003c/code\u003e is nil. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15404\"\u003e#15404\u003c/a\u003e: Fix a crash for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e with an anonymous \u003ccode\u003edefine_method\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15414\"\u003e#15414\u003c/a\u003e: Fix a crash for \u003ccode\u003eNaming/InclusiveLanguage\u003c/code\u003e with nil or empty \u003ccode\u003eFlaggedTerms\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15405\"\u003e#15405\u003c/a\u003e: Fix a crash for \u003ccode\u003eSecurity/IoMethods\u003c/code\u003e with a non-string-literal argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15330\"\u003e#15330\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/EmptyStringInsideInterpolation\u003c/code\u003e with a modifier conditional. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15351\"\u003e#15351\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/OpenStructUse\u003c/code\u003e with a bare \u003ccode\u003eOpenStruct\u003c/code\u003e root node. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15379\"\u003e#15379\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/TrailingUnderscoreVariable\u003c/code\u003e when a nested destructuring group consists only of underscore variables. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15412\"\u003e#15412\u003c/a\u003e: Fix a false negative for \u003ccode\u003eSecurity/MarshalLoad\u003c/code\u003e with a proc argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15386\"\u003e#15386\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e with named rest arguments under \u003ccode\u003eEnforcedStyle: require_no_parentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15396\"\u003e#15396\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/MultilineMethodSignature\u003c/code\u003e where a signature that fits on one line was skipped because the multi-line source length was measured instead of the collapsed width. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15386\"\u003e#15386\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/OptionalArguments\u003c/code\u003e with singleton methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15383\"\u003e#15383\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/RedundantFilterChain\u003c/code\u003e with numbered-parameter blocks. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15290\"\u003e#15290\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when a braced hash is passed to keyword parameters (e.g. \u003ccode\u003eto_enum(:m, { required: required })\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11956\"\u003e#11956\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/FileName\u003c/code\u003e when a class or module name contains multiple consecutive \u003ccode\u003eAllowedAcronyms\u003c/code\u003e. ([\u003ca href=\"https://github.com/camallen\"\u003e\u003ccode\u003e@​camallen\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15324\"\u003e#15324\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/DirEmpty\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15326\"\u003e#15326\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/EmptyLiteral\u003c/code\u003e with numbered and \u003ccode\u003eit\u003c/code\u003e block parameters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15335\"\u003e#15335\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/EnvHome\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15345\"\u003e#15345\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/InlineComment\u003c/code\u003e with \u003ccode\u003erubocop:todo\u003c/code\u003e directives. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15348\"\u003e#15348\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15383\"\u003e#15383\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/NumericPredicate\u003c/code\u003e when an allowed method encloses a numbered-parameter or \u003ccode\u003eit\u003c/code\u003e block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15389\"\u003e#15389\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/OptionHash\u003c/code\u003e when the options hash is forwarded with an explicit \u003ccode\u003esuper\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15350\"\u003e#15350\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e with a lone format sequence. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15374\"\u003e#15374\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e with a rescue exception variable. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15376\"\u003e#15376\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/Semicolon\u003c/code\u003e with a semicolon inside a string literal. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15398\"\u003e#15398\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/ConditionPosition\u003c/code\u003e that dropped a body statement sharing the condition's line via a semicolon. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15399\"\u003e#15399\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/EmptyComment\u003c/code\u003e that deleted a heredoc when removing an empty comment trailing its opener. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15400\"\u003e#15400\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/EmptyLineBetweenDefs\u003c/code\u003e that inserted a blank line inside a heredoc body when an endless method's body was a heredoc. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15401\"\u003e#15401\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e that turned \u003ccode\u003e**=\u003c/code\u003e and \u003ccode\u003e/=\u003c/code\u003e compound assignments into \u003ccode\u003e**\u003c/code\u003e/\u003ccode\u003e/\u003c/code\u003e, dropping the assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15406\"\u003e#15406\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/MemoizedInstanceVariableName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15411\"\u003e#15411\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/RescuedExceptionsVariableName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15319\"\u003e#15319\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/DataInheritance\u003c/code\u003e with a brace block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15323\"\u003e#15323\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyCaseCondition\u003c/code\u003e as a \u003ccode\u003eyield\u003c/code\u003e/\u003ccode\u003esuper\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15323\"\u003e#15323\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyCaseCondition\u003c/code\u003e with low-precedence \u003ccode\u003ewhen\u003c/code\u003e values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15322\"\u003e#15322\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyClassDefinition\u003c/code\u003e with a namespaced constant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15336\"\u003e#15336\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyHeredoc\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15332\"\u003e#15332\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EvenOdd\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15329\"\u003e#15329\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ExactRegexpMatch\u003c/code\u003e with a single quote. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15333\"\u003e#15333\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FileNull\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15334\"\u003e#15334\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15331\"\u003e#15331\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FormatString\u003c/code\u003e with a low-precedence argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15331\"\u003e#15331\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FormatString\u003c/code\u003e with a splat argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15337\"\u003e#15337\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/HashSlice\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15327\"\u003e#15327\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e with a multi-pair braceless \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15368\"\u003e#15368\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/IfWithSemicolon\u003c/code\u003e that changed semantics when the condition was an assignment, by parenthesizing it in the resulting ternary. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15340\"\u003e#15340\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/KeywordArgumentsMerging\u003c/code\u003e with a block-pass argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\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.88.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15408\"\u003e#15408\u003c/a\u003e: Fix a crash for \u003ccode\u003eBundler/GemComment\u003c/code\u003e with a non-literal gem option key. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix a crash for \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when a class body is a single safe-navigation call (e.g. \u003ccode\u003etest\u0026amp;.private_methods(def foo; end)\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15413\"\u003e#15413\u003c/a\u003e: Fix a crash for \u003ccode\u003eGemspec/DevelopmentDependencies\u003c/code\u003e when \u003ccode\u003eAllowedGems\u003c/code\u003e is nil. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15404\"\u003e#15404\u003c/a\u003e: Fix a crash for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e with an anonymous \u003ccode\u003edefine_method\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15414\"\u003e#15414\u003c/a\u003e: Fix a crash for \u003ccode\u003eNaming/InclusiveLanguage\u003c/code\u003e with nil or empty \u003ccode\u003eFlaggedTerms\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15405\"\u003e#15405\u003c/a\u003e: Fix a crash for \u003ccode\u003eSecurity/IoMethods\u003c/code\u003e with a non-string-literal argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15330\"\u003e#15330\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/EmptyStringInsideInterpolation\u003c/code\u003e with a modifier conditional. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15351\"\u003e#15351\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/OpenStructUse\u003c/code\u003e with a bare \u003ccode\u003eOpenStruct\u003c/code\u003e root node. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15379\"\u003e#15379\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/TrailingUnderscoreVariable\u003c/code\u003e when a nested destructuring group consists only of underscore variables. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15412\"\u003e#15412\u003c/a\u003e: Fix a false negative for \u003ccode\u003eSecurity/MarshalLoad\u003c/code\u003e with a proc argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15386\"\u003e#15386\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e with named rest arguments under \u003ccode\u003eEnforcedStyle: require_no_parentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15396\"\u003e#15396\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/MultilineMethodSignature\u003c/code\u003e where a signature that fits on one line was skipped because the multi-line source length was measured instead of the collapsed width. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15386\"\u003e#15386\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/OptionalArguments\u003c/code\u003e with singleton methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15383\"\u003e#15383\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/RedundantFilterChain\u003c/code\u003e with numbered-parameter blocks. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15290\"\u003e#15290\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when a braced hash is passed to keyword parameters (e.g. \u003ccode\u003eto_enum(:m, { required: required })\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11956\"\u003e#11956\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/FileName\u003c/code\u003e when a class or module name contains multiple consecutive \u003ccode\u003eAllowedAcronyms\u003c/code\u003e. ([\u003ca href=\"https://github.com/camallen\"\u003e\u003ccode\u003e@​camallen\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15324\"\u003e#15324\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/DirEmpty\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15326\"\u003e#15326\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/EmptyLiteral\u003c/code\u003e with numbered and \u003ccode\u003eit\u003c/code\u003e block parameters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15335\"\u003e#15335\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/EnvHome\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15345\"\u003e#15345\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/InlineComment\u003c/code\u003e with \u003ccode\u003erubocop:todo\u003c/code\u003e directives. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15348\"\u003e#15348\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15383\"\u003e#15383\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/NumericPredicate\u003c/code\u003e when an allowed method encloses a numbered-parameter or \u003ccode\u003eit\u003c/code\u003e block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15389\"\u003e#15389\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/OptionHash\u003c/code\u003e when the options hash is forwarded with an explicit \u003ccode\u003esuper\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15350\"\u003e#15350\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e with a lone format sequence. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15374\"\u003e#15374\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e with a rescue exception variable. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15376\"\u003e#15376\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/Semicolon\u003c/code\u003e with a semicolon inside a string literal. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15398\"\u003e#15398\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/ConditionPosition\u003c/code\u003e that dropped a body statement sharing the condition's line via a semicolon. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15399\"\u003e#15399\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/EmptyComment\u003c/code\u003e that deleted a heredoc when removing an empty comment trailing its opener. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15400\"\u003e#15400\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/EmptyLineBetweenDefs\u003c/code\u003e that inserted a blank line inside a heredoc body when an endless method's body was a heredoc. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15401\"\u003e#15401\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e that turned \u003ccode\u003e**=\u003c/code\u003e and \u003ccode\u003e/=\u003c/code\u003e compound assignments into \u003ccode\u003e**\u003c/code\u003e/\u003ccode\u003e/\u003c/code\u003e, dropping the assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15406\"\u003e#15406\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/MemoizedInstanceVariableName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15411\"\u003e#15411\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/RescuedExceptionsVariableName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15319\"\u003e#15319\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/DataInheritance\u003c/code\u003e with a brace block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15323\"\u003e#15323\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyCaseCondition\u003c/code\u003e as a \u003ccode\u003eyield\u003c/code\u003e/\u003ccode\u003esuper\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15323\"\u003e#15323\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyCaseCondition\u003c/code\u003e with low-precedence \u003ccode\u003ewhen\u003c/code\u003e values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15322\"\u003e#15322\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyClassDefinition\u003c/code\u003e with a namespaced constant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15336\"\u003e#15336\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyHeredoc\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15332\"\u003e#15332\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EvenOdd\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15329\"\u003e#15329\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ExactRegexpMatch\u003c/code\u003e with a single quote. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15333\"\u003e#15333\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FileNull\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15334\"\u003e#15334\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15331\"\u003e#15331\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FormatString\u003c/code\u003e with a low-precedence argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15331\"\u003e#15331\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FormatString\u003c/code\u003e with a splat argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15337\"\u003e#15337\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/HashSlice\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15327\"\u003e#15327\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e with a multi-pair braceless \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15368\"\u003e#15368\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/IfWithSemicolon\u003c/code\u003e that changed semantics when the condition was an assignment, by parenthesizing it in the resulting ternary. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\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/rubocop/rubocop/commit/d35b32130a00bcbad97098b114e1ce54dfeb3ecf\"\u003e\u003ccode\u003ed35b321\u003c/code\u003e\u003c/a\u003e Cut 1.88.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b4cb565595fd73a0dbacf8a4294c75e45dbc6121\"\u003e\u003ccode\u003eb4cb565\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/398805615a3dec48a3fc72224038f1546d7f580f\"\u003e\u003ccode\u003e3988056\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15352\"\u003e#15352\u003c/a\u003e from rubocop/fix-parallel-assignment-literal-escaping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3abe081a6b89feed8e91a241b99927dd6086e0e3\"\u003e\u003ccode\u003e3abe081\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15365\"\u003e#15365\u003c/a\u003e from rubocop/fix-redundant-line-continuation-eof\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f391d5a53aa49a34a2e06a447d01b6c5d67ac2e0\"\u003e\u003ccode\u003ef391d5a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15394\"\u003e#15394\u003c/a\u003e from rubocop/fix-nil-lambda-proc-return\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/37b29a9fa407a76346dd9cac9a914795b11d7df9\"\u003e\u003ccode\u003e37b29a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15398\"\u003e#15398\u003c/a\u003e from rubocop/fix-condition-position-semicolon-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/839d492b60c73ad32ebe926c509fb9882be304a8\"\u003e\u003ccode\u003e839d492\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15399\"\u003e#15399\u003c/a\u003e from rubocop/fix-empty-comment-heredoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2d191a4daa7aee31c4211ff292936e2b479e3da0\"\u003e\u003ccode\u003e2d191a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15412\"\u003e#15412\u003c/a\u003e from rubocop/fix-marshal-load-extra-args\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/1767e56e62a0cce0fc9e20f5a2f1a3cc4437fbf3\"\u003e\u003ccode\u003e1767e56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15406\"\u003e#15406\u003c/a\u003e from rubocop/fix-memoized-ivar-operator-method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/c923d2930ebf58436a1622f7241aa54c020ca249\"\u003e\u003ccode\u003ec923d29\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15368\"\u003e#15368\u003c/a\u003e from rubocop/fix-if-with-semicolon-assignment\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.86.2...v1.88.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-s3` from 1.224.0 to 1.226.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.226.0 (2026-06-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - Added support for annotations. You can now attach up to 1000 annotations (up to 1 MB each) directly to objects and create, retrieve, list, and delete them using new annotation APIs. Also added support for configuring an annotation table in S3 Metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - Multipart copies now support \u003ccode\u003etags_directive\u003c/code\u003e, \u003ccode\u003eannotations_directive\u003c/code\u003e, and \u003ccode\u003emetadata_directive\u003c/code\u003e options for controlling which source properties are copied to the destination.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix error when performing cross-region multipart copies with \u003ccode\u003ecopy_source_region\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\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 `opentelemetry-instrumentation-active_job` from 0.12.0 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-ruby-contrib/releases\"\u003eopentelemetry-instrumentation-active_job's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopentelemetry-instrumentation-active_job 0.13.0\u003c/h2\u003e\n\u003ch2\u003ev0.13.0 / 2026-06-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eADDED: Add spans for Continuation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-ruby-contrib/issues/2361\"\u003e#2361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eADDED: Add step.active_job span handler for Continuation\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/open-telemetry/opentelemetry-ruby-contrib/compare/opentelemetry-instrumentation-active_job/v0.12.0...opentelemetry-instrumentation-active_job/v0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `maintenance_tasks` from 2.16.0 to 2.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Shopify/maintenance_tasks/releases\"\u003emaintenance_tasks's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.17.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for no-longer-supported Rails 7.1 and clean up ✨ by \u003ca href=\"https://github.com/larouxn\"\u003e\u003ccode\u003e@​larouxn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/pull/1475\"\u003eShopify/maintenance_tasks#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003ebetter_html\u003c/code\u003e to \u003ccode\u003eherb\u003c/code\u003e 🌿 by \u003ca href=\"https://github.com/larouxn\"\u003e\u003ccode\u003e@​larouxn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/pull/1476\"\u003eShopify/maintenance_tasks#1476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Active Record errored elements by \u003ca href=\"https://github.com/adrianna-chang-shopify\"\u003e\u003ccode\u003e@​adrianna-chang-shopify\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/pull/1494\"\u003eShopify/maintenance_tasks#1494\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Shopify/maintenance_tasks/compare/v2.16.0...v2.17.0\"\u003ehttps://github.com/Shopify/maintenance_tasks/compare/v2.16.0...v2.17.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/Shopify/maintenance_tasks/commit/6d6e4c06881c35b16b2625904618f4c5e1371985\"\u003e\u003ccode\u003e6d6e4c0\u003c/code\u003e\u003c/a\u003e Serialize Active Record errored elements (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1494\"\u003e#1494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/b536746ca55295b1e02e86950a923b7bd1705d3e\"\u003e\u003ccode\u003eb536746\u003c/code\u003e\u003c/a\u003e Bump to 2.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/b385502d5c431f10fa9a47d8abc1b4cf9e65aa46\"\u003e\u003ccode\u003eb385502\u003c/code\u003e\u003c/a\u003e Serialize Active Record errored elements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/242c7e569824dd27b7f7256e7830454df34aa156\"\u003e\u003ccode\u003e242c7e5\u003c/code\u003e\u003c/a\u003e Bump rubocop from 1.86.2 to 1.87.0 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1493\"\u003e#1493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/1e13c5c8315a6b7f8094b5338560f9546c2c47c2\"\u003e\u003ccode\u003e1e13c5c\u003c/code\u003e\u003c/a\u003e Bump yard from 0.9.43 to 0.9.44 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1492\"\u003e#1492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/7fc47933d21f98d8e3db6b4cd12facf883076259\"\u003e\u003ccode\u003e7fc4793\u003c/code\u003e\u003c/a\u003e Bump puma from 8.0.1 to 8.0.2 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1491\"\u003e#1491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/60043326bdd7a2a12e8cbe0da49adf9c87577d74\"\u003e\u003ccode\u003e6004332\u003c/code\u003e\u003c/a\u003e Bump zeitwerk from 2.8.0 to 2.8.2 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/d582a1d7a36e287a83d963bb1fe4acccdec4e1ad\"\u003e\u003ccode\u003ed582a1d\u003c/code\u003e\u003c/a\u003e Bump actions/stale from 10.2.0 to 10.3.0 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/a39b81d432ae817efd0d9306ba683b467dfb8d87\"\u003e\u003ccode\u003ea39b81d\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.308.0 to 1.310.0 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/4ee8689b3d9e1fb43eead2045dc93dfa8f22e2c9\"\u003e\u003ccode\u003e4ee8689\u003c/code\u003e\u003c/a\u003e Bump selenium-webdriver from 4.43.0 to 4.44.0 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Shopify/maintenance_tasks/compare/v2.16.0...v2.17.0\"\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/CircuitVerse/CircuitVerse/pull/7624","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitVerse%2FCircuitVerse/issues/7624","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7624/packages"},{"uuid":"4609486560","node_id":"PR_kwDON4StM87jujub","number":584,"state":"closed","title":"chore(deps): bump the minor 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-15T01:56:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-08T01:56:49.000Z","updated_at":"2026-06-15T01:56:58.000Z","time_to_close":604807,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor","update_count":10,"packages":[{"name":"puma","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"bootsnap","old_version":"1.24.3","new_version":"1.24.6","repository_url":"https://github.com/rails/bootsnap"},{"name":"sentry-ruby","old_version":"6.5.0","new_version":"6.6.2","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"pagy","old_version":"43.5.3","new_version":"43.5.6","repository_url":"https://github.com/ddnexus/pagy"},{"name":"view_component","old_version":"4.9.0","new_version":"4.12.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"dsfr-form_builder","old_version":"0.0.13","new_version":"0.0.14","repository_url":"https://github.com/betagouv/dsfr-form-builder"},{"name":"friendly_id","old_version":"5.6.0","new_version":"5.7.0","repository_url":"https://github.com/norman/friendly_id"},{"name":"rubocop-rails","old_version":"2.34.3","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"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor 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| [bootsnap](https://github.com/rails/bootsnap) | `1.24.3` | `1.24.6` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.5.0` | `6.6.2` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.5.3` | `43.5.6` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.9.0` | `4.12.0` |\n| [dsfr-form_builder](https://github.com/betagouv/dsfr-form-builder) | `0.0.13` | `0.0.14` |\n| [friendly_id](https://github.com/norman/friendly_id) | `5.6.0` | `5.7.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.4` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.9.0` | `3.10.2` |\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 `bootsnap` from 1.24.3 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\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\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.3...v1.24.6\"\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 `sentry-rails` 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-rails'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/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/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.2\"\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.3 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\u003ch4\u003eVersion 43.5.4\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix SERIES_SLOTS loading error (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/902\"\u003e#902\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/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.3...43.5.6\"\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.9.0 to 4.12.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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale render context on reused component instances. A \u003ccode\u003eViewComponent::Base\u003c/code\u003e instance memoized its controller, helpers, request, view context, lookup context, view flow, and requested format details on first render via \u003ccode\u003e||=\u003c/code\u003e. Rendering the same instance a second time (intentionally or via aliasing) reused that stale context, which could leak data across requests, sessions, or users. \u003ccode\u003e#render_in\u003c/code\u003e now resets these ivars on every call so each render derives its context from the current view.\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 HTML-safety bypass in \u003ccode\u003earound_render\u003c/code\u003e. \u003ccode\u003eViewComponent::Base#around_render\u003c/code\u003e could return HTML-unsafe strings that bypassed the escaping applied to normal \u003ccode\u003e#call\u003c/code\u003e return values, creating an XSS risk. The vulnerability was amplified in \u003ccode\u003eViewComponent::Collection#render_in\u003c/code\u003e, which joined per-item results and unconditionally marked the output \u003ccode\u003ehtml_safe\u003c/code\u003e. HTML-unsafe strings returned from \u003ccode\u003earound_render\u003c/code\u003e are now escaped (with a warning) and \u003ccode\u003eCollection#render_in\u003c/code\u003e now uses \u003ccode\u003esafe_join\u003c/code\u003e so unsafe per-item output is escaped instead of laundered into a \u003ccode\u003eSafeBuffer\u003c/code\u003e.\n\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale render context on reused component instances. A \u003ccode\u003eViewComponent::Base\u003c/code\u003e instance memoized its controller, helpers, request, view context, lookup context, view flow, and requested format details on first render via \u003ccode\u003e||=\u003c/code\u003e. Rendering the same instance a second time (intentionally or via aliasing) reused that stale context, which could leak data across requests, sessions, or users. \u003ccode\u003e#render_in\u003c/code\u003e now resets these ivars on every call so each render derives its context from the current view.\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 HTML-safety bypass in \u003ccode\u003earound_render\u003c/code\u003e. \u003ccode\u003eViewComponent::Base#around_render\u003c/code\u003e could return HTML-unsafe strings that bypassed the escaping applied to normal \u003ccode\u003e#call\u003c/code\u003e return values, creating an XSS risk. The vulnerability was amplified in \u003ccode\u003eViewComponent::Collection#render_in\u003c/code\u003e, which joined per-item results and unconditionally marked the output \u003ccode\u003ehtml_safe\u003c/code\u003e. HTML-unsafe strings returned from \u003ccode\u003earound_render\u003c/code\u003e are now escaped (with a warning) and \u003ccode\u003eCollection#render_in\u003c/code\u003e now uses \u003ccode\u003esafe_join\u003c/code\u003e so unsafe per-item output is escaped instead of laundered into a \u003ccode\u003eSafeBuffer\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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/4cbdbaaf8fb37299926a5dc45be2ffc03e436fc1\"\u003e\u003ccode\u003e4cbdbaa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2649\"\u003e#2649\u003c/a\u003e from ViewComponent/release-4-12-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a8888e1bb3318f6af9c4b6aef1e1f3987c54a09c\"\u003e\u003ccode\u003ea8888e1\u003c/code\u003e\u003c/a\u003e Fix lint and bump allocation ranges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/02d88969bc2a7ad96a81d514a247de228b29425d\"\u003e\u003ccode\u003e02d8896\u003c/code\u003e\u003c/a\u003e lockfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/50a2bafb35c8675001ac727cdc8c8c77b8c35c95\"\u003e\u003ccode\u003e50a2baf\u003c/code\u003e\u003c/a\u003e release 4.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6796b2e89d0bd7b9d7d763a86275e5334731dd61\"\u003e\u003ccode\u003e6796b2e\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/015f42cd9253815ef8ba0c0fe6bb3c20ec414258\"\u003e\u003ccode\u003e015f42c\u003c/code\u003e\u003c/a\u003e clean up changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5963e485483c9cc9fd8240877c65bab920025410\"\u003e\u003ccode\u003e5963e48\u003c/code\u003e\u003c/a\u003e simplify\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/53106bebd1994145202940f66204248212abe2cd\"\u003e\u003ccode\u003e53106be\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/7b05073be28037f7d5ff141e9dd42f3cf47956a4\"\u003e\u003ccode\u003e7b05073\u003c/code\u003e\u003c/a\u003e fix  Reused component instances retain stale render context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/48e5fd2d602344c7d33019fbc5c8b087e315bb78\"\u003e\u003ccode\u003e48e5fd2\u003c/code\u003e\u003c/a\u003e fix for around_render safety gap\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.9.0...v4.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dsfr-form_builder` from 0.0.13 to 0.0.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betagouv/dsfr-form-builder/commit/58f5ca00e1cf95228b0f47d58631beb6c5195f99\"\u003e\u003ccode\u003e58f5ca0\u003c/code\u003e\u003c/a\u003e release 0.0.14 (\u003ca href=\"https://redirect.github.com/betagouv/dsfr-form-builder/issues/76\"\u003e#76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betagouv/dsfr-form-builder/commit/32ae02c313fa8a5c9df1fe5067521ba1676ee56f\"\u003e\u003ccode\u003e32ae02c\u003c/code\u003e\u003c/a\u003e Correctif du passage de l'option data aux champs input textuels (\u003ca href=\"https://redirect.github.com/betagouv/dsfr-form-builder/issues/73\"\u003e#73\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/betagouv/dsfr-form-builder/compare/v0.0.13...v0.0.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `friendly_id` from 5.6.0 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/norman/friendly_id/releases\"\u003efriendly_id's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.7.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReduce gem size by excluding test files by \u003ca href=\"https://github.com/yuri-zubov\"\u003e\u003ccode\u003e@​yuri-zubov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/norman/friendly_id/pull/1042\"\u003enorman/friendly_id#1042\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/yuri-zubov\"\u003e\u003ccode\u003e@​yuri-zubov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/norman/friendly_id/pull/1042\"\u003enorman/friendly_id#1042\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/norman/friendly_id/compare/v5.6.0...v5.7.0\"\u003ehttps://github.com/norman/friendly_id/compare/v5.6.0...v5.7.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/norman/friendly_id/blob/master/Changelog.md\"\u003efriendly_id's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFriendlyId Changelog\u003c/h1\u003e\n\u003cp\u003eWe would like to think our many \u003ca href=\"https://github.com/norman/friendly_id/graphs/contributors\"\u003econtributors\u003c/a\u003e for\nsuggestions, ideas and improvements to FriendlyId.\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/norman/friendly_id/commit/c66779c8780f14d211ae3ce469a01c7efeb83fdd\"\u003e\u003ccode\u003ec66779c\u003c/code\u003e\u003c/a\u003e Bump version to 5.7.0 (\u003ca href=\"https://redirect.github.com/norman/friendly_id/issues/1044\"\u003e#1044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/norman/friendly_id/commit/cf4b81c8024c8b482c032a2d987a8065bab4b585\"\u003e\u003ccode\u003ecf4b81c\u003c/code\u003e\u003c/a\u003e Reduce gem size by excluding test files (\u003ca href=\"https://redirect.github.com/norman/friendly_id/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/norman/friendly_id/compare/v5.6.0...v5.7.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.34.3 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\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-check methods such as \u003ccode\u003ekey?\u003c/code\u003e, \u003ccode\u003ehas_key?\u003c/code\u003e, \u003ccode\u003einclude?\u003c/code\u003e, and \u003ccode\u003emember?\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/1620\"\u003e#1620\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using type-check methods such as \u003ccode\u003eis_a?\u003c/code\u003e, \u003ccode\u003ekind_of?\u003c/code\u003e, and \u003ccode\u003einstance_of?\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\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.0\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. (\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\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-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\u003ch2\u003e2.35.2 (2026-05-19)\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\u003e2.35.1 (2026-05-17)\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-check methods such as \u003ccode\u003ekey?\u003c/code\u003e, \u003ccode\u003ehas_key?\u003c/code\u003e, \u003ccode\u003einclude?\u003c/code\u003e, and \u003ccode\u003emember?\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/1620\"\u003e#1620\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using type-check methods such as \u003ccode\u003eis_a?\u003c/code\u003e, \u003ccode\u003ekind_of?\u003c/code\u003e, and \u003ccode\u003einstance_of?\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\u003c/ul\u003e\n\u003ch2\u003e2.35.0 (2026-05-09)\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. ([\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. ([\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. ([\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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.34.3...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","html_url":"https://github.com/betagouv/acces-cible/pull/584","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/betagouv%2Facces-cible/issues/584","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/584/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":"4508256520","node_id":"PR_kwDORWFnQ87en7nD","number":11,"state":"closed","title":"chore(deps): bump view_component from 4.4.0 to 4.11.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-14T02:28:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-23T13:11:46.000Z","updated_at":"2026-06-14T02:28:20.000Z","time_to_close":1862193,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"view_component","old_version":"4.4.0","new_version":"4.11.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.4.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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.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\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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/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.4.0...v4.11.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.4.0\u0026new-version=4.11.0)](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/amateo8282/teovibe/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/amateo8282%2Fteovibe/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"},{"uuid":"4480634197","node_id":"PR_kwDONX_SkM7dO20w","number":254,"state":"closed","title":"Bump view_component from 4.10.0 to 4.11.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-20T05:22:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T20:04:54.000Z","updated_at":"2026-05-20T05:22:25.000Z","time_to_close":33449,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.10.0","new_version":"4.11.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/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\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=view_component\u0026package-manager=bundler\u0026previous-version=4.10.0\u0026new-version=4.11.0)](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/sergey-arkhipov/Rails-8.0-template/pull/254","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergey-arkhipov%2FRails-8.0-template/issues/254","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/254/packages"},{"uuid":"4473562742","node_id":"PR_kwDOO_Q96s7c3-Mo","number":97,"state":"closed","title":"chore(deps): Bump view_component from 4.6.0 to 4.10.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T21:15:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T00:43:08.000Z","updated_at":"2026-05-25T21:15:54.000Z","time_to_close":592364,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.10.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.10.0)](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/ericboehs/rails-starter/pull/97","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericboehs%2Frails-starter/issues/97","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/97/packages"},{"uuid":"4471611584","node_id":"PR_kwDOPmBpWM7cxqM-","number":11,"state":"closed","title":"Bump the bundler group across 1 directory with 18 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-27T00:18:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-18T18:35:05.000Z","updated_at":"2026-05-27T00:18:24.000Z","time_to_close":711797,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":18,"packages":[{"name":"addressable","old_version":"2.8.7","new_version":"2.9.0","repository_url":"https://github.com/sporkmonger/addressable"},{"name":"bcrypt","old_version":"3.1.20","new_version":"3.1.22","repository_url":"https://github.com/bcrypt-ruby/bcrypt-ruby"},{"name":"nokogiri","old_version":"1.18.9","new_version":"1.19.3","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"carrierwave","old_version":"1.3.4","new_version":"2.2.6","repository_url":"https://github.com/carrierwaveuploader/carrierwave"},{"name":"aws-sdk-s3","old_version":"1.198.0","new_version":"1.208.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"view_component","old_version":"3.23.2","new_version":"4.11.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.5","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.5","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.5","repository_url":"https://github.com/rails/rails"},{"name":"css_parser","old_version":"1.21.1","new_version":"1.22.0","repository_url":"https://github.com/premailer/css_parser"},{"name":"erb","old_version":"5.0.2","new_version":"6.0.4","repository_url":"https://github.com/ruby/erb"}],"path":null,"ecosystem":"rubygems"},"body":"Updates the requirements on [addressable](https://github.com/sporkmonger/addressable), [bcrypt](https://github.com/bcrypt-ruby/bcrypt-ruby), [nokogiri](https://github.com/sparklemotion/nokogiri), [carrierwave](https://github.com/carrierwaveuploader/carrierwave), [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby), [view_component](https://github.com/viewcomponent/view_component), [actionview](https://github.com/rails/rails), [activestorage](https://github.com/rails/rails), [activesupport](https://github.com/rails/rails), [css_parser](https://github.com/premailer/css_parser), [erb](https://github.com/ruby/erb), [faraday](https://github.com/lostisland/faraday), [jwt](https://github.com/jwt/ruby-jwt), [net-imap](https://github.com/ruby/net-imap), [rack](https://github.com/rack/rack), [rexml](https://github.com/ruby/rexml), [uri](https://github.com/ruby/uri) and [yard](https://yardoc.org) to permit the latest version.\nUpdates `addressable` from 2.8.7 to 2.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md\"\u003eaddressable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAddressable 2.9.0 \u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixes ReDoS vulnerability in Addressable::Template#match (fixes incomplete\nremediation in 2.8.10)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAddressable 2.8.10 \u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixes ReDoS vulnerability in Addressable::Template#match\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAddressable 2.8.9 \u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReduce gem size by excluding test files (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNo need for bundler as development dependency (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/571\"\u003e#571\u003c/a\u003e, \u003ca href=\"https://github.com/sporkmonger/addressable/commit/5fc1d93\"\u003e5fc1d93\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eidna/pure: stop building the useless \u003ccode\u003eCOMPOSITION_TABLE\u003c/code\u003e (removes the \u003ccode\u003eAddressable::IDNA::COMPOSITION_TABLE\u003c/code\u003e constant) (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/569\"\u003e#569\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/569\"\u003esporkmonger/addressable#569\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/571\"\u003e#571\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/571\"\u003esporkmonger/addressable#571\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/564\"\u003e#564\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/564\"\u003esporkmonger/addressable#564\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eAddressable 2.8.8 \u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace the \u003ccode\u003eunicode.data\u003c/code\u003e blob by a ruby constant (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003epublic_suffix\u003c/code\u003e 7 (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/561\"\u003e#561\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/561\"\u003esporkmonger/addressable#561\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/558\"\u003e#558\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/558\"\u003esporkmonger/addressable#558\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/sporkmonger/addressable/commit/0c3e8589b23d4402903a9b4e1fdeba4e43c52ca4\"\u003e\u003ccode\u003e0c3e858\u003c/code\u003e\u003c/a\u003e Revving version and changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/91915c1f7aafa3e2c9f42e2f4e21d948c7a861b8\"\u003e\u003ccode\u003e91915c1\u003c/code\u003e\u003c/a\u003e Fixing additional vulnerable paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/a091e39ff02fc321b21dea3a0df585bef2ba3744\"\u003e\u003ccode\u003ea091e39\u003c/code\u003e\u003c/a\u003e Add many more adversarial test cases to ensure we don't have any ReDoS regres...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/463a819665a3b85ce5ce894c90bd7bfa3b9d2e15\"\u003e\u003ccode\u003e463a819\u003c/code\u003e\u003c/a\u003e Regenerate gemspec on newer rubygems\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/0afcb0b9672bee301e5e96ed850fec05b2fcabb0\"\u003e\u003ccode\u003e0afcb0b\u003c/code\u003e\u003c/a\u003e Improve from O(n^2) to O(n)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/c87f768f22ab00376ed2f8cb106f59c9d0652d3a\"\u003e\u003ccode\u003ec87f768\u003c/code\u003e\u003c/a\u003e Fix a ReDoS vulnerability in URI template matching\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/0d7e9b259fb0940d1a85064b04f678a7984409a5\"\u003e\u003ccode\u003e0d7e9b2\u003c/code\u003e\u003c/a\u003e Fix links for 2.8.9 in CHANGELOG (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/e2091200b31553f19248eb871f071852409796f8\"\u003e\u003ccode\u003ee209120\u003c/code\u003e\u003c/a\u003e Update version, gemspec, and CHANGELOG for 2.8.9 (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/387587492b6536748ed12a11c3fdb44a48885f28\"\u003e\u003ccode\u003e3875874\u003c/code\u003e\u003c/a\u003e Reduce gem size by excluding test files (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/3e57cc6018f94231aabb47fd341acd1b40f1e71a\"\u003e\u003ccode\u003e3e57cc6\u003c/code\u003e\u003c/a\u003e CI: back to \u003ccode\u003ewindows-2022\u003c/code\u003e for MRI job\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sporkmonger/addressable/compare/addressable-2.8.7...addressable-2.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bcrypt` from 3.1.20 to 3.1.22\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/releases\"\u003ebcrypt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove compilation after bundle install by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/291\"\u003ebcrypt-ruby/bcrypt-ruby#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TruffleRuby in CI by \u003ca href=\"https://github.com/tjschuck\"\u003e\u003ccode\u003e@​tjschuck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/293\"\u003ebcrypt-ruby/bcrypt-ruby#293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix env url by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/294\"\u003ebcrypt-ruby/bcrypt-ruby#294\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\"\u003ehttps://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProvide a 'Changelog' link on rubygems.org/gems/bcrypt by \u003ca href=\"https://github.com/mark-young-atg\"\u003e\u003ccode\u003e@​mark-young-atg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/274\"\u003ebcrypt-ruby/bcrypt-ruby#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport ruby 3.3 and 3.4.0-preview1 by \u003ca href=\"https://github.com/m-nakamura145\"\u003e\u003ccode\u003e@​m-nakamura145\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/276\"\u003ebcrypt-ruby/bcrypt-ruby#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark as ractor-safe by \u003ca href=\"https://github.com/mohamedhafez\"\u003e\u003ccode\u003e@​mohamedhafez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/280\"\u003ebcrypt-ruby/bcrypt-ruby#280\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd == gotcha that can be unintuitive at first by \u003ca href=\"https://github.com/federicoaldunate\"\u003e\u003ccode\u003e@​federicoaldunate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/279\"\u003ebcrypt-ruby/bcrypt-ruby#279\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConstant compare by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/282\"\u003ebcrypt-ruby/bcrypt-ruby#282\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etry to modernize CI by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/287\"\u003ebcrypt-ruby/bcrypt-ruby#287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTry to deal with flaky tests by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/288\"\u003ebcrypt-ruby/bcrypt-ruby#288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConfigure trusted publishing by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/289\"\u003ebcrypt-ruby/bcrypt-ruby#289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump version by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/290\"\u003ebcrypt-ruby/bcrypt-ruby#290\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/mark-young-atg\"\u003e\u003ccode\u003e@​mark-young-atg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/274\"\u003ebcrypt-ruby/bcrypt-ruby#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/m-nakamura145\"\u003e\u003ccode\u003e@​m-nakamura145\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/276\"\u003ebcrypt-ruby/bcrypt-ruby#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mohamedhafez\"\u003e\u003ccode\u003e@​mohamedhafez\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/280\"\u003ebcrypt-ruby/bcrypt-ruby#280\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/federicoaldunate\"\u003e\u003ccode\u003e@​federicoaldunate\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/279\"\u003ebcrypt-ruby/bcrypt-ruby#279\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.20...v3.1.21\"\u003ehttps://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.20...v3.1.21\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/bcrypt-ruby/bcrypt-ruby/blob/master/CHANGELOG\"\u003ebcrypt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.1.22 Mar 18 2026\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CVE-2026-33306] Fix integer overflow in Java extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.1.21 Dec 31 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse constant time comparisons\u003c/li\u003e\n\u003cli\u003eMark as Ractor safe\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/bcrypt-ruby/bcrypt-ruby/commit/831ce64cb0a9502130fa93a28bfd9527a5fa45c4\"\u003e\u003ccode\u003e831ce64\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/32e687ec5f62baad01a62e4634e41d97f8432a61\"\u003e\u003ccode\u003e32e687e\u003c/code\u003e\u003c/a\u003e bump version update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/5faa2748331d3edc661c127ef2fbb3afcb6b02a4\"\u003e\u003ccode\u003e5faa274\u003c/code\u003e\u003c/a\u003e Fix integer overflow in JRuby BCrypt rounds calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/aafc0332ac1aa0d774f2c864439596436f92d18d\"\u003e\u003ccode\u003eaafc033\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/294\"\u003e#294\u003c/a\u003e from bcrypt-ruby/fix-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/01f947a66ad8c5e20d8c89d9adbc7e3bd49afb70\"\u003e\u003ccode\u003e01f947a\u003c/code\u003e\u003c/a\u003e fix env url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/92ca1d67deeb8e64dbe779396c52b177e307bc43\"\u003e\u003ccode\u003e92ca1d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/293\"\u003e#293\u003c/a\u003e from bcrypt-ruby/truffleruby-ci-alt-implementation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/4d1d95b8ec624d0cf8ed1099402a7edd2f308da2\"\u003e\u003ccode\u003e4d1d95b\u003c/code\u003e\u003c/a\u003e Add TruffleRuby in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/36a04a2278fae3b38100912ff489b86cd0984b8a\"\u003e\u003ccode\u003e36a04a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/291\"\u003e#291\u003c/a\u003e from tenderlove/fix-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/01cc68835f0bcdd7ef16de477471c112adb417da\"\u003e\u003ccode\u003e01cc688\u003c/code\u003e\u003c/a\u003e Move compilation after bundle install\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/82e6c4c6cf81912768c68d721372e78330ff2c92\"\u003e\u003ccode\u003e82e6c4c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/290\"\u003e#290\u003c/a\u003e from tenderlove/bump\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.20...v3.1.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nokogiri` from 1.18.9 to 1.19.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/nokogiri/releases\"\u003enokogiri's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.3 / 2026-04-27\u003c/h2\u003e\n\u003ch3\u003eFixed / Security\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddress exponential regex backtracking in CSS selector tokenizer. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-c4rq-3m3g-8wgx\"\u003eGHSA-c4rq-3m3g-8wgx\u003c/a\u003e for more information.\u003c/li\u003e\n\u003cli\u003e[CRuby] Address memory leak in \u003ccode\u003eXSLT::Stylesheet#transform\u003c/code\u003e. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-v2fc-qm4h-8hqv\"\u003eGHSA-v2fc-qm4h-8hqv\u003c/a\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003e46b89e5d7b9e844c2ee360794240c6ea2a4e6fa0c5892a4ed487db621224b639  nokogiri-1.19.3-aarch64-linux-gnu.gem\r\n8392dfdcd21be7a94dbbe9ccc138dea01b97b24cb2dc02a114ca98bfb1d9a0b7  nokogiri-1.19.3-aarch64-linux-musl.gem\r\n3919d5ffc334ad778a4a9eb88fda7dcb8b1fb58c8a52ac640c6dcd2f038e774f  nokogiri-1.19.3-arm-linux-gnu.gem\r\n9ce1cb6346bb9c67b1550eb537aa183ead91e4b6eadb2f36ade02d8dd2a79fb6  nokogiri-1.19.3-arm-linux-musl.gem\r\n71b9bd424b1b7abc18b05052a1a3cfd3627abdca62be280854cc411791357e42  nokogiri-1.19.3-arm64-darwin.gem\r\n40ea6ebf5cf2005dae1dee26dd557d3afb41fb6de6c9764aca8cf06fdb841db1  nokogiri-1.19.3-java.gem\r\n8bb7132cad356c879a1286eaabcb5e68326cb2490317984280fbc62f456d506a  nokogiri-1.19.3-x64-mingw-ucrt.gem\r\n77f3fba57d46c53ab31e62fc6c28f705109d1bf6264356c76f132b2be5728d4d  nokogiri-1.19.3-x86_64-darwin.gem\r\n2f5078620fe12e83669b5b17311b32532a8153d02eee7ad06948b926d6080976  nokogiri-1.19.3-x86_64-linux-gnu.gem\r\n248c906d2166eca5efb56d52fdee5f9a1f51d69a72e2b64fdac647b4ce39ea3f  nokogiri-1.19.3-x86_64-linux-musl.gem\r\n78312cbac32a40c812780d9678221b79d51288eec00054c1a8d15f7ce05960e8  nokogiri-1.19.3.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev1.19.2 / 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[JRuby] Saxon-HE is updated to 12.7, from 9.6.0-4. Saxon-HE is a transitive dependency of nu.validator:jing, and this update addresses CVEs in Saxon-HE's own transitive dependencies JDOM and dom4j. We don't think this warrants a security release, however we're cutting a patch release to help users whose security scanners are flagging this. \u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3611\"\u003e#3611\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\u003eSHA256 Checksums\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003ec34d5c8208025587554608e98fd88ab125b29c80f9352b821964e9a5d5cfbd19  nokogiri-1.19.2-aarch64-linux-gnu.gem\r\n7f6b4b0202d507326841a4f790294bf75098aef50c7173443812e3ac5cb06515  nokogiri-1.19.2-aarch64-linux-musl.gem\r\nb7fa1139016f3dc850bda1260988f0d749934a939d04ef2da13bec060d7d5081  nokogiri-1.19.2-arm-linux-gnu.gem\r\n61114d44f6742ff72194a1b3020967201e2eb982814778d130f6471c11f9828c  nokogiri-1.19.2-arm-linux-musl.gem\r\n58d8ea2e31a967b843b70487a44c14c8ba1866daa1b9da9be9dbdf1b43dee205  nokogiri-1.19.2-arm64-darwin.gem\r\ne9d67034bc80ca71043040beea8a91be5dc99b662daa38a2bfb361b7a2cc8717  nokogiri-1.19.2-java.gem\r\n8ccf25eea3363a2c7b3f2e173a3400582c633cfead27f805df9a9c56d4852d1a  nokogiri-1.19.2-x64-mingw-ucrt.gem\r\n7d9af11fda72dfaa2961d8c4d5380ca0b51bc389dc5f8d4b859b9644f195e7a4  nokogiri-1.19.2-x86_64-darwin.gem\r\nfa8feca882b73e871a9845f3817a72e9734c8e974bdc4fbad6e4bc6e8076b94f  nokogiri-1.19.2-x86_64-linux-gnu.gem\r\n93128448e61a9383a30baef041bf1f5817e22f297a1d400521e90294445069a8  nokogiri-1.19.2-x86_64-linux-musl.gem\r\n38fdd8b59db3d5ea9e7dfb14702e882b9bf819198d5bf976f17ebce12c481756  nokogiri-1.19.2.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sparklemotion/nokogiri/compare/v1.19.1...v1.19.2\"\u003ehttps://github.com/sparklemotion/nokogiri/compare/v1.19.1...v1.19.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.19.1 / 2026-02-16\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md\"\u003enokogiri's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.3 / 2026-04-27\u003c/h2\u003e\n\u003ch3\u003eFixed / Security\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddress exponential regex backtracking in CSS selector tokenizer. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-c4rq-3m3g-8wgx\"\u003eGHSA-c4rq-3m3g-8wgx\u003c/a\u003e for more information.\u003c/li\u003e\n\u003cli\u003e[CRuby] Address memory leak in \u003ccode\u003eXSLT::Stylesheet#transform\u003c/code\u003e. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-v2fc-qm4h-8hqv\"\u003eGHSA-v2fc-qm4h-8hqv\u003c/a\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.19.2 / 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[JRuby] Saxon-HE is updated to 12.7, from 9.6.0-4. Saxon-HE is a transitive dependency of nu.validator:jing, and this update addresses CVEs in Saxon-HE's own transitive dependencies JDOM and dom4j. We don't think this warrants a security release, however we're cutting a patch release to help users whose security scanners are flagging this. \u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3611\"\u003e#3611\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\u003ev1.19.1 / 2026-02-16\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[CRuby] Address unchecked return value from \u003ccode\u003exmlC14NExecute\u003c/code\u003e which was a contributing cause to ruby-saml GHSA-x4h9-gwv3-r4m4. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-wx95-c6cv-8532\"\u003eGHSA-wx95-c6cv-8532\u003c/a\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.19.0 / 2025-12-28\u003c/h2\u003e\n\u003ch4\u003eRuby\u003c/h4\u003e\n\u003cp\u003eThis release is focused on changes to Ruby version support, and is otherwise functionally identical to v1.18.10.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce native gem support for Ruby 4.0. \u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3590\"\u003e#3590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnd support for Ruby 3.1, for which \u003ca href=\"https://www.ruby-lang.org/en/downloads/branches/\"\u003eupstream support ended 2025-03-26\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnd support for JRuby 9.4 (which targets Ruby 3.1 compatibility).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.18.10 / 2025-09-15\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[CRuby] Vendored libxml2 is updated to \u003ca href=\"https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.13.9\"\u003ev2.13.9\u003c/a\u003e. Note that the security fixes published in v2.13.9 were already present in Nokogiri v1.18.9.\u003c/li\u003e\n\u003cli\u003e[CRuby] [Windows and MacOS] Vendored libiconv is updated to \u003ca href=\"https://savannah.gnu.org/news/?id=10703\"\u003ev1.18\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/sparklemotion/nokogiri/commit/c139a3da0fe0cae7499a0bafa20f2875877c585b\"\u003e\u003ccode\u003ec139a3d\u003c/code\u003e\u003c/a\u003e version bump to v1.19.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/7501a63b9f4246d12516e35b91fed8be34f854c0\"\u003e\u003ccode\u003e7501a63\u003c/code\u003e\u003c/a\u003e fix: backtracking in CSS tokenizer rules (v1.19.x backport) (\u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3627\"\u003e#3627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/03e7968a730a6544ab56a8d6c3e82dd630ad4339\"\u003e\u003ccode\u003e03e7968\u003c/code\u003e\u003c/a\u003e test: skip CSS tokenizer benchmarks on JRuby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/b984b7e47f622d1aa97d54c16d5cd596c3eb9538\"\u003e\u003ccode\u003eb984b7e\u003c/code\u003e\u003c/a\u003e fix: ReDoS in CSS tokenizer ident rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/00926231e28d5a20e5b4873efba36099aea0d5c6\"\u003e\u003ccode\u003e0092623\u003c/code\u003e\u003c/a\u003e fix: ReDoS in CSS tokenizer STRING rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/ee17d33aff3adb30c14e71d3d4c8163465acaccf\"\u003e\u003ccode\u003eee17d33\u003c/code\u003e\u003c/a\u003e fix: memory leak in XSLT transform (backport to v1.19.x) (\u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3624\"\u003e#3624\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/ce188a395192e3757d8701949afb643dc025084c\"\u003e\u003ccode\u003ece188a3\u003c/code\u003e\u003c/a\u003e doc: update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/caeaac41f874f0944f9397c78bf6c1bfac2cb472\"\u003e\u003ccode\u003ecaeaac4\u003c/code\u003e\u003c/a\u003e fix: memory leak in XSLT transform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/25220bf268c9808e28415563ed7f8ea8d5c332bf\"\u003e\u003ccode\u003e25220bf\u003c/code\u003e\u003c/a\u003e dep(test): test against libxml-ruby v6 (\u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3618\"\u003e#3618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/0caeb21a5c5e9ff45bbede88fb53655f6753bb0e\"\u003e\u003ccode\u003e0caeb21\u003c/code\u003e\u003c/a\u003e doc: add security warnings for untrusted XSLT stylesheets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/nokogiri/compare/v1.18.9...v1.19.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `carrierwave` from 1.3.4 to 2.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/releases\"\u003ecarrierwave's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.6\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Content-Type allowlist bypass vulnerability remained (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/431787193795dda9b01a0ee748bd93e2ec7101c2\"\u003e4317871\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/security/advisories/GHSA-vfmv-jfc5-pjjw\"\u003eGHSA-vfmv-jfc5-pjjw\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.5\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Content-Type allowlist bypass vulnerability, possibly leading to XSS (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/39b282db5c1303899b3d3381ce8a837840f983b5\"\u003e39b282d\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/security/advisories/GHSA-gxhx-g4fq-49hj\"\u003eGHSA-gxhx-g4fq-49hj\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Ruby 2.7 keyword argument warning in uploader process (\u003ca href=\"https://github.com/SuperTux88\"\u003e\u003ccode\u003e@​SuperTux88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2665\"\u003e#2665\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2636\"\u003e#2636\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2635\"\u003e#2635\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workaround for 'undefined method closed?' error caused by ssrf_filter 1.1 (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/c74579d382ad124193e80cc5af71824a23de57e6\"\u003ec74579d\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2628\"\u003e#2628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd workaround for the API change in ssrf_filter 1.1 (\u003ca href=\"https://github.com/BrianHawley\"\u003e\u003ccode\u003e@​BrianHawley\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2629\"\u003e#2629\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2625\"\u003e#2625\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno implicit conversion of CSV into String\u003c/code\u003e error when parsing a CSV object (\u003ca href=\"https://github.com/pjmartorell\"\u003e\u003ccode\u003e@​pjmartorell\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2562\"\u003e#2562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mimemagic with marcel due to licensing concern (\u003ca href=\"https://github.com/pjmartorell\"\u003e\u003ccode\u003e@​pjmartorell\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2551\"\u003e#2551\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2548\"\u003e#2548\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFog storage's #clean_cache! breaks when non-cache objects exist in cache_dir (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/42c620a1a19afa61e15e617faa7ce9cc89ec1863\"\u003e42c620a1\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2532\"\u003e#2532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003elibvips support through \u003ca href=\"https://github.com/janko/image_processing\"\u003eImageProcessing::Vips\u003c/a\u003e and \u003ca href=\"https://github.com/libvips/ruby-vips\"\u003eruby-vips\u003c/a\u003e (\u003ca href=\"https://github.com/rhymes\"\u003e\u003ccode\u003e@​rhymes\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2500\"\u003e#2500\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/e84219787aa1c95a55cbc78ad062b7539d8e5813\"\u003ee8421978\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4ae8dc64ff0dcbcf66c6d79df90268d57438df55\"\u003e4ae8dc64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProvide alternatives to whitelist/blacklist terminology as allowlist/denylist, while old ones are still available but deprecated (\u003ca href=\"https://github.com/grantbdev\"\u003e\u003ccode\u003e@​grantbdev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2442\"\u003e#2442\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4c3cac75f3a473e941045c23ebb781f61af67d79\"\u003e4c3cac75\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for the latest version of RMagick (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/88f24451352bda128825f857cde473107d98fca7\"\u003e88f24451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e#(content_type|extension)_whitelist\u003c/code\u003e, \u003ccode\u003e#(content_type|extension)_blacklist\u003c/code\u003e are deprecated. Use \u003ccode\u003e#(content_type|extension)_allowlist\u003c/code\u003e and \u003ccode\u003e#(content_type|extension)_denylist\u003c/code\u003e instead (\u003ca href=\"https://github.com/grantbdev\"\u003e\u003ccode\u003e@​grantbdev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2442\"\u003e#2442\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4c3cac75f3a473e941045c23ebb781f61af67d79\"\u003e4c3cac75\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCalculate Fog expiration taking DST into account (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/f90e14ca91892d677ee6ed42321a21a2fe98f360\"\u003ef90e14ca\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2059\"\u003e#2059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet correct content type on copy of fog files (\u003ca href=\"https://github.com/ZuevEvgenii\"\u003e\u003ccode\u003e@​ZuevEvgenii\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2503\"\u003e#2503\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/6682f7ac5dd480269448a614026a5f4524e61550\"\u003e6682f7ac\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2487\"\u003e#2487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix fog-google support to pass acl_header for public read if fog is public (\u003ca href=\"https://github.com/yosiat\"\u003e\u003ccode\u003e@​yosiat\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2525\"\u003e#2525\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2426\"\u003e#2426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix various URL escape issues by escaping on URI parse error only (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/3faf7491e33bd10ae8b3e0010501fc96a76c21c3\"\u003e3faf7491\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2457\"\u003e#2457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2473\"\u003e#2473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix instance variables \u003ccode\u003e@versions_to_*\u003c/code\u003e not initialized warning (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/c10b82ed2f7b20cb58772281e3510dc70c410732\"\u003ec10b82ed\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSanitizedFile#move_to\u003c/code\u003e wrongly detects content_type based on the path before move (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/a42e1b4c504c6f69c4c4c7802ebd45523134c42e\"\u003ea42e1b4c\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2495\"\u003e#2495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix returning invalid content type on text files (\u003ca href=\"https://github.com/inkstak\"\u003e\u003ccode\u003e@​inkstak\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2474\"\u003e#2474\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2424\"\u003e#2424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip content type and extension filters where possible (\u003ca href=\"https://github.com/alexpooley\"\u003e\u003ccode\u003e@​alexpooley\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2464\"\u003e#2464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix file's \u003ccode\u003e#url\u003c/code\u003e being called twice, which might be costly for non-local files (\u003ca href=\"https://github.com/skyeagle\"\u003e\u003ccode\u003e@​skyeagle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mime type detection failing with types which contain \u003ccode\u003e+\u003c/code\u003e symbol, such as \u003ccode\u003eimage/svg+xml\u003c/code\u003e (\u003ca href=\"https://github.com/sylvainbx\"\u003e\u003ccode\u003e@​sylvainbx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2489\"\u003e#2489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e#cached?\u003c/code\u003e to return boolean instead of \u003ccode\u003e@cache_id\u003c/code\u003e value (\u003ca href=\"https://github.com/kmiyake\"\u003e\u003ccode\u003e@​kmiyake\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2510\"\u003e#2510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mime type detection for MS Office files (\u003ca href=\"https://github.com/anthonypenner\"\u003e\u003ccode\u003e@​anthonypenner\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2447\"\u003e#2447\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/carrierwaveuploader/carrierwave/blob/v2.2.6/CHANGELOG.md\"\u003ecarrierwave's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.6 - 2024-03-23\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Content-Type allowlist bypass vulnerability remained (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/431787193795dda9b01a0ee748bd93e2ec7101c2\"\u003e4317871\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/security/advisories/GHSA-vfmv-jfc5-pjjw\"\u003eGHSA-vfmv-jfc5-pjjw\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.5 - 2023-11-29\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Content-Type allowlist bypass vulnerability, possibly leading to XSS (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/39b282db5c1303899b3d3381ce8a837840f983b5\"\u003e39b282d\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/security/advisories/GHSA-gxhx-g4fq-49hj\"\u003eGHSA-gxhx-g4fq-49hj\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.4 - 2023-06-10\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Ruby 2.7 keyword argument warning in uploader process (\u003ca href=\"https://github.com/SuperTux88\"\u003e\u003ccode\u003e@​SuperTux88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2665\"\u003e#2665\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2636\"\u003e#2636\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2635\"\u003e#2635\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.3 - 2022-11-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workaround for 'undefined method closed?' error caused by ssrf_filter 1.1 (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/c74579d382ad124193e80cc5af71824a23de57e6\"\u003ec74579d\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2628\"\u003e#2628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd workaround for the API change in ssrf_filter 1.1 (\u003ca href=\"https://github.com/BrianHawley\"\u003e\u003ccode\u003e@​BrianHawley\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2629\"\u003e#2629\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2625\"\u003e#2625\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.2 - 2021-05-28\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno implicit conversion of CSV into String\u003c/code\u003e error when parsing a CSV object (\u003ca href=\"https://github.com/pjmartorell\"\u003e\u003ccode\u003e@​pjmartorell\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2562\"\u003e#2562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.1 - 2021-03-30\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mimemagic with marcel due to licensing concern (\u003ca href=\"https://github.com/pjmartorell\"\u003e\u003ccode\u003e@​pjmartorell\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2551\"\u003e#2551\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2548\"\u003e#2548\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFog storage's #clean_cache! breaks when non-cache objects exist in cache_dir (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/42c620a1a19afa61e15e617faa7ce9cc89ec1863\"\u003e42c620a1\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2532\"\u003e#2532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0 - 2021-02-23\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003elibvips support through \u003ca href=\"https://github.com/janko/image_processing\"\u003eImageProcessing::Vips\u003c/a\u003e and \u003ca href=\"https://github.com/libvips/ruby-vips\"\u003eruby-vips\u003c/a\u003e (\u003ca href=\"https://github.com/rhymes\"\u003e\u003ccode\u003e@​rhymes\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2500\"\u003e#2500\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/e84219787aa1c95a55cbc78ad062b7539d8e5813\"\u003ee8421978\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4ae8dc64ff0dcbcf66c6d79df90268d57438df55\"\u003e4ae8dc64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProvide alternatives to whitelist/blacklist terminology as allowlist/denylist, while old ones are still available but deprecated (\u003ca href=\"https://github.com/grantbdev\"\u003e\u003ccode\u003e@​grantbdev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2442\"\u003e#2442\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4c3cac75f3a473e941045c23ebb781f61af67d79\"\u003e4c3cac75\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for the latest version of RMagick (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/88f24451352bda128825f857cde473107d98fca7\"\u003e88f24451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e#(content_type|extension)_whitelist\u003c/code\u003e, \u003ccode\u003e#(content_type|extension)_blacklist\u003c/code\u003e are deprecated. Use \u003ccode\u003e#(content_type|extension)_allowlist\u003c/code\u003e and \u003ccode\u003e#(content_type|extension)_denylist\u003c/code\u003e instead (\u003ca href=\"https://github.com/grantbdev\"\u003e\u003ccode\u003e@​grantbdev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2442\"\u003e#2442\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4c3cac75f3a473e941045c23ebb781f61af67d79\"\u003e4c3cac75\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCalculate Fog expiration taking DST into account (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/f90e14ca91892d677ee6ed42321a21a2fe98f360\"\u003ef90e14ca\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2059\"\u003e#2059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet correct content type on copy of fog files (\u003ca href=\"https://github.com/ZuevEvgenii\"\u003e\u003ccode\u003e@​ZuevEvgenii\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2503\"\u003e#2503\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/6682f7ac5dd480269448a614026a5f4524e61550\"\u003e6682f7ac\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2487\"\u003e#2487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix fog-google support to pass acl_header for public read if fog is public (\u003ca href=\"https://github.com/yosiat\"\u003e\u003ccode\u003e@​yosiat\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2525\"\u003e#2525\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2426\"\u003e#2426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix various URL escape issues by escaping on URI parse error only (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/3faf7491e33bd10ae8b3e0010501fc96a76c21c3\"\u003e3faf7491\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2457\"\u003e#2457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2473\"\u003e#2473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix instance variables \u003ccode\u003e@versions_to_*\u003c/code\u003e not initialized warning (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/c10b82ed2f7b20cb58772281e3510dc70c410732\"\u003ec10b82ed\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSanitizedFile#move_to\u003c/code\u003e wrongly detects content_type based on the path before move (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/a42e1b4c504c6f69c4c4c7802ebd45523134c42e\"\u003ea42e1b4c\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2495\"\u003e#2495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix returning invalid content type on text files (\u003ca href=\"https://github.com/inkstak\"\u003e\u003ccode\u003e@​inkstak\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2474\"\u003e#2474\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2424\"\u003e#2424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip content type and extension filters where possible (\u003ca href=\"https://github.com/alexpooley\"\u003e\u003ccode\u003e@​alexpooley\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2464\"\u003e#2464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix file's \u003ccode\u003e#url\u003c/code\u003e being called twice, which might be costly for non-local files (\u003ca href=\"https://github.com/skyeagle\"\u003e\u003ccode\u003e@​skyeagle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mime type detection failing with types which contain \u003ccode\u003e+\u003c/code\u003e symbol, such as \u003ccode\u003eimage/svg+xml\u003c/code\u003e (\u003ca href=\"https://github.com/sylvainbx\"\u003e\u003ccode\u003e@​sylvainbx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2489\"\u003e#2489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e#cached?\u003c/code\u003e to return boolean instead of \u003ccode\u003e@cache_id\u003c/code\u003e value (\u003ca href=\"https://github.com/kmiyake\"\u003e\u003ccode\u003e@​kmiyake\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2510\"\u003e#2510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mime type detection for MS Office files (\u003ca href=\"https://github.com/anthonypenner\"\u003e\u003ccode\u003e@​anthonypenner\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2447\"\u003e#2447\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/carrierwaveuploader/carrierwave/commit/eb6359e79fee43d1c480b0f50d9a585b3c3b1c1c\"\u003e\u003ccode\u003eeb6359e\u003c/code\u003e\u003c/a\u003e Version 2.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/431787193795dda9b01a0ee748bd93e2ec7101c2\"\u003e\u003ccode\u003e4317871\u003c/code\u003e\u003c/a\u003e Fix Content-Type allowlist bypass vulnerability remained\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/0fcff94cebce07b856531d6502b11466e8331409\"\u003e\u003ccode\u003e0fcff94\u003c/code\u003e\u003c/a\u003e Version 2.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/39b282db5c1303899b3d3381ce8a837840f983b5\"\u003e\u003ccode\u003e39b282d\u003c/code\u003e\u003c/a\u003e Fix Content-Type allowlist bypass vulnerability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/2f91bee6487d8e5d8bd2c1a88dd25269a2c1e4d0\"\u003e\u003ccode\u003e2f91bee\u003c/code\u003e\u003c/a\u003e Version 2.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/2f2d77a42e9f871ae342920581050cc6669e5c7c\"\u003e\u003ccode\u003e2f2d77a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2665\"\u003e#2665\u003c/a\u003e from SuperTux88/backport-kwargs-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/52237f4992c1dd39dca3bdbac7aa6b242947915d\"\u003e\u003ccode\u003e52237f4\u003c/code\u003e\u003c/a\u003e fix: ruby 2.7 kwarg warning in uploader process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/bdb0be021107a75faabdce4121e493ad3efdcea4\"\u003e\u003ccode\u003ebdb0be0\u003c/code\u003e\u003c/a\u003e File.exists? had been deprecated since Ruby 2.1 and has been deleted in Ruby 3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/ed8c518c8ac0186cb25623895ca40706a65bb7cd\"\u003e\u003ccode\u003eed8c518\u003c/code\u003e\u003c/a\u003e Forward to 1.x changelog for older changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/baf5df7d9acea95f46eaea456743241ef3d644f5\"\u003e\u003ccode\u003ebaf5df7\u003c/code\u003e\u003c/a\u003e Version 2.2.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/compare/v1.3.4...v2.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-s3` from 1.198.0 to 1.208.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.208.0 (2025-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updates to the S3 Encryption Client. The V3 S3 Encryption Client now requires key committing algorithm suites by default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.207.0 (2025-12-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - This release adds support for the new optional field 'LifecycleExpirationDate' in S3 Inventory configurations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.206.0 (2025-12-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - New S3 Storage Class FSX_ONTAP\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.205.0 (2025-11-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Enable / Disable ABAC on a general purpose bucket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.204.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Adds support for blocking SSE-C writes to general purpose buckets.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.203.1 (2025-11-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Deprecated \u003ccode\u003e:checksum_mode\u003c/code\u003e parameter in \u003ccode\u003eFileDownloader#download\u003c/code\u003e. When set to \u0026quot;DISABLED\u0026quot;, a deprecation warning is issued and the parameter is ignored. Use \u003ccode\u003e:response_checksum_validation\u003c/code\u003e on the S3 client instead to control checksum validation behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.203.0 (2025-11-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Launch IPv6 dual-stack support for S3 Express\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.202.0 (2025-10-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Amazon Simple Storage Service / Features: Add conditional writes in CopyObject on destination key to prevent unintended object modifications.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.201.0 (2025-10-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\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/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix multipart upload to respect \u003ccode\u003erequest_checksum_calculation\u003c/code\u003e \u003ccode\u003ewhen_required\u003c/code\u003e mode.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.200.0 (2025-10-15)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\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 `view_component` from 3.23.2 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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.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\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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/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/v3.23.2...v4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.5\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\r\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\u003c/em\u003e\u003c/p\u003e\n\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\u003e\n\u003cp\u003eFix \u003ccode\u003einsert_all\u003c/code\u003e and \u003ccode\u003eupsert_all\u003c/code\u003e log message when called on anonymous classes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGabriel Sobrinho\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003eActiveRecord::SchemaDumper.ignore_tables\u003c/code\u003e when dumping SQLite virtual tables.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Schnedlitz\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestore previous instrumenter after \u003ccode\u003eexecute_or_skip\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/eb126bb140127d3589ad9be093a845e24fc4f475\"\u003e\u003ccode\u003eeb126bb\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f7fe4a5297dac5e1184747ce53e0305c56f487c3\"\u003e\u003ccode\u003ef7fe4a5\u003c/code\u003e\u003c/a\u003e Merge branch '8-0-sec' into 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a79efed95797b196575a98845dc989e3106a9acb\"\u003e\u003ccode\u003ea79efed\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ac7979b1183bd659779245eaf2850f666cb8aafe\"\u003e\u003ccode\u003eac7979b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c79a07df1e88738df8f68cb0ee759ad6128ca924\"\u003e\u003ccode\u003ec79a07d\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/853e56de62dcdec036228e56414b49049da5b83a\"\u003e\u003ccode\u003e853e56d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56906\"\u003e#56906\u003c/a\u003e from kataokatsuki/fix-strict-locals-non-ascii-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f64c3d09ace91c011e0628c9d8cf6ea9874ffe9f\"\u003e\u003ccode\u003ef64c3d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56891\"\u003e#56891\u003c/a\u003e from pietervisser/fix-collection-caching-to-preserv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0a8792a661211963068f76bdc5f158b873979927\"\u003e\u003ccode\u003e0a8792a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56389\"\u003e#56389\u003c/a\u003e from bogdan/semantic-file-input-accept\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ea29cee26f240ad46051be4ddf47d0351fce1a18\"\u003e\u003ccode\u003eea29cee\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56316\"\u003e#56316\u003c/a\u003e from shivabhusal/support-closing_parenthesis-in-nex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/950d80c33c462f16897344f0293039b12fbb54ab\"\u003e\u003ccode\u003e950d80c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56270\"\u003e#56270\u003c/a\u003e from Saidbek/fix-multiline-strict-locals-parsing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.5\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\r\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\u003c/em\u003e\u003c/p\u003e\n\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\u003e\n\u003cp\u003eFix \u003ccode\u003einsert_all\u003c/code\u003e and \u003ccode\u003eupsert_all\u003c/code\u003e log message when called on anonymous classes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGabriel Sobrinho\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003eActiveRecord::SchemaDumper.ignore_tables\u003c/code\u003e when dumping SQLite virtual tables.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Schnedlitz\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestore previous instrumenter after \u003ccode\u003eexecute_or_skip\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/eb126bb140127d3589ad9be093a845e24fc4f475\"\u003e\u003ccode\u003eeb126bb\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f7fe4a5297dac5e1184747ce53e0305c56f487c3\"\u003e\u003ccode\u003ef7fe4a5\u003c/code\u003e\u003c/a\u003e Merge branch '8-0-sec' into 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a79efed95797b196575a98845dc989e3106a9acb\"\u003e\u003ccode\u003ea79efed\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ac7979b1183bd659779245eaf2850f666cb8aafe\"\u003e\u003ccode\u003eac7979b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/955284d26e469a9c026a4eee5b21f0414ab0bccf\"\u003e\u003ccode\u003e955284d\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a290c8a1ec189d793aa6d7f2570b6a763f675348\"\u003e\u003ccode\u003ea290c8a\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8fcb934caadc79c8cc4ce53287046d0f67005b3e\"\u003e\u003ccode\u003e8fcb934\u003c/code\u003e\u003c/a\u003e Active Storage: Filter user supplied metadata in DirectUploadController\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d7da4ef03f99035fba5add8828646f1e9173549c\"\u003e\u003ccode\u003ed7da4ef\u003c/code\u003e\u003c/a\u003e ActiveStorage::Streaming limit range requests to a single range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cd933c366b777f873d4d590127da2f4a25e4ba5\"\u003e\u003ccode\u003e2cd933c\u003c/code\u003e\u003c/a\u003e Configurable maxmimum streaming chunk size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3dc1be9084c93d5b5990476bd153c18ae0ba3f4f\"\u003e\u003ccode\u003e3dc1be9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56783\"\u003e#56783\u003c/a\u003e from kudoas/fix-activestorage-blob-content-type-nil\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.5\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\r\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\u003c/em\u003e\u003c/p\u003e\n\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\u003e\n\u003cp\u003eFix \u003ccode\u003einsert_all\u003c/code\u003e and \u003ccode\u003eupsert_all\u003c/code\u003e log message when called on anonymous classes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGabriel Sobrinho\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003eActiveRecord::SchemaDumper.ignore_tables\u003c/code\u003e when dumping SQLite virtual tables.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Schnedlitz\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestore previous instrumenter after \u003ccode\u003eexecute_or_skip\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/eb126bb140127d3589ad9be093a845e24fc4f475\"\u003e\u003ccode\u003eeb126bb\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f7fe4a5297dac5e1184747ce53e0305c56f487c3\"\u003e\u003ccode\u003ef7fe4a5\u003c/code\u003e\u003c/a\u003e Merge branch '8-0-sec' into 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a79efed95797b196575a98845dc989e3106a9acb\"\u003e\u003ccode\u003ea79efed\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ac7979b1183bd659779245eaf2850f666cb8aafe\"\u003e\u003ccode\u003eac7979b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/29154f1097da13d48fdb3200760b3e3da66dcb11\"\u003e\u003ccode\u003e29154f1\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6e8a81108001d58043de9e54a06fca58962fc2db\"\u003e\u003ccode\u003e6e8a811\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSafeBuffer#%\u003c/code\u003e to preserve unsafe status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ee2c59e730e5b8faed502cd2c573109df093f856\"\u003e\u003ccode\u003eee2c59e\u003c/code\u003e\u003c/a\u003e NumberConverter: reject scientific notation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5b6ad9db89b30b48753cced1fb261781a716fcb4\"\u003e\u003ccode\u003e5b6ad9d\u003c/code\u003e\u003c/a\u003e Lock some dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0b0daad4cf655374fff8d7d7c959a0230079c335\"\u003e\u003ccode\u003e0b0daad\u003c/code\u003e\u003c/a\u003e [DOC] Update CHANGELOG with key overwrite precedence note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/40acbf77827bd8196b25d8fc31abc9d129088d03\"\u003e\u003ccode\u003e40acbf7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56679\"\u003e#56679\u003c/a\u003e from Saidbek/fix-overlapping-acronyms-order\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `css_parser` from 1.21.1 to 1.22.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/premailer/css_parser/blob/master/CHANGELOG.md\"\u003ecss_parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuby CSS Parser CHANGELOG\u003c/h2\u003e\n\u003ch3\u003eUnreleased\u003c/h3\u003e\n\u003ch3\u003eVersion 2.2.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAccept CSS \u003ccode\u003e\u0026lt;number\u0026gt;\u003c/code\u003e values with an omitted integer part (e.g. \u003ccode\u003e.1\u003c/code\u003e) inside \u003ccode\u003ergb()\u003c/code\u003e/\u003ccode\u003ergba()\u003c/code\u003e/\u003ccode\u003ehsl()\u003c/code\u003e/\u003ccode\u003ehsla()\u003c/code\u003e. Previously \u003ccode\u003eRE_COLOUR_NUMERIC\u003c/code\u003e and \u003ccode\u003eRE_COLOUR_NUMERIC_ALPHA\u003c/code\u003e required at least one digit before the decimal point, which caused colours such as \u003ccode\u003ergba(0,0,0,.1)\u003c/code\u003e to be silently dropped during shorthand expansion (\u003ccode\u003ebackground-color\u003c/code\u003e from \u003ccode\u003ebackground:\u003c/code\u003e, \u003ccode\u003eborder-*-color\u003c/code\u003e from \u003ccode\u003eborder:\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eVersion 2.1.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate ssl when pulling files via https\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eVersion 2.0.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop ruby \u0026lt;3.2, fix a memory leak\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/premailer/css_parser/commit/040895b7e554f4afbbf1a0dbd239eb2b85de7c32\"\u003e\u003ccode\u003e040895b\u003c/code\u003e\u003c/a\u003e v1.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/premailer/css_parser/commit/5069b71b4258dc9423db0019848654e8a1ea5c9b\"\u003e\u003ccode\u003e5069b71\u003c/code\u003e\u003c/a\u003e bundle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/premailer/css_parser/commit/e0c95d5abe91b237becb90ff316531a6547ada18\"\u003e\u003ccode\u003ee0c95d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/premailer/css_parser/issues/186\"\u003e#186\u003c/a\u003e from premailer/grosser/https\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/premailer/css_parser/compare/v1.21.1...v1.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `erb` from 5.0.2 to 6.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease not...\n\n_Description has been truncated_","html_url":"https://github.com/EthanThePhoenix38/openproject/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanThePhoenix38%2Fopenproject/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"},{"uuid":"4466752407","node_id":"PR_kwDOA4nnZM7ch5G7","number":112,"state":"closed","title":"Bump the bundler group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T06:11:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-18T06:22:49.000Z","updated_at":"2026-05-25T06:11:21.000Z","time_to_close":604110,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":12,"packages":[{"name":"vite_rails","old_version":"3.10.0","new_version":"3.11.0","repository_url":"https://github.com/ElMassimo/vite_ruby"},{"name":"view_component","old_version":"4.8.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"pagy","old_version":"43.5.3","new_version":"43.5.4","repository_url":"https://github.com/ddnexus/pagy"},{"name":"sidekiq","old_version":"8.1.3","new_version":"8.1.5","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":"aws-sdk-s3","old_version":"1.220.0","new_version":"1.222.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"bootsnap","old_version":"1.24.1","new_version":"1.24.4","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.20","new_version":"0.1.21","repository_url":"https://github.com/basecamp/thruster"},{"name":"graphql","old_version":"2.6.1","new_version":"2.6.2","repository_url":"https://github.com/rmosolgo/graphql-ruby"},{"name":"selenium-webdriver","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rubocop-rails","old_version":"2.34.3","new_version":"2.35.1","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"vernier","old_version":"1.10.0","new_version":"1.10.1","repository_url":"https://github.com/jhawthorn/vernier"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [vite_rails](https://github.com/ElMassimo/vite_ruby) | `3.10.0` | `3.11.0` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.8.0` | `4.10.0` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.5.3` | `43.5.4` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.3` | `8.1.5` |\n| [sidekiq-cron](https://github.com/ondrejbartas/sidekiq-cron) | `2.3.1` | `2.4.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.220.0` | `1.222.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.1` | `1.24.4` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.20` | `0.1.21` |\n| [graphql](https://github.com/rmosolgo/graphql-ruby) | `2.6.1` | `2.6.2` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.43.0` | `4.44.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.1` |\n| [vernier](https://github.com/jhawthorn/vernier) | `1.10.0` | `1.10.1` |\n\n\nUpdates `vite_rails` from 3.10.0 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ElMassimo/vite_ruby/blob/vite_rails@3.11.0/vite_rails/CHANGELOG.md\"\u003evite_rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.10.0...vite_rails@3.11.0\"\u003e3.11.0\u003c/a\u003e (2026-05-05)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edefault to skipProxy in new installations (\u003ca href=\"https://github.com/ElMassimo/vite_ruby/commit/2932c0ed66143d1a1d05d71787c2a5b0a47403f3\"\u003e2932c0e\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/ElMassimo/vite_ruby/commit/c6cf52a17199c50e7a09e3eea40f9a3d42986c0a\"\u003e\u003ccode\u003ec6cf52a\u003c/code\u003e\u003c/a\u003e release: vite_rails@3.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ElMassimo/vite_ruby/commit/2932c0ed66143d1a1d05d71787c2a5b0a47403f3\"\u003e\u003ccode\u003e2932c0e\u003c/code\u003e\u003c/a\u003e feat: default to skipProxy in new installations\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.10.0...vite_rails@3.11.0\"\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.8.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.8.0...v4.10.0\"\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.3 to 43.5.4\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.4\u003c/h2\u003e\n\u003ch3\u003eChanges in 43.5.4\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eFix SERIES_SLOTS loading error (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/902\"\u003e#902\u003c/a\u003e)\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\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.4\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix SERIES_SLOTS loading error (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/902\"\u003e#902\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/ddnexus/pagy/commit/c1a0adb6aa752000d8a43dc63d345b47642329aa\"\u003e\u003ccode\u003ec1a0adb\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/9dc8a75b8a09d0684a3cd3cd652c04514ce40027\"\u003e\u003ccode\u003e9dc8a75\u003c/code\u003e\u003c/a\u003e Version 43.5.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/3c85c53b4dfc5a3f4d2be582bbec62afac9506e0\"\u003e\u003ccode\u003e3c85c53\u003c/code\u003e\u003c/a\u003e Update gems and packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/60429fee6a4fed4b57b3afebb7892558762d1ebe\"\u003e\u003ccode\u003e60429fe\u003c/code\u003e\u003c/a\u003e 💎 Fix SERIES_SLOTS loading error (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/902\"\u003e#902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/e185ab13b01f8e533f519872c9e5155f4ae18b10\"\u003e\u003ccode\u003ee185ab1\u003c/code\u003e\u003c/a\u003e Fix minor typo in keyset docs (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/901\"\u003e#901\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/febc83755c759e0b22f4631a895905dec74efb20\"\u003e\u003ccode\u003efebc837\u003c/code\u003e\u003c/a\u003e Fix broken API Test badge in README.md (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/18132f64d6c8cc1e390b3a3ba9c7bac6d92933d4\"\u003e\u003ccode\u003e18132f6\u003c/code\u003e\u003c/a\u003e Fix retype linked files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/058d878bb9df688867f5b8c6d09c275162dd2176\"\u003e\u003ccode\u003e058d878\u003c/code\u003e\u003c/a\u003e Improve Ferrum test stability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/42b4a846f9095f1e531c8fca87b8416d5e43cd04\"\u003e\u003ccode\u003e42b4a84\u003c/code\u003e\u003c/a\u003e Fix broken link (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/897\"\u003e#897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ddnexus/pagy/compare/43.5.3...43.5.4\"\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.5\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.5\u003c/h2\u003e\n\u003cul\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/5c049c585a2eb4c91b1a163589d72465e99aad7e\"\u003e\u003ccode\u003e5c049c5\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/0bafeb1084b9c7a5edcf0bc507108b4603682597\"\u003e\u003ccode\u003e0bafeb1\u003c/code\u003e\u003c/a\u003e bump, release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/2a4eec2dd323adb32f333b4416ca167bf4b83a92\"\u003e\u003ccode\u003e2a4eec2\u003c/code\u003e\u003c/a\u003e Identify Sidekiq connections via CLIENT SETINFO (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6bdf6903e93eeaf9b96fcbbe66f503fe758ee4b2\"\u003e\u003ccode\u003e6bdf690\u003c/code\u003e\u003c/a\u003e Fix: don't cache \u0026quot;none\u0026quot; type in Paginator::TYPE_CACHE (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/28b37b722c58d89593620c3733d3dcd87f6e6e08\"\u003e\u003ccode\u003e28b37b7\u003c/code\u003e\u003c/a\u003e release [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/4d0adda70769168a675bb260d2790d76f6849188\"\u003e\u003ccode\u003e4d0adda\u003c/code\u003e\u003c/a\u003e fmt, bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/906fb6837a2b42a5330b3748bdb4007ec06666ff\"\u003e\u003ccode\u003e906fb68\u003c/code\u003e\u003c/a\u003e sidekiq changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/92924ab48a80cf31148fd7ab4cd2e561d5bf823a\"\u003e\u003ccode\u003e92924ab\u003c/code\u003e\u003c/a\u003e ent changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/c6bd7b89e9bb825bc9c4969712828ef88b6d84bc\"\u003e\u003ccode\u003ec6bd7b8\u003c/code\u003e\u003c/a\u003e Add new keys to gd translation (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6984\"\u003e#6984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/29542380a69b23453f7e6e429ef96fe5fd62e3c9\"\u003e\u003ccode\u003e2954238\u003c/code\u003e\u003c/a\u003e tui: implement locale-aware number_with_delimiter (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6983\"\u003e#6983\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.5\"\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 `aws-sdk-s3` from 1.220.0 to 1.222.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.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\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.1 to 1.24.4\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.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/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\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6500a43b2ac7fda963f03ed62098fb3b2be2bdeb\"\u003e\u003ccode\u003e6500a43\u003c/code\u003e\u003c/a\u003e Handle Coverage being suspended\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/cf3791edf37b778e14efa1f366c775f8456a3475\"\u003e\u003ccode\u003ecf3791e\u003c/code\u003e\u003c/a\u003e ISeq#input_to_output: just return \u003ccode\u003enil\u003c/code\u003e when using default compiler.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/cabdad95ed5218e6b888121c92702da4338de866\"\u003e\u003ccode\u003ecabdad9\u003c/code\u003e\u003c/a\u003e Only test Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/18250\"\u003e#18250\u003c/a\u003e] if on Ruby 3.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/490960e1dcd8bde4dda53e3ed1f435def73e0b0e\"\u003e\u003ccode\u003e490960e\u003c/code\u003e\u003c/a\u003e Yet another warning emitted from the canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/045beb2ee5a85b1fd5000e6ee566b8b8a4c5df72\"\u003e\u003ccode\u003e045beb2\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d37f282ec8db1c9b31405c5629bcc6bc68d9974c\"\u003e\u003ccode\u003ed37f282\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/546\"\u003e#546\u003c/a\u003e from davidenglishmusic/rubocop-performance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.4\"\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.20 to 0.1.21\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/main/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.21 / 2026-05-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild with Go 1.26.3\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/basecamp/thruster/commit/aaeecd48e15b87869aad175b4c333f5051ffc2fd\"\u003e\u003ccode\u003eaaeecd4\u003c/code\u003e\u003c/a\u003e Update version \u0026amp; changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/4f1a0213ee3f8da4bb7ac004a7ad0fb5023c0113\"\u003e\u003ccode\u003e4f1a021\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/127\"\u003e#127\u003c/a\u003e from rvanlieshout/bump-go-1.26.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/f9161a28b9d87f5d4b378e7ab027d41b2b615fb9\"\u003e\u003ccode\u003ef9161a2\u003c/code\u003e\u003c/a\u003e Build with Go 1.26.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/53da2299d89566fabdfad99bccbff54af6515419\"\u003e\u003ccode\u003e53da229\u003c/code\u003e\u003c/a\u003e Build with Go 1.26.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.20...v0.1.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `graphql` from 2.6.1 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md\"\u003egraphql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.2\u003c/h1\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse a better error message for end-of-file parse errors \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/6513\"\u003e#6513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eExecution::Next\u003c/code\u003e: Lots of compatibility improvements and bug fixes \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5625\"\u003e#5625\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5618\"\u003e#5618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDirectives: handle errors raised when checking \u003ccode\u003e.include?\u003c/code\u003e \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5612\"\u003e#5612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove error message when a field definition is missing at runtime \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5615\"\u003e#5615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJRuby: fix \u003ccode\u003eDataloader#with\u003c/code\u003e \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5616\"\u003e#5616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetailedTrace: fix introspection with anonymous classes \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5624\"\u003e#5624\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/rmosolgo/graphql-ruby/commit/e6f08682cfdbcd07a8c59b2a8118d86bc90e16cd\"\u003e\u003ccode\u003ee6f0868\u003c/code\u003e\u003c/a\u003e 2.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/4afdf6f41177c7f14c7c29eb54121d0c648cec46\"\u003e\u003ccode\u003e4afdf6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5625\"\u003e#5625\u003c/a\u003e from rmosolgo/exec-next-test-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/06bbc6592fe30150f952102d622d34a84d3b0d58\"\u003e\u003ccode\u003e06bbc65\u003c/code\u003e\u003c/a\u003e Fix lint error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/ecffdc68f662077c83685872b1746b6513159327\"\u003e\u003ccode\u003eecffdc6\u003c/code\u003e\u003c/a\u003e document as_default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/4b383bca99696c51bbf0fe0845ee0612113338eb\"\u003e\u003ccode\u003e4b383bc\u003c/code\u003e\u003c/a\u003e Document helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/f221578d99f62a85c73160d36cc71d13ba38205f\"\u003e\u003ccode\u003ef221578\u003c/code\u003e\u003c/a\u003e use methods for exec_next test behaviors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/c4f62efcd6036b68c1bb2eea4034ddcb8ddb4a90\"\u003e\u003ccode\u003ec4f62ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5624\"\u003e#5624\u003c/a\u003e from rmosolgo/perfetto-fix-anon-classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/bd39b2708895c03ddd9a65a614a76d00c72f8026\"\u003e\u003ccode\u003ebd39b27\u003c/code\u003e\u003c/a\u003e fix detailed trace on anonymous classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/19f5bac73ce70f7a982ef2976640f977cf4a14c1\"\u003e\u003ccode\u003e19f5bac\u003c/code\u003e\u003c/a\u003e Start categorizing exec-next skips\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/5c43bc784131bdc35669cfb929ef4b905217eb1b\"\u003e\u003ccode\u003e5c43bc7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5619\"\u003e#5619\u003c/a\u003e from rmosolgo/next-as-default-option\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rmosolgo/graphql-ruby/compare/v2.6.1...v2.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium-webdriver` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/selenium/releases\"\u003eselenium-webdriver's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eselenium-webdriver's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.44.0 (2026-05-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v146, v147, v148\u003c/li\u003e\n\u003cli\u003eModern Firefox does not like both the \u003ccode\u003e-v\u003c/code\u003e and \u003ccode\u003e--log\u003c/code\u003e flags at the same time (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17412\"\u003e#17412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix credential issue with private key (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17188\"\u003e#17188\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6b85c4a554af11aac20379fcd9281f7c19173e89\"\u003e\u003ccode\u003e6b85c4a\u003c/code\u003e\u003c/a\u003e [rb] Fix credential issue with private key (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17188\"\u003e#17188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/4885286c4b7e8e1fb8613e6557b598894300301f\"\u003e\u003ccode\u003e4885286\u003c/code\u003e\u003c/a\u003e [dotnet][java][js][py][rb] Standardize README files across bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17245\"\u003e#17245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/2042c237094c145f5d356ca9239eef6aafe755be\"\u003e\u003ccode\u003e2042c23\u003c/code\u003e\u003c/a\u003e [rb] Modern Firefox does not like both the \u003ccode\u003e-v\u003c/code\u003e and \u003ccode\u003e--log\u003c/code\u003e flags at the same...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/31ee1221d6cae9f6e5e686ae5a0258d6e4bd6dfc\"\u003e\u003ccode\u003e31ee122\u003c/code\u003e\u003c/a\u003e [Agents] Update agents to make sure do linting. (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17366\"\u003e#17366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c95fe73785ef05cb25e40089cca34ad1ddd72c61\"\u003e\u003ccode\u003ec95fe73\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.43.0...selenium-4.44.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.34.3 to 2.35.1\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.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-check methods such as \u003ccode\u003ekey?\u003c/code\u003e, \u003ccode\u003ehas_key?\u003c/code\u003e, \u003ccode\u003einclude?\u003c/code\u003e, and \u003ccode\u003emember?\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/1620\"\u003e#1620\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using type-check methods such as \u003ccode\u003eis_a?\u003c/code\u003e, \u003ccode\u003ekind_of?\u003c/code\u003e, and \u003ccode\u003einstance_of?\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\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.0\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. (\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. (\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. (\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. (\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. (\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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.1 (2026-05-17)\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-check methods such as \u003ccode\u003ekey?\u003c/code\u003e, \u003ccode\u003ehas_key?\u003c/code\u003e, \u003ccode\u003einclude?\u003c/code\u003e, and \u003ccode\u003emember?\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/1620\"\u003e#1620\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using type-check methods such as \u003ccode\u003eis_a?\u003c/code\u003e, \u003ccode\u003ekind_of?\u003c/code\u003e, and \u003ccode\u003einstance_of?\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\u003c/ul\u003e\n\u003ch2\u003e2.35.0 (2026-05-09)\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. ([\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. ([\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. ([\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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/8bfc91ebc5b029862b05b64aaf562e25f1cbf962\"\u003e\u003ccode\u003e8bfc91e\u003c/code\u003e\u003c/a\u003e Cut 2.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/90f8242ba055d5509699d8db207ae12cfad570c7\"\u003e\u003ccode\u003e90f8242\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/13463102d55cd6494aea1f5da0b42b6025bbce1d\"\u003e\u003ccode\u003e1346310\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1624\"\u003e#1624\u003c/a\u003e from koic/fix_false_positives_for_rails_strong_param...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/64422a90b5e8a0d2f92fddf53118f8eb3fe6abce\"\u003e\u003ccode\u003e64422a9\u003c/code\u003e\u003c/a\u003e [Fix \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\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/9524ba17033f3850c01e5fa96913121526480c83\"\u003e\u003ccode\u003e9524ba1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1623\"\u003e#1623\u003c/a\u003e from koic/fix_false_positives_for_rails_strong_param...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/4832b2d8529aa13c6272a6172076ef2a5bc687ed\"\u003e\u003ccode\u003e4832b2d\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1620\"\u003e#1620\u003c/a\u003e] Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/e18a76bdaec289edb5f87e5c9922bd8e8f0c074a\"\u003e\u003ccode\u003ee18a76b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1616\"\u003e#1616\u003c/a\u003e from koic/fix_false_positives_in_rails_strong_parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/cf52bef4e4fbd97cab1eabdee42d13805071df5b\"\u003e\u003ccode\u003ecf52bef\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1618\"\u003e#1618\u003c/a\u003e] Update the doc of \u003ccode\u003eRails/RedundantActiveRecordAllMethod\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/3f317b7b19f49b41a6f5f95e268d470a2c673dfd\"\u003e\u003ccode\u003e3f317b7\u003c/code\u003e\u003c/a\u003e Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/6e2e110b0bbdbb4be61c717bf5744b92f4cb48d6\"\u003e\u003ccode\u003e6e2e110\u003c/code\u003e\u003c/a\u003e Reset the docs version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.34.3...v2.35.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vernier` from 1.10.0 to 1.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhawthorn/vernier/releases\"\u003evernier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild HeapTracker's lists/map at drain time by \u003ca href=\"https://github.com/luke-gruber\"\u003e\u003ccode\u003e@​luke-gruber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/pull/170\"\u003ejhawthorn/vernier#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix idle/stalled stack nodes using wrong frame category for Firefox profiler by \u003ca href=\"https://github.com/joshuay03\"\u003e\u003ccode\u003e@​joshuay03\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/pull/144\"\u003ejhawthorn/vernier#144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jhawthorn/vernier/compare/v1.10.0...v1.10.1\"\u003ehttps://github.com/jhawthorn/vernier/compare/v1.10.0...v1.10.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/jhawthorn/vernier/commit/9e67a0e0a239d0ab6f581c21248e52603b6f2146\"\u003e\u003ccode\u003e9e67a0e\u003c/code\u003e\u003c/a\u003e v1.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/db81eb29b41401118f3fe88292bc3aea523773e0\"\u003e\u003ccode\u003edb81eb2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/144\"\u003e#144\u003c/a\u003e from jhawthorn/fix-133\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/3697c68a02d8eba4366b91c0b512e7c0eeaf6f3f\"\u003e\u003ccode\u003e3697c68\u003c/code\u003e\u003c/a\u003e Fix idle/stalled stack nodes using wrong frame category for Firefox profiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/328d1db129ea607b3cd5398fb87c2b9306b84c4d\"\u003e\u003ccode\u003e328d1db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/170\"\u003e#170\u003c/a\u003e from luke-gruber/heap_tracker_rebuild_at_drain_time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/70b87720b7edd7a48373a4b639bb4430a7a3d77b\"\u003e\u003ccode\u003e70b8772\u003c/code\u003e\u003c/a\u003e Update .ruby-version to 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/7f998efb8a7f71d6fd0f223be6b1e84f0637c37a\"\u003e\u003ccode\u003e7f998ef\u003c/code\u003e\u003c/a\u003e Rebuild HeapTracker's lists/map at drain time\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jhawthorn/vernier/compare/v1.10.0...v1.10.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/alexeyramazanov/base_app/pull/112","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexeyramazanov%2Fbase_app/issues/112","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/112/packages"},{"uuid":"4449787873","node_id":"PR_kwDOAEwg7M7btUKS","number":5127,"state":"closed","title":"Bump view_component and blacklight","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-14T23:01:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-14T22:31:13.000Z","updated_at":"2026-05-14T23:01:58.000Z","time_to_close":1836,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","repository_url":"https://github.com/viewcomponent/view_component","old_version":"3.24.0","new_version":"4.10.0"},{"name":"blacklight","repository_url":"https://github.com/projectblacklight/blacklight","old_version":"7.41.0","new_version":"8.12.3"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) and [blacklight](https://github.com/projectblacklight/blacklight). These dependencies needed to be updated together.\nUpdates `view_component` from 3.24.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\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\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v3.24.0...v4.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blacklight` from 7.41.0 to 8.12.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectblacklight/blacklight/releases\"\u003eblacklight's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.12.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v8.12.2...v8.12.3\"\u003eCommit History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3756\"\u003e#3756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3745\"\u003e#3745\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cbeer\"\u003e\u003ccode\u003e@​cbeer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mamrey\"\u003e\u003ccode\u003e@​mamrey\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e for contributing to this release.\u003c/p\u003e\n\u003ch2\u003ev8.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBackport: fixes for solr_wrapper starting Solr 9.7+  \u003ca href=\"https://github.com/cjcolvar\"\u003e\u003ccode\u003e@​cjcolvar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3696\"\u003e#3696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport modal \u003ccode\u003eesc\u003c/code\u003e key to close fix, \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cjcolvar\"\u003e\u003ccode\u003e@​cjcolvar\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3698\"\u003e#3698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport ViewComponent 4.0 support, \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3718\"\u003e#3718\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull changelog: \u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v8.11.0...v8.12.0\"\u003ehttps://github.com/projectblacklight/blacklight/compare/v8.11.0...v8.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBackport: Extract a SkipLinkItemComponent (\u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3478\"\u003e#3478\u003c/a\u003e) by \u003ca href=\"https://github.com/dnoneill\"\u003e\u003ccode\u003e@​dnoneill\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3600\"\u003eprojectblacklight/blacklight#3600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[backport 8.x] Remove unused attribute by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3619\"\u003eprojectblacklight/blacklight#3619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Backport 8.x] Set constraints_component in the config by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3618\"\u003eprojectblacklight/blacklight#3618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump release to 8.11.0 by \u003ca href=\"https://github.com/dnoneill\"\u003e\u003ccode\u003e@​dnoneill\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3625\"\u003eprojectblacklight/blacklight#3625\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v8.10.1...v8.11.0\"\u003ehttps://github.com/projectblacklight/blacklight/compare/v8.10.1...v8.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGet linting green on release-8.x branch by \u003ca href=\"https://github.com/maxkadel\"\u003e\u003ccode\u003e@​maxkadel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3574\"\u003eprojectblacklight/blacklight#3574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit ci workflows by \u003ca href=\"https://github.com/maxkadel\"\u003e\u003ccode\u003e@​maxkadel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3578\"\u003eprojectblacklight/blacklight#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[8.x] Backport \u0026quot;Use the released version of i18n-rails\u0026quot; by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3575\"\u003eprojectblacklight/blacklight#3575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Backport 8.x] Permit markup on prev/next session context buttons by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3584\"\u003eprojectblacklight/blacklight#3584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v8.9.0...v8.10.0\"\u003ehttps://github.com/projectblacklight/blacklight/compare/v8.9.0...v8.10.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.9.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release backports to 8.x several recent bugfixes related to navigating facet modals, i.e., the UI when a user clicks \u003ccode\u003emore\u003c/code\u003e in a facet that has more values for the current search context than are configured to display. Most of these bugfixes also apply to facet \u003cem\u003epages\u003c/em\u003e, e.g., \u003ccode\u003e/catalog/facet/subject_ssim\u003c/code\u003e -- the facet UI displayed outside of a modal.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix scrolling of longer-than-viewport bootstrap modal in a \u003c!-- raw HTML omitted --\u003e by \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3447\"\u003eprojectblacklight/blacklight#3447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen modal is open, turn off body scrolling by \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3453\"\u003eprojectblacklight/blacklight#3453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unnecessary css that pushes pagination out of alignment by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3439\"\u003eprojectblacklight/blacklight#3439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd some bottom margin to the facet-suggest filter in the modal. by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3525\"\u003eprojectblacklight/blacklight#3525\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix facet prev/next nav link appearance when the link is disabled by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3533\"\u003eprojectblacklight/blacklight#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: allow facet filter/suggest input to work with the sort toggle and starting letter nav. by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3538\"\u003eprojectblacklight/blacklight#3538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix wrapping for A-Z facet nav. by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3539\"\u003eprojectblacklight/blacklight#3539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix facet prev/next pagination nav display within and outside of modals. by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3548\"\u003eprojectblacklight/blacklight#3548\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/projectblacklight/blacklight/commit/c3f89566eb5bc5ffa1b0c7a1e06ce67e9c29a26f\"\u003e\u003ccode\u003ec3f8956\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3773\"\u003e#3773\u003c/a\u003e from projectblacklight/prepare_8.12.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/b657446e3213a25706d859a9f962f105246ea7b1\"\u003e\u003ccode\u003eb657446\u003c/code\u003e\u003c/a\u003e Bump version for 8.12.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/70cd021fc56a95467dac82ef0a7af5dc04c3e763\"\u003e\u003ccode\u003e70cd021\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3756\"\u003e#3756\u003c/a\u003e from projectblacklight/backport-c412184-to-8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/316ef7098f592da614b97b222bf5cc6b085ff923\"\u003e\u003ccode\u003e316ef70\u003c/code\u003e\u003c/a\u003e Explicitly require \u003ccode\u003eview_component/version\u003c/code\u003e before trying to use it.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/5292e6f30aae47990d038e9c24fc7decd03edd0b\"\u003e\u003ccode\u003e5292e6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3745\"\u003e#3745\u003c/a\u003e from projectblacklight/8.x-rubocop-redundant-parenth...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/c53a5dddfe96697263b3cff3faca7e0de7e33f10\"\u003e\u003ccode\u003ec53a5dd\u003c/code\u003e\u003c/a\u003e Fix rubocop Style/RedundantParentheses offense.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/5d0fec84d182757c9894ffe72d81b6901126f9e2\"\u003e\u003ccode\u003e5d0fec8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3731\"\u003e#3731\u003c/a\u003e from projectblacklight/prepare_8.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/15f6f31b9d0551fb3c993743b1a76d2244612b3e\"\u003e\u003ccode\u003e15f6f31\u003c/code\u003e\u003c/a\u003e bump versions for 8.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/dc5688a5a98104128dbbb7d558cdbfda253fe071\"\u003e\u003ccode\u003edc5688a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3730\"\u003e#3730\u003c/a\u003e from projectblacklight/restore_document_component_co...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/c7cca2c7eb7a18b4ee1d073f7c6448fdf922c7cc\"\u003e\u003ccode\u003ec7cca2c\u003c/code\u003e\u003c/a\u003e Restore DocumentComponent initializer compatibilty for BL8\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v7.41.0...v8.12.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/sul-dlss/argo/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/sul-dlss/argo/pull/5127","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Fargo/issues/5127","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5127/packages"},{"uuid":"4435136402","node_id":"PR_kwDORTFFOM7a-SXE","number":18,"state":"closed","title":"Bump view_component from 4.6.0 to 4.10.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-20T10:17:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-13T05:29:20.000Z","updated_at":"2026-05-20T10:17:25.000Z","time_to_close":622083,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.10.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.10.0)](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/kpost/heroicons-view-components/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpost%2Fheroicons-view-components/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"4430903151","node_id":"PR_kwDOCicVQs7aw0X7","number":1119,"state":"closed","title":"chore(deps): bump the all-gems group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-18T05:46:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T16:34:44.000Z","updated_at":"2026-05-18T05:46:48.000Z","time_to_close":479522,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-gems","update_count":3,"packages":[{"name":"bootsnap","old_version":"1.24.1","new_version":"1.24.3","repository_url":"https://github.com/rails/bootsnap"},{"name":"view_component","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"rubocop-rails","old_version":"2.34.3","new_version":"2.35.0","repository_url":"https://github.com/rubocop/rubocop-rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-gems group with 3 updates in the / directory: [bootsnap](https://github.com/rails/bootsnap), [view_component](https://github.com/viewcomponent/view_component) and [rubocop-rails](https://github.com/rubocop/rubocop-rails).\n\nUpdates `bootsnap` from 1.24.1 to 1.24.3\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.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.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/4e14f7eb1bdaeadd1fe2cd658c9224b231424b87\"\u003e\u003ccode\u003e4e14f7e\u003c/code\u003e\u003c/a\u003e Release 1.24.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c36e0110cecc182f39e0afa10b48f7ebd4d0f52\"\u003e\u003ccode\u003e7c36e01\u003c/code\u003e\u003c/a\u003e Fix encoding in Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e] workaround\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/21b7ad836f04cd8254eff344905cf6a942c3cbea\"\u003e\u003ccode\u003e21b7ad8\u003c/code\u003e\u003c/a\u003e Release 1.24.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/fbcb561385763d2a9ed71afef3163b6168e61c59\"\u003e\u003ccode\u003efbcb561\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/540\"\u003e#540\u003c/a\u003e from byroot/use-proper-parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/58d913432c80116d746668141a67c8492f2a0ec2\"\u003e\u003ccode\u003e58d9134\u003c/code\u003e\u003c/a\u003e Workaround Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.3\"\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.9.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.9.0...v4.10.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.34.3 to 2.35.0\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.0\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. (\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. (\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. (\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. (\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. (\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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.0 (2026-05-09)\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. ([\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. ([\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. ([\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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/aa320da089131dd1148148a9be5ff2863d282473\"\u003e\u003ccode\u003eaa320da\u003c/code\u003e\u003c/a\u003e Cut 2.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/9b730e1266ef34a49567d55d1e21f68f9aef03dc\"\u003e\u003ccode\u003e9b730e1\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/6fa91dda739038f4f0f7fa415d54cf0e741ee7ab\"\u003e\u003ccode\u003e6fa91dd\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eKeyError\u003c/code\u003e when \u003ccode\u003eshared\u003c/code\u003e key has no \u003ccode\u003eadapter\u003c/code\u003e in \u003ccode\u003edatabase.yml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/7fc1595bc53caa814893fe6709665120ff3e4d5d\"\u003e\u003ccode\u003e7fc1595\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1605\"\u003e#1605\u003c/a\u003e from codergeek121/support-shared-key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/2201f5ddef11378bb9c2a4ff2580b8da7ca78f0c\"\u003e\u003ccode\u003e2201f5d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1603\"\u003e#1603\u003c/a\u003e from koic/fix_an_error_in_rails_select_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/82b8037ff6b585a3b9c2b4a4eb29f404037215e0\"\u003e\u003ccode\u003e82b8037\u003c/code\u003e\u003c/a\u003e Fix support for shared key in database.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/072a55539485f48b2e37d86d8a3f74cdc9c64c10\"\u003e\u003ccode\u003e072a555\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e] Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/bf79547499d0d2fd54b17ff13fb2c654fe320e1c\"\u003e\u003ccode\u003ebf79547\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1597\"\u003e#1597\u003c/a\u003e from 55728/fix-i18n-locale-texts-redirect-back-or-to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/89a21e86e658c85c4bd4e359403b1bd0425b427c\"\u003e\u003ccode\u003e89a21e8\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1595\"\u003e#1595\u003c/a\u003e] Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using `redi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/2a59f84974354df4477ffb08b6b8be2939e45c5f\"\u003e\u003ccode\u003e2a59f84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1598\"\u003e#1598\u003c/a\u003e from y-yagi/globs_cops_for_test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.34.3...v2.35.0\"\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/cedarcode/mi_carrera/pull/1119","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedarcode%2Fmi_carrera/issues/1119","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1119/packages"},{"uuid":"4424782076","node_id":"PR_kwDOOavTrc7aczNh","number":143,"state":"closed","title":"chore(deps): bump view_component from 4.9.0 to 4.10.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-19T00:27:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-11T22:37:01.000Z","updated_at":"2026-05-19T00:28:00.000Z","time_to_close":611458,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"view_component","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.9.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.9.0...v4.10.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.9.0\u0026new-version=4.10.0)](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/bdavidxyz/koal/pull/143","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bdavidxyz%2Fkoal/issues/143","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/143/packages"},{"uuid":"4410493213","node_id":"PR_kwDOBFfwc87ZvpmG","number":201,"state":"closed","title":"Bump view_component from 4.6.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-16T22:11:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-09T01:26:36.000Z","updated_at":"2026-05-16T22:11:40.000Z","time_to_close":679502,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.9.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/etewiah/property_web_builder/pull/201","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/etewiah%2Fproperty_web_builder/issues/201","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/201/packages"},{"uuid":"4410332686","node_id":"PR_kwDOQ3dxxs7ZvG2L","number":99,"state":"closed","title":"chore(deps): bump view_component from 4.8.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-16T00:42:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-09T00:43:18.000Z","updated_at":"2026-05-16T00:42:39.000Z","time_to_close":604759,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"view_component","old_version":"4.8.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.8.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.8.0...v4.9.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.8.0\u0026new-version=4.9.0)](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/Financial-Planner/pull/99","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTea43%2FFinancial-Planner/issues/99","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/99/packages"},{"uuid":"4395329699","node_id":"PR_kwDOSEovB87Y9_IH","number":9,"state":"closed","title":"Bump view_component from 4.6.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-14T00:36:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-07T00:36:51.000Z","updated_at":"2026-05-14T00:36:56.000Z","time_to_close":604803,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.9.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.9.0)](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/mattpolito/meetup-view-components/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattpolito%2Fmeetup-view-components/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"4392529510","node_id":"PR_kwDOR7xD0c7Y03CO","number":14,"state":"closed","title":"Bump view_component from 4.6.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-11T02:16:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-06T15:21:39.000Z","updated_at":"2026-05-11T02:16:32.000Z","time_to_close":384892,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.9.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.9.0)](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/ir3/k5/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ir3%2Fk5/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4387544023","node_id":"PR_kwDOQJIf1c7Ykf0r","number":29,"state":"closed","title":"Bump view_component from 4.1.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-12T04:47:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-05T22:45:09.000Z","updated_at":"2026-05-12T04:47:57.000Z","time_to_close":540167,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.1.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.1.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix initialization ordering issue causing missing asset errors in Sprockets.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.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\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.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/ViewComponent/view_component/commit/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.1.0...v4.9.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.1.0\u0026new-version=4.9.0)](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/cheleo-software/rails_view_components/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheleo-software%2Frails_view_components/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"},{"uuid":"4376554066","node_id":"PR_kwDOST5u7M7YAcdc","number":6,"state":"closed","title":"Bump view_component from 4.6.0 to 4.8.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-11T01:59:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T12:27:24.000Z","updated_at":"2026-05-11T01:59:58.000Z","time_to_close":567152,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.8.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.8.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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/d7e8cb494448584d84f86dcf8ffee4adbc6a4769\"\u003e\u003ccode\u003ed7e8cb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2615\"\u003e#2615\u003c/a\u003e from ViewComponent/release-4-8-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/091e30a7fbda68661b7448379a535a3ff46062b5\"\u003e\u003ccode\u003e091e30a\u003c/code\u003e\u003c/a\u003e fix flaky tesT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9e0dae45b434b4493c3b7b79160be915a643b13c\"\u003e\u003ccode\u003e9e0dae4\u003c/code\u003e\u003c/a\u003e release 4.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/ef90407c853cd8553f5c821de58ad9308898a8c9\"\u003e\u003ccode\u003eef90407\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2613\"\u003e#2613\u003c/a\u003e from ViewComponent/instrument-compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d9209180e40c0ffbe08681fd716f012651d032e0\"\u003e\u003ccode\u003ed920918\u003c/code\u003e\u003c/a\u003e clean up test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/3cc6d61b83b34f41aaf49dad5e2fbb1c219756ad\"\u003e\u003ccode\u003e3cc6d61\u003c/code\u003e\u003c/a\u003e simplify test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d7947fc975fdde9c6a1cc286494802afb5fd3302\"\u003e\u003ccode\u003ed7947fc\u003c/code\u003e\u003c/a\u003e Add compile.view_component ActiveSupport::Notifications event for eager compi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5d84af8afeeed2c2b43aeb3626728c28f8a42711\"\u003e\u003ccode\u003e5d84af8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2612\"\u003e#2612\u003c/a\u003e from ViewComponent/dependabot/bundler/propshaft-1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8f4ef89b50753aa8f3e83dcf07ecc1f43541df94\"\u003e\u003ccode\u003e8f4ef89\u003c/code\u003e\u003c/a\u003e Bump propshaft from 1.3.1 to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9ae4d79a4222b8bc779904e31307e55390d0a1dd\"\u003e\u003ccode\u003e9ae4d79\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2611\"\u003e#2611\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.43\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.8.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.8.0)](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/khildamaililhaq/skuids_wms/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/khildamaililhaq%2Fskuids_wms/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4348138030","node_id":"PR_kwDORTFFOM7WlnJf","number":15,"state":"closed","title":"Bump view_component from 4.6.0 to 4.8.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-06T05:26:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-29T05:27:36.000Z","updated_at":"2026-05-06T05:26:43.000Z","time_to_close":604745,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.8.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.8.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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/d7e8cb494448584d84f86dcf8ffee4adbc6a4769\"\u003e\u003ccode\u003ed7e8cb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2615\"\u003e#2615\u003c/a\u003e from ViewComponent/release-4-8-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/091e30a7fbda68661b7448379a535a3ff46062b5\"\u003e\u003ccode\u003e091e30a\u003c/code\u003e\u003c/a\u003e fix flaky tesT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9e0dae45b434b4493c3b7b79160be915a643b13c\"\u003e\u003ccode\u003e9e0dae4\u003c/code\u003e\u003c/a\u003e release 4.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/ef90407c853cd8553f5c821de58ad9308898a8c9\"\u003e\u003ccode\u003eef90407\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2613\"\u003e#2613\u003c/a\u003e from ViewComponent/instrument-compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d9209180e40c0ffbe08681fd716f012651d032e0\"\u003e\u003ccode\u003ed920918\u003c/code\u003e\u003c/a\u003e clean up test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/3cc6d61b83b34f41aaf49dad5e2fbb1c219756ad\"\u003e\u003ccode\u003e3cc6d61\u003c/code\u003e\u003c/a\u003e simplify test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d7947fc975fdde9c6a1cc286494802afb5fd3302\"\u003e\u003ccode\u003ed7947fc\u003c/code\u003e\u003c/a\u003e Add compile.view_component ActiveSupport::Notifications event for eager compi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5d84af8afeeed2c2b43aeb3626728c28f8a42711\"\u003e\u003ccode\u003e5d84af8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2612\"\u003e#2612\u003c/a\u003e from ViewComponent/dependabot/bundler/propshaft-1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8f4ef89b50753aa8f3e83dcf07ecc1f43541df94\"\u003e\u003ccode\u003e8f4ef89\u003c/code\u003e\u003c/a\u003e Bump propshaft from 1.3.1 to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9ae4d79a4222b8bc779904e31307e55390d0a1dd\"\u003e\u003ccode\u003e9ae4d79\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2611\"\u003e#2611\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.43\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.8.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.8.0)](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/kpost/heroicons-view-components/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpost%2Fheroicons-view-components/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"4334540973","node_id":"PR_kwDOLsgeks7V5dUs","number":159,"state":"closed","title":"🤖(deps): Bump the bundler-semver group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-04T09:33:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T09:14:12.000Z","updated_at":"2026-05-04T09:33:29.000Z","time_to_close":605955,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"🤖(deps): Bump","group_name":"bundler-semver","update_count":17,"packages":[{"name":"rails","old_version":"8.1.2","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"blazer","old_version":"3.3.0","new_version":"3.4.0","repository_url":"https://github.com/ankane/blazer"},{"name":"bootsnap","old_version":"1.22.0","new_version":"1.24.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"devise","old_version":"5.0.0","new_version":"5.0.3","repository_url":"https://github.com/heartcombo/devise"},{"name":"devise-i18n","old_version":"1.15.0","new_version":"1.16.0","repository_url":"https://github.com/devise-i18n/devise-i18n"},{"name":"good_job","old_version":"4.13.2","new_version":"4.18.2","repository_url":"https://github.com/bensheldon/good_job"},{"name":"kamal","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/basecamp/kamal"},{"name":"meta-tags","old_version":"2.22.3","new_version":"2.23.0","repository_url":"https://github.com/kpumuk/meta-tags"},{"name":"pagy","old_version":"43.0.7","new_version":"43.5.3","repository_url":"https://github.com/ddnexus/pagy"},{"name":"view_component","old_version":"4.2.0","new_version":"4.8.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"faker","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"selenium-webdriver","old_version":"4.40.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"brakeman","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"bullet","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/flyerhzm/bullet"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"sentry-ruby","old_version":"6.3.0","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler-semver group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.2` | `8.1.3` |\n| [blazer](https://github.com/ankane/blazer) | `3.3.0` | `3.4.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.22.0` | `1.24.0` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.0` | `5.0.3` |\n| [devise-i18n](https://github.com/devise-i18n/devise-i18n) | `1.15.0` | `1.16.0` |\n| [good_job](https://github.com/bensheldon/good_job) | `4.13.2` | `4.18.2` |\n| [kamal](https://github.com/basecamp/kamal) | `2.10.1` | `2.11.0` |\n| [meta-tags](https://github.com/kpumuk/meta-tags) | `2.22.3` | `2.23.0` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.0.7` | `43.5.3` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.2.0` | `4.8.0` |\n| [faker](https://github.com/faker-ruby/faker) | `3.6.0` | `3.8.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.40.0` | `4.43.0` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.2` | `8.0.4` |\n| [bullet](https://github.com/flyerhzm/bullet) | `8.1.0` | `8.1.1` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.3.0` | `6.5.0` |\n\n\nUpdates `rails` from 8.1.2 to 8.1.3\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\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.2...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blazer` from 3.3.0 to 3.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ankane/blazer/blob/master/CHANGELOG.md\"\u003eblazer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.0 (2026-04-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\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/ankane/blazer/commit/a35536b0c33f57a6c3936ae7eb24b5c8db3274ac\"\u003e\u003ccode\u003ea35536b\u003c/code\u003e\u003c/a\u003e Version bump to 3.4.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/1040a45ef9562b664fa9ab1dc19ef0fe7deb4197\"\u003e\u003ccode\u003e1040a45\u003c/code\u003e\u003c/a\u003e Updated safely_block [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/aadb52152aaa25be6eddb48e145ccdbf42717838\"\u003e\u003ccode\u003eaadb521\u003c/code\u003e\u003c/a\u003e Updated license year [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/9a9108a0098ef40a4a0cd4426e5e0b6885020a38\"\u003e\u003ccode\u003e9a9108a\u003c/code\u003e\u003c/a\u003e Dropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/fed70e10605250f014c078311d2327b9def84a02\"\u003e\u003ccode\u003efed70e1\u003c/code\u003e\u003c/a\u003e Allow test environment for adapter_instance (\u003ca href=\"https://redirect.github.com/ankane/blazer/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/c17d8ec1598d33e9f792d194d19782c55db76fef\"\u003e\u003ccode\u003ec17d8ec\u003c/code\u003e\u003c/a\u003e Removed dev dependency on minitest-mock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/e5515ecca17ed2f2d3f87347147549353983f24b\"\u003e\u003ccode\u003ee5515ec\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0 on CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/e448bbc47505601a221f36e276d6637aa79ddfbf\"\u003e\u003ccode\u003ee448bbc\u003c/code\u003e\u003c/a\u003e Updated tests for minitest 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/cda46c59d283c43c795b7efaf2a8270f2acbcd73\"\u003e\u003ccode\u003ecda46c5\u003c/code\u003e\u003c/a\u003e Removed stub calls for minitest 6 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/0ca353b427511d84404dca34be48b100decd230f\"\u003e\u003ccode\u003e0ca353b\u003c/code\u003e\u003c/a\u003e Moved protect_from_forgery after authentication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ankane/blazer/compare/v3.3.0...v3.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.22.0 to 1.24.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.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\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.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\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.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\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/dc57c2069a38710d30077d988229c4d6f7f4292d\"\u003e\u003ccode\u003edc57c20\u003c/code\u003e\u003c/a\u003e Release 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/481b9b91b5758c691af201f7dec73e54af9c0640\"\u003e\u003ccode\u003e481b9b9\u003c/code\u003e\u003c/a\u003e Avoid interning string on every call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/81e6db41be3973fe99e37126487d6928e076a139\"\u003e\u003ccode\u003e81e6db4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/535\"\u003e#535\u003c/a\u003e from byroot/compilation-backends\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/320ca021f1d17bd19322ce6076d2235434e4044a\"\u003e\u003ccode\u003e320ca02\u003c/code\u003e\u003c/a\u003e Allow to substitute the Ruby compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 5.0.0 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\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/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.3 - 2026-03-16\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix race condition vulnerability on confirmable \u0026quot;change email\u0026quot; which would allow confirming an email they don't own CVE-2026-32700 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-57hq-95w6-v4fc\"\u003eGHSA-57hq-95w6-v4fc\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5783\"\u003e#5783\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5784\"\u003e#5784\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.2 - 2026-02-18\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eenhancements\n\u003cul\u003e\n\u003cli\u003eAllow resource class scopes to override the global configuration for \u003ccode\u003esign_in_after_change_password\u003c/code\u003e behaviour. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5825\"\u003e#5825\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003eNote\u003c/em\u003e: some users ran into an issue with this change because \u003ccode\u003eRegistrationsController\u003c/code\u003e now relies on a setting from the \u003ccode\u003e:registerable\u003c/code\u003e module. These users were configuring their own routes pointing to the \u003ccode\u003eRegistrationsController\u003c/code\u003e for resource edit/update actions mostly, without relying on the other registration actions (e.g. user sign up.), so they omitted \u003ccode\u003e:registerable\u003c/code\u003e from the model declaration. While using just a portion of the controller functionality is a valid use for \u003ccode\u003e:registerable\u003c/code\u003e (or any module really), the module must still be declared in the model, much like the other modules must be declared if you plan on using just a portion of their behavior. Please check \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5828#issuecomment-3926822788\"\u003ethis issue\u003c/a\u003e for more info.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller, to allow it to be customized by users. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5826\"\u003e#5826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.1 - 2026-02-13\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebug fixes\n\u003cul\u003e\n\u003cli\u003eFix translation issue with German \u003ccode\u003eE-Mail\u003c/code\u003e on invalid authentication messages caused by previous fix for incorrect grammar \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5822\"\u003e#5822\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/heartcombo/devise/commit/2f809205b2a9112767e68e1a5666c649a42609c6\"\u003e\u003ccode\u003e2f80920\u003c/code\u003e\u003c/a\u003e Release v5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/53347074021b38590653b95523f9b7113e5dcfdc\"\u003e\u003ccode\u003e5334707\u003c/code\u003e\u003c/a\u003e Add CVE to changelog [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/02527772bd9adbc3357d9c62fbc16e73e438121d\"\u003e\u003ccode\u003e0252777\u003c/code\u003e\u003c/a\u003e Fix race condition vulnerability, by ensuring the \u003ccode\u003eunconfirmed_email\u003c/code\u003e is alwa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/879f79fceaf2ec6525219ee7bb4057ce4db65729\"\u003e\u003ccode\u003e879f79f\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/0f4493bd0302f85d1662b71c4f2145268fecc200\"\u003e\u003ccode\u003e0f4493b\u003c/code\u003e\u003c/a\u003e Configure default permissions as read-only for the workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/8c785761bd3c717793f0da4146dd630865568567\"\u003e\u003ccode\u003e8c78576\u003c/code\u003e\u003c/a\u003e Ignore test/** folder for GH default code scanning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/c9e655e13253dc53e3c0981a8345f134bcda1fc5\"\u003e\u003ccode\u003ec9e655e\u003c/code\u003e\u003c/a\u003e Bundle update, clear dependabot security issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/3fd061095084d8f9d3f8c995c46caabcd15640fd\"\u003e\u003ccode\u003e3fd0610\u003c/code\u003e\u003c/a\u003e Add a note to the changelog about an edge case issue some users ran into\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5b008ed51c0df3223cf727e7ad07378d6329b12f\"\u003e\u003ccode\u003e5b008ed\u003c/code\u003e\u003c/a\u003e Release v5.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/916f94ed4b4bb8e7881d5cf8c6535b7ccb368f7a\"\u003e\u003ccode\u003e916f94e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller (\u003ca href=\"https://redirect.github.com/heartcombo/devise/issues/5826\"\u003e#5826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heartcombo/devise/compare/v5.0.0...v5.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise-i18n` from 1.15.0 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/devise-i18n/devise-i18n/releases\"\u003edevise-i18n's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.16.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Ruby 4.0 to test matrix.\u003c/li\u003e\n\u003cli\u003eAdded compatibility with Devise 5.0.\u003c/li\u003e\n\u003cli\u003eUpdated views for Devise 5.0. Any views generated into your app prior to this release of devise-i18n should continue to work. Changes from Devise are:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5494\"\u003eheartcombo/devise#5494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/d13ef89\"\u003ehttps://github.com/heartcombo/devise/commit/d13ef89\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated one English string for Devise 5.0: \u003ca href=\"https://github.com/heartcombo/devise/commit/41003bf\"\u003ehttps://github.com/heartcombo/devise/commit/41003bf\u003c/a\u003e. Translations of this string are unaffected.\u003c/li\u003e\n\u003cli\u003eDropped compatibility for Devise \u0026lt; 5.0.\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/devise-i18n/devise-i18n/blob/main/CHANGELOG.md\"\u003edevise-i18n's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.16.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Ruby 4.0 to test matrix.\u003c/li\u003e\n\u003cli\u003eAdded compatibility with Devise 5.0.\u003c/li\u003e\n\u003cli\u003eUpdated views for Devise 5.0. Any views generated into your app prior to this release of devise-i18n should continue to work. Changes from Devise are:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5494\"\u003eheartcombo/devise#5494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/d13ef89\"\u003ehttps://github.com/heartcombo/devise/commit/d13ef89\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated one English string for Devise 5.0: \u003ca href=\"https://github.com/heartcombo/devise/commit/41003bf\"\u003ehttps://github.com/heartcombo/devise/commit/41003bf\u003c/a\u003e. Translations of this string are unaffected.\u003c/li\u003e\n\u003cli\u003eDropped compatibility for Devise \u0026lt; 5.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\u003e\u003ca href=\"https://github.com/devise-i18n/devise-i18n/commit/afe857a01ff7d0abe3f42749a613071bbad82ad1\"\u003e\u003ccode\u003eafe857a\u003c/code\u003e\u003c/a\u003e Prepare for 1.16.0 (\u003ca href=\"https://redirect.github.com/devise-i18n/devise-i18n/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devise-i18n/devise-i18n/commit/9bfa57440daa49a23de014a5a76727048d87c122\"\u003e\u003ccode\u003e9bfa574\u003c/code\u003e\u003c/a\u003e Update locales from Transifex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devise-i18n/devise-i18n/commit/a90329440be097ebe9895fc8228a9b336ae0823d\"\u003e\u003ccode\u003ea903294\u003c/code\u003e\u003c/a\u003e Update for compatibility with devise 5.0 (\u003ca href=\"https://redirect.github.com/devise-i18n/devise-i18n/issues/32\"\u003e#32\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devise-i18n/devise-i18n/commit/3f6dd991e516a8bb14d826fd9c510ea6935f45d3\"\u003e\u003ccode\u003e3f6dd99\u003c/code\u003e\u003c/a\u003e Test on Ruby 4.0 (\u003ca href=\"https://redirect.github.com/devise-i18n/devise-i18n/issues/31\"\u003e#31\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/devise-i18n/devise-i18n/compare/v1.15.0...v1.16.0\"\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.13.2 to 4.18.2\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.18.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4182-2026-04-20\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dashboard indexes for queue_name, created_at, and discarded jobs by \u003ca href=\"https://github.com/AliOsm\"\u003e\u003ccode\u003e@​AliOsm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1754\"\u003ebensheldon/good_job#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up ScheduledByQueueChart with inner-query pushdown and (scheduled_at, queue_name) index by \u003ca href=\"https://github.com/AliOsm\"\u003e\u003ccode\u003e@​AliOsm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1757\"\u003ebensheldon/good_job#1757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up succeeded count via complement subtraction by \u003ca href=\"https://github.com/AliOsm\"\u003e\u003ccode\u003e@​AliOsm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1758\"\u003ebensheldon/good_job#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ArgumentError when using perform_throttle without a label 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/1760\"\u003ebensheldon/good_job#1760\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.1...v4.18.2\"\u003ehttps://github.com/bensheldon/good_job/compare/v4.18.1...v4.18.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.18.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4181-2026-04-18\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix concurrent PG connection access in ProcessHeartbeat#refresh_process 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/1755\"\u003ebensheldon/good_job#1755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake job lifecycle methods lock-strategy-aware 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/1756\"\u003ebensheldon/good_job#1756\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.0...v4.18.1\"\u003ehttps://github.com/bensheldon/good_job/compare/v4.18.0...v4.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.18.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4180-2026-04-17\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GoodJob.handled_exceptions config; include NotImplementedError by default 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/1748\"\u003ebensheldon/good_job#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow adding the currently executing job to a batch 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/1746\"\u003ebensheldon/good_job#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce GoodJob::InterruptedError string for interrupted execution records 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/1750\"\u003ebensheldon/good_job#1750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall changes and fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow split enabled/paused badge for cron schedules in navbar 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/1744\"\u003ebensheldon/good_job#1744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake bulk action buttons responsive to job state filter 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/1751\"\u003ebensheldon/good_job#1751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix dashboard pagination omitting jobs created in the same second 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/1749\"\u003ebensheldon/good_job#1749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace AR attributes API with explicit accessors; add breaking migration guardrails 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/1753\"\u003ebensheldon/good_job#1753\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.17.0...v4.18.0\"\u003ehttps://github.com/bensheldon/good_job/compare/v4.17.0...v4.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4170-2026-04-17\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce advisory lock key customization support methods by \u003ca href=\"https://github.com/amkisko\"\u003e\u003ccode\u003e@​amkisko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1722\"\u003ebensheldon/good_job#1722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert UI JavaScript modules to Stimulus controllers 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/1743\"\u003ebensheldon/good_job#1743\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/amkisko\"\u003e\u003ccode\u003e@​amkisko\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1722\"\u003ebensheldon/good_job#1722\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/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.18.2\"\u003ev4.18.2\u003c/a\u003e (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.1...v4.18.2\"\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\u003eAdd dashboard indexes for queue_name, created_at, and discarded jobs \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1754\"\u003e#1754\u003c/a\u003e (\u003ca href=\"https://github.com/AliOsm\"\u003eAliOsm\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\u003eArgumentError: GoodJob::Job(...) is not an ActiveRecord::Relation \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1759\"\u003e#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ArgumentError when using perform_throttle without a label \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1760\"\u003e#1760\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\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\u003eSpeed up succeeded count via complement subtraction \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1758\"\u003e#1758\u003c/a\u003e (\u003ca href=\"https://github.com/AliOsm\"\u003eAliOsm\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up ScheduledByQueueChart with inner-query pushdown and (scheduled_at, queue_name) index \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1757\"\u003e#1757\u003c/a\u003e (\u003ca href=\"https://github.com/AliOsm\"\u003eAliOsm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/bensheldon/good_job/tree/v4.18.1\"\u003ev4.18.1\u003c/a\u003e (2026-04-18)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.0...v4.18.1\"\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\u003eAdd an ActiveJob extension for throttling \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/315\"\u003e#315\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\u003eMake job lifecycle methods lock-strategy-aware \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1756\"\u003e#1756\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix concurrent PG connection access in ProcessHeartbeat#refresh_process \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1755\"\u003e#1755\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\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\u003eJob stuck in queued state and never picked up \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1590\"\u003e#1590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor the Notifier to be more of a generic Reactor \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/811\"\u003e#811\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/bensheldon/good_job/tree/v4.18.0\"\u003ev4.18.0\u003c/a\u003e (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.17.0...v4.18.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\u003eMake bulk action buttons responsive to job state filter \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1751\"\u003e#1751\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce GoodJob::InterruptedError string for interrupted execution records \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1750\"\u003e#1750\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd GoodJob.handled_exceptions config; include NotImplementedError by default \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1748\"\u003e#1748\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow adding the currently executing job to a batch \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1746\"\u003e#1746\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShow split enabled/paused badge for cron schedules in navbar \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1744\"\u003e#1744\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed bugs:\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/6637ecc228305cc02f0cb070a0057df1b570b55c\"\u003e\u003ccode\u003e6637ecc\u003c/code\u003e\u003c/a\u003e Release good_job v4.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/04779eb8a6494a517def454a85bb1354c0cc64d3\"\u003e\u003ccode\u003e04779eb\u003c/code\u003e\u003c/a\u003e Fix ArgumentError when using perform_throttle without a label (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/f795b9c50cb124413462b330970844ceb7419ebc\"\u003e\u003ccode\u003ef795b9c\u003c/code\u003e\u003c/a\u003e Speed up succeeded count via complement subtraction (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1758\"\u003e#1758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/b3996b38482b3542057833421ea9d77d750e99d6\"\u003e\u003ccode\u003eb3996b3\u003c/code\u003e\u003c/a\u003e Speed up ScheduledByQueueChart with inner-query pushdown and (scheduled_at, q...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/26620ce95d4bd809e3e70d1bbfd914ddfb93c29e\"\u003e\u003ccode\u003e26620ce\u003c/code\u003e\u003c/a\u003e Add dashboard indexes for queue_name, created_at, and discarded jobs (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1754\"\u003e#1754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/18f743e7c2190065d63c15463c190b1aaee45149\"\u003e\u003ccode\u003e18f743e\u003c/code\u003e\u003c/a\u003e Release good_job v4.18.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/c212c18fcd21fc3bc81f585ea4f42ff83329333a\"\u003e\u003ccode\u003ec212c18\u003c/code\u003e\u003c/a\u003e Make job lifecycle methods lock-strategy-aware (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1756\"\u003e#1756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/99c2bfa9ab8411e6c906f60ae8bb334baef9373f\"\u003e\u003ccode\u003e99c2bfa\u003c/code\u003e\u003c/a\u003e Fix concurrent PG connection access in ProcessHeartbeat#refresh_process (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1755\"\u003e#1755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/cdf7369fe164b52b4d479dc811754e541213f528\"\u003e\u003ccode\u003ecdf7369\u003c/code\u003e\u003c/a\u003e Release good_job v4.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/0bab557382b1c9272bb7dd7b6faa5de9d2ed4eff\"\u003e\u003ccode\u003e0bab557\u003c/code\u003e\u003c/a\u003e Replace AR attributes API with explicit accessors; add breaking migration spe...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.13.2...v4.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kamal` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/kamal/releases\"\u003ekamal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003cp\u003eThis version requires \u003ca href=\"https://github.com/basecamp/kamal-proxy/releases/tag/v0.9.2\"\u003ekamal-proxy v0.9.2\u003c/a\u003e or higher to deploy. Run kamal proxy reboot to update to v0.9.2.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin to minitest 5 and update lockfiles by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1748\"\u003ebasecamp/kamal#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 4.0 to the test matrix by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1759\"\u003ebasecamp/kamal#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configurable verbosity for hooks output by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1758\"\u003ebasecamp/kamal#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README by \u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on hosts using nftables by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1762\"\u003ebasecamp/kamal#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse option_args when running accessories in a new container by \u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix --skip-commit for pre-connect hook by \u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support ssh-config to run-over-ssh by \u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire kamal-proxy 0.9.2 or higher by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1763\"\u003ebasecamp/kamal#1763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset specific roles and hosts when passed nil by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1770\"\u003ebasecamp/kamal#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow aliases to include the destination by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1786\"\u003ebasecamp/kamal#1786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rack from 3.2.4 to 3.2.5 in the bundler group across 1 directory 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/basecamp/kamal/pull/1779\"\u003ebasecamp/kamal#1779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.0 to 1.19.1 in the bundler group across 1 directory 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/basecamp/kamal/pull/1787\"\u003ebasecamp/kamal#1787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoad secrets for pre-connect by \u003ca href=\"https://github.com/nickhammond\"\u003e\u003ccode\u003e@​nickhammond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1772\"\u003ebasecamp/kamal#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote filter names in docker commands by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1732\"\u003ebasecamp/kamal#1732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance ERB rendering to trim blank lines in configuration files by \u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing a minor typo by \u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd user to docker group if not superuser by \u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\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/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.1...v2.11.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/basecamp/kamal/commit/453d8d7dc2b4c5e3479fd919a341c382712a65fb\"\u003e\u003ccode\u003e453d8d7\u003c/code\u003e\u003c/a\u003e Bump version for 2.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/56de0703e1fe6b11d46fb442a831ba08867c1855\"\u003e\u003ccode\u003e56de070\u003c/code\u003e\u003c/a\u003e Fix alias doc validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/89c0d32174231fd47e8aaa7834e795d9cc1d31bf\"\u003e\u003ccode\u003e89c0d32\u003c/code\u003e\u003c/a\u003e Doc change for Kamal 2.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/9c6252d0358e4a828400826f2d6d13d329a4b671\"\u003e\u003ccode\u003e9c6252d\u003c/code\u003e\u003c/a\u003e Rubocop fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/7a05140c6a38cb35ba28a8d0c9f7365f7babce5e\"\u003e\u003ccode\u003e7a05140\u003c/code\u003e\u003c/a\u003e Split the commands\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/a070fe777b47ab1012762c1e05b9e640af43c0cb\"\u003e\u003ccode\u003ea070fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1095\"\u003e#1095\u003c/a\u003e from brightbox/fix-980\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/3a68543e397c4bff1e0ad25cfcbca845a4402ae3\"\u003e\u003ccode\u003e3a68543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1767\"\u003e#1767\u003c/a\u003e from ron-shinall/fix-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/e4aaeda326226c111d9a4519b3af13e297b8586f\"\u003e\u003ccode\u003ee4aaeda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1718\"\u003e#1718\u003c/a\u003e from tortuetorche/add-erb-trim-mode-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/6ecf8ab8ca6003c7b2454957dd565e06cd38fe2f\"\u003e\u003ccode\u003e6ecf8ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1732\"\u003e#1732\u003c/a\u003e from basecamp/quote-filter-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/2c03a92858e08043e901f23c81b64d41b02f82e4\"\u003e\u003ccode\u003e2c03a92\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1772\"\u003e#1772\u003c/a\u003e from nickhammond/pre-connect-secrets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `meta-tags` from 2.22.3 to 2.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kpumuk/meta-tags/releases\"\u003emeta-tags's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor and harden GitHub Actions CI by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/343\"\u003ekpumuk/meta-tags#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStabilize Steep toolchain by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/344\"\u003ekpumuk/meta-tags#344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix packaged Rails RBS interfaces by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/345\"\u003ekpumuk/meta-tags#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4.6.2 to 7.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/348\"\u003ekpumuk/meta-tags#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 5.0.0 to 8.0.1 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/kpumuk/meta-tags/pull/347\"\u003ekpumuk/meta-tags#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/create-github-app-token from 2.2.2 to 3.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/346\"\u003ekpumuk/meta-tags#346\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefresh README SEO guidance by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/349\"\u003ekpumuk/meta-tags#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize property tag matching by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/350\"\u003ekpumuk/meta-tags#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YARD comment wording by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/351\"\u003ekpumuk/meta-tags#351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd strict YARD linting by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/352\"\u003ekpumuk/meta-tags#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreparing 2.23.0 release by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/353\"\u003ekpumuk/meta-tags#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/kpumuk/meta-tags/compare/v2.22.3...v2.23.0\"\u003ehttps://github.com/kpumuk/meta-tags/compare/v2.22.3...v2.23.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/kpumuk/meta-tags/blob/main/CHANGELOG.md\"\u003emeta-tags's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.23.0 (March 16, 2026) \u003ca href=\"https://github.com/kpumuk/meta-tags/compare/v2.22.3...v2.23.0\"\u003e☰\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003etitle\u003c/code\u003e helper to always return a string, joining array titles with the configured separator (\u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/344\"\u003e344\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed packaged RBS interfaces for Rails helpers so \u003ccode\u003e_ActionViewBase\u003c/code\u003e and \u003ccode\u003e_ActionControllerBase\u003c/code\u003e resolve for gem consumers (\u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/345\"\u003e345\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRefreshed README and generated docs to describe modern SEO guidance more accurately, while keeping legacy metadata features documented as compatibility options (\u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/349\"\u003e349\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eOptimized property tag matching to improve metadata rendering performance and reduce allocations and memory use on the hot render path (\u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/350\"\u003e350\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/kpumuk/meta-tags/commit/e26101479ab9a70ecbe7408e5ffe6785e6656632\"\u003e\u003ccode\u003ee261014\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/issues/353\"\u003e#353\u003c/a\u003e from kpumuk/release-2.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/2e798ea44dca3d32fdee94af8f3c128aea3f37e4\"\u003e\u003ccode\u003e2e798ea\u003c/code\u003e\u003c/a\u003e Preparing 2.23.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/2b956c9eda6cb138036b2b5e9679c16d74bfcc0c\"\u003e\u003ccode\u003e2b956c9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/issues/352\"\u003e#352\u003c/a\u003e from kpumuk/yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/8254a05c4306a23fd8f8047b4cb34f27e5bea305\"\u003e\u003ccode\u003e8254a05\u003c/code\u003e\u003c/a\u003e Limit yard-lint to Ruby 3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/f099110f416a79aaa1b9a080a35bbf17522ff8fa\"\u003e\u003ccode\u003ef099110\u003c/code\u003e\u003c/a\u003e Add strict YARD linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/f1cffa73dc548bbbb2a709f3ab510fe0a78f0a73\"\u003e\u003ccode\u003ef1cffa7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/issues/351\"\u003e#351\u003c/a\u003e from kpumuk/typos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/70dadc6d5a3a224a662a1fde2b4045904ee74997\"\u003e\u003ccode\u003e70dadc6\u003c/code\u003e\u003c/a\u003e Fix YARD comment wording\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/df53bacf49909c6f5410c742f0f8b4325aa502d0\"\u003e\u003ccode\u003edf53bac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/issues/350\"\u003e#350\u003c/a\u003e from kpumuk/prop-name-perf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/6f2b429cf4c892e887541ff0d264eb961cdcf717\"\u003e\u003ccode\u003e6f2b429\u003c/code\u003e\u003c/a\u003e Add changelog entry for property tag optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/998710df590892b611c4287245e6e6ea88ceec90\"\u003e\u003ccode\u003e998710d\u003c/code\u003e\u003c/a\u003e Optimize property tag fast path\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kpumuk/meta-tags/compare/v2.22.3...v2.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pagy` from 43.0.7 to 43.5.3\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.3\u003c/h2\u003e\n\u003ch3\u003eChanges in 43.5.3\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eAutoload series, a_lambda and page_label\u003c/li\u003e\n\u003cli\u003eAdd Hungarian localization file for Pagy (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/896\"\u003e#896\u003c/a\u003e)\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!-- 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.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAutoload series, a_lambda and page_label\u003c/li\u003e\n\u003cli\u003eAdd Hungarian localization file for Pagy (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.5.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type validation for page and limit keys type (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify series_nav_js removing \u0026quot;pagy-rjs\u0026quot; CSS class (Fix \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/894\"\u003e#894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.5.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRemove ghost code from cli; improve tests\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.5.0\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate javascripts according to es-linting\u003c/li\u003e\n\u003cli\u003eUpdate min ruby version to 3.3 (remove EOL 3.2)\u003c/li\u003e\n\u003cli\u003eImplement the NEW \u003ccode\u003epagy/next\u003c/code\u003e entrypoint to run the NEXT version now\u003c/li\u003e\n\u003cli\u003eRefactor deprecations:\n\u003cul\u003e\n\u003cli\u003eDeprecated :client_max_limit in favor of :max_limit; moved code into deprecation.rb\u003c/li\u003e\n\u003cli\u003eMove deprecated options out of class code, to keep the code clean\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemove RBS resources. Not worth the maintenance effort.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.4\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eMake typecasting in Keyset based classes safer and more efficient\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the :max_pages option (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge-case for queries with multiple orderings on same column (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eNormalize deprecations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.0\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImprove stylesheets and docs\u003c/li\u003e\n\u003cli\u003eImprove JavaScript:\n\u003cul\u003e\n\u003cli\u003eAdd sync method and task\u003c/li\u003e\n\u003cli\u003eDeprecate sync_javascript\u003c/li\u003e\n\u003cli\u003eSimplify build, configuration and docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.3.3\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 href=\"https://github.com/ddnexus/pagy/commit/5f085383bd4e6b630362777824716b686091a6f5\"\u003e\u003ccode\u003e5f08538\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/874833ccceed81863b7dfda2a35febe41ed089be\"\u003e\u003ccode\u003e874833c\u003c/code\u003e\u003c/a\u003e Version 43.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/4a0fba231bcdf2f20a67e35faec89727989cae95\"\u003e\u003ccode\u003e4a0fba2\u003c/code\u003e\u003c/a\u003e 💎 Autoload series, a_lambda and page_label\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/55e08028f9225a1978bab49f2536792210b25324\"\u003e\u003ccode\u003e55e0802\u003c/code\u003e\u003c/a\u003e Improve Ferrum test stability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/d9b37f956c09f5be64ff79284d45df8c97fe1847\"\u003e\u003ccode\u003ed9b37f9\u003c/code\u003e\u003c/a\u003e Improve page segment file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/876b61f27274f629a127755e90742c9a23988ad6\"\u003e\u003ccode\u003e876b61f\u003c/code\u003e\u003c/a\u003e 💎 Add Hungarian localization file for Pagy (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/187e0dac68c19c08fb740b0b99a947a25a40d039\"\u003e\u003ccode\u003e187e0da\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/d67d69b130c9fda45a510a2c44cbab0b06d5d3ed\"\u003e\u003ccode\u003ed67d69b\u003c/code\u003e\u003c/a\u003e Version 43.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/1f2d27d5955687c954a422a8b1b105ad7429538d\"\u003e\u003ccode\u003e1f2d27d\u003c/code\u003e\u003c/a\u003e Update libs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/f3e334231aa65dd4028616921fd3d62cd8cd01cb\"\u003e\u003ccode\u003ef3e3342\u003c/code\u003e\u003c/a\u003e 💎 Add type validation for page and limit keys type (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ddnexus/pagy/compare/43.0.7...43.5.3\"\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.2.0 to 4.8.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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix initialization ordering issue causing missing asset errors in Sprockets.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix segfaults when Ruby coverage is enabled.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGeorge Holborn\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eprotocol\u003c/code\u003e parameter to \u003ccode\u003ewith_request_url\u003c/code\u003e test helper to enable testing with HTTPS protocol.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix load order issues for 3rd-party template handlers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix initialization ordering issue causing missing asset errors in Sprockets.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix segfaults when Ruby coverage is enabled.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGeorge Holborn\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eprotocol\u003c/code\u003e parameter to \u003ccode\u003ewith_request_url\u003c/code\u003e test helper to enable testing with HTTPS protocol.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d7e8cb494448584d84f86dcf8ffee4adbc6a4769\"\u003e\u003ccode\u003ed7e8cb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2615\"\u003e#2615\u003c/a\u003e from ViewComponent/release-4-8-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/091e30a7fbda68661b7448379a535a3ff46062b5\"\u003e\u003ccode\u003e091e30a\u003c/code\u003e\u003c/a\u003e fix flaky tesT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9e0dae45b434b4493c3b7b79160be915a643b13c\"\u003e\u003ccode\u003e9e0dae4\u003c/code\u003e\u003c/a\u003e release 4.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/ef90407c853cd8553f5c821de58ad9308898a8c9\"\u003e\u003ccode\u003eef90407\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2613\"\u003e#2613\u003c/a\u003e from ViewComponent/instrument-compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d9209180e40c0ffbe08681fd716f012651d032e0\"\u003e\u003ccode\u003ed920918\u003c/code\u003e\u003c/a\u003e clean up test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/3cc6d61b83b34f41aaf49dad5e2fbb1c219756ad\"\u003e\u003ccode\u003e3cc6d61\u003c/code\u003e\u003c/a\u003e simplify test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d7947fc975fdde9c6a1cc286494802afb5fd3302\"\u003e\u003ccode\u003ed7947fc\u003c/code\u003e\u003c/a\u003e Add compile.view_component ActiveSupport::Notifications event for eager compi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5d84af8afeeed2c2b43aeb3626728c28f8a42711\"\u003e\u003ccode\u003e5d84af8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2612\"\u003e#2612\u003c/a\u003e from ViewComponent/dependabot/bundler/propshaft-1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8f4ef89b50753aa8f3e83dcf07ecc1f43541df94\"\u003e\u003ccode\u003e8f4ef89\u003c/code\u003e\u003c/a\u003e Bump propshaft from 1.3.1 to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9ae4d79a4222b8bc779904e31307e55390d0a1dd\"\u003e\u003ccode\u003e9ae4d79\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2611\"\u003e#2611\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.43\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.2.0...v4.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 3.6.0 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\u003ch2\u003ev3.7.1\u003c/h2\u003e\n\u003cp\u003eThanks to all contributors!\u003c/p\u003e\n\u003ch3\u003eDrops support for Ruby 3.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Ruby EOL 3.1 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3240\"\u003efaker-ruby/faker#3240\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eWhat's changed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove json_schema and public-suffix versions constraint by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3224\"\u003efaker-ruby/faker#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded additional football teams by \u003ca href=\"https://github.com/John222\"\u003e\u003ccode\u003e@​John222\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3231\"\u003efaker-ruby/faker#3231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove duplicate 'Recalled to Life' book title by \u003ca href=\"https://github.com/gkrimer\"\u003e\u003ccode\u003e@​gkrimer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3238\"\u003efaker-ruby/faker#3238\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdate development dependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump yard from 0.9.38 to 0.9.40 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/faker-ruby/faker/pull/3237\"\u003efaker-ruby/faker#3237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump timecop from 0.9.10 to 0.9.11 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/faker-ruby/faker/pull/3236\"\u003efaker-ruby/faker#3236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop from 1.85.1 to 1.86.1 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/faker-ruby/faker/pull/3235\"\u003efaker-ruby/faker#3235\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/John222\"\u003e\u003ccode\u003e@​John222\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3231\"\u003efaker-ruby/faker#3231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gkrimer\"\u003e\u003ccode\u003e@​gkrimer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3238\"\u003efaker-ruby/faker#3238\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.6.1...v3.7.1\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.6.1...v3.7.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\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\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.7.1\"\u003ev3.7.1\u003c/a\u003e (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eThanks to all contributors!\u003c/p\u003e\n\u003ch3\u003eDrops support for Ruby 3.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Ruby EOL 3.1 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3240\"\u003efaker-ruby/faker#3240\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eWhat's changed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove json_schema and public-suffix versions constraint by \u003ca href=\"https://g...\n\n_Description has been truncated_","html_url":"https://github.com/edmunteanu/cheeseformice/pull/159","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmunteanu%2Fcheeseformice/issues/159","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/159/packages"}],"issue_packages":[{"old_version":"4.11.0","new_version":"4.12.0","update_type":"minor","path":null,"pr_created_at":"2026-07-06T22:21:40.000Z","version_change":"4.11.0 → 4.12.0","issue":{"uuid":"4823533707","node_id":"PR_kwDOCSVaMM7ukYn6","number":7624,"state":"open","title":"build(deps): bump the minor-and-patch group across 1 directory with 10 updates","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-07-06T22:21:40.000Z","updated_at":"2026-07-06T22:22:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-and-patch","update_count":10,"packages":[{"name":"view_component","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"bootsnap","old_version":"1.24.5","new_version":"1.24.6","repository_url":"https://github.com/rails/bootsnap"},{"name":"coveralls_reborn","old_version":"0.29.0","new_version":"0.29.1","repository_url":"https://github.com/tagliala/coveralls-ruby-reborn"},{"name":"rubocop-rails","old_version":"2.35.3","new_version":"2.35.5","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":"capybara-playwright-driver","old_version":"0.5.9","new_version":"0.5.10","repository_url":"https://github.com/YusukeIwaki/capybara-playwright-driver"},{"name":"rubocop","old_version":"1.86.2","new_version":"1.88.1","repository_url":"https://github.com/rubocop/rubocop"},{"name":"aws-sdk-s3","old_version":"1.224.0","new_version":"1.226.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"opentelemetry-instrumentation-active_job","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby-contrib"},{"name":"maintenance_tasks","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/Shopify/maintenance_tasks"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.11.0` | `4.12.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.5` | `1.24.6` |\n| [coveralls_reborn](https://github.com/tagliala/coveralls-ruby-reborn) | `0.29.0` | `0.29.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.35.3` | `2.35.5` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.9.0` | `3.10.2` |\n| [capybara-playwright-driver](https://github.com/YusukeIwaki/capybara-playwright-driver) | `0.5.9` | `0.5.10` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.86.2` | `1.88.1` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.224.0` | `1.226.0` |\n| [opentelemetry-instrumentation-active_job](https://github.com/open-telemetry/opentelemetry-ruby-contrib) | `0.12.0` | `0.13.0` |\n| [maintenance_tasks](https://github.com/Shopify/maintenance_tasks) | `2.16.0` | `2.17.0` |\n\n\nUpdates `view_component` from 4.11.0 to 4.12.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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale render context on reused component instances. A \u003ccode\u003eViewComponent::Base\u003c/code\u003e instance memoized its controller, helpers, request, view context, lookup context, view flow, and requested format details on first render via \u003ccode\u003e||=\u003c/code\u003e. Rendering the same instance a second time (intentionally or via aliasing) reused that stale context, which could leak data across requests, sessions, or users. \u003ccode\u003e#render_in\u003c/code\u003e now resets these ivars on every call so each render derives its context from the current view.\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 HTML-safety bypass in \u003ccode\u003earound_render\u003c/code\u003e. \u003ccode\u003eViewComponent::Base#around_render\u003c/code\u003e could return HTML-unsafe strings that bypassed the escaping applied to normal \u003ccode\u003e#call\u003c/code\u003e return values, creating an XSS risk. The vulnerability was amplified in \u003ccode\u003eViewComponent::Collection#render_in\u003c/code\u003e, which joined per-item results and unconditionally marked the output \u003ccode\u003ehtml_safe\u003c/code\u003e. HTML-unsafe strings returned from \u003ccode\u003earound_render\u003c/code\u003e are now escaped (with a warning) and \u003ccode\u003eCollection#render_in\u003c/code\u003e now uses \u003ccode\u003esafe_join\u003c/code\u003e so unsafe per-item output is escaped instead of laundered into a \u003ccode\u003eSafeBuffer\u003c/code\u003e.\n\u003cem\u003eJoel Hawksley\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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale render context on reused component instances. A \u003ccode\u003eViewComponent::Base\u003c/code\u003e instance memoized its controller, helpers, request, view context, lookup context, view flow, and requested format details on first render via \u003ccode\u003e||=\u003c/code\u003e. Rendering the same instance a second time (intentionally or via aliasing) reused that stale context, which could leak data across requests, sessions, or users. \u003ccode\u003e#render_in\u003c/code\u003e now resets these ivars on every call so each render derives its context from the current view.\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 HTML-safety bypass in \u003ccode\u003earound_render\u003c/code\u003e. \u003ccode\u003eViewComponent::Base#around_render\u003c/code\u003e could return HTML-unsafe strings that bypassed the escaping applied to normal \u003ccode\u003e#call\u003c/code\u003e return values, creating an XSS risk. The vulnerability was amplified in \u003ccode\u003eViewComponent::Collection#render_in\u003c/code\u003e, which joined per-item results and unconditionally marked the output \u003ccode\u003ehtml_safe\u003c/code\u003e. HTML-unsafe strings returned from \u003ccode\u003earound_render\u003c/code\u003e are now escaped (with a warning) and \u003ccode\u003eCollection#render_in\u003c/code\u003e now uses \u003ccode\u003esafe_join\u003c/code\u003e so unsafe per-item output is escaped instead of laundered into a \u003ccode\u003eSafeBuffer\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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/4cbdbaaf8fb37299926a5dc45be2ffc03e436fc1\"\u003e\u003ccode\u003e4cbdbaa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2649\"\u003e#2649\u003c/a\u003e from ViewComponent/release-4-12-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a8888e1bb3318f6af9c4b6aef1e1f3987c54a09c\"\u003e\u003ccode\u003ea8888e1\u003c/code\u003e\u003c/a\u003e Fix lint and bump allocation ranges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/02d88969bc2a7ad96a81d514a247de228b29425d\"\u003e\u003ccode\u003e02d8896\u003c/code\u003e\u003c/a\u003e lockfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/50a2bafb35c8675001ac727cdc8c8c77b8c35c95\"\u003e\u003ccode\u003e50a2baf\u003c/code\u003e\u003c/a\u003e release 4.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6796b2e89d0bd7b9d7d763a86275e5334731dd61\"\u003e\u003ccode\u003e6796b2e\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/015f42cd9253815ef8ba0c0fe6bb3c20ec414258\"\u003e\u003ccode\u003e015f42c\u003c/code\u003e\u003c/a\u003e clean up changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5963e485483c9cc9fd8240877c65bab920025410\"\u003e\u003ccode\u003e5963e48\u003c/code\u003e\u003c/a\u003e simplify\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/53106bebd1994145202940f66204248212abe2cd\"\u003e\u003ccode\u003e53106be\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/7b05073be28037f7d5ff141e9dd42f3cf47956a4\"\u003e\u003ccode\u003e7b05073\u003c/code\u003e\u003c/a\u003e fix  Reused component instances retain stale render context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/48e5fd2d602344c7d33019fbc5c8b087e315bb78\"\u003e\u003ccode\u003e48e5fd2\u003c/code\u003e\u003c/a\u003e fix for around_render safety gap\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.11.0...v4.12.0\"\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.5 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\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\u003eSee full diff in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coveralls_reborn` from 0.29.0 to 0.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/releases\"\u003ecoveralls_reborn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.29.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump simplecov-lcov version by \u003ca href=\"https://github.com/tagliala\"\u003e\u003ccode\u003e@​tagliala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/pull/58\"\u003etagliala/coveralls-ruby-reborn#58\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 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/tagliala/coveralls-ruby-reborn/pull/57\"\u003etagliala/coveralls-ruby-reborn#57\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 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/tagliala/coveralls-ruby-reborn/pull/59\"\u003etagliala/coveralls-ruby-reborn#59\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor internal updates by \u003ca href=\"https://github.com/tagliala\"\u003e\u003ccode\u003e@​tagliala\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/pull/61\"\u003etagliala/coveralls-ruby-reborn#61\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/compare/v0.29.0...v0.29.1\"\u003ehttps://github.com/tagliala/coveralls-ruby-reborn/compare/v0.29.0...v0.29.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/blob/main/CHANGELOG.md\"\u003ecoveralls_reborn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.29.1 / 2026-06-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ENHANCEMENT] Minor internal updates \u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/pull/61\"\u003e#61\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/tagliala/coveralls-ruby-reborn/commit/3b19171a3fab923a544716260145ec7991407342\"\u003e\u003ccode\u003e3b19171\u003c/code\u003e\u003c/a\u003e Minor internal updates (\u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/issues/61\"\u003e#61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/commit/4e7528356f7a399e392548b86917db0e8ccb6fdc\"\u003e\u003ccode\u003e4e75283\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/issues/59\"\u003e#59\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/commit/326890f7db130f2156f49e00dd6b1c3abcbb5c9e\"\u003e\u003ccode\u003e326890f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/commit/25061e74138b5c3771f341f0fa95ffe56f2536cc\"\u003e\u003ccode\u003e25061e7\u003c/code\u003e\u003c/a\u003e Bump simplecov-lcov version (\u003ca href=\"https://redirect.github.com/tagliala/coveralls-ruby-reborn/issues/58\"\u003e#58\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tagliala/coveralls-ruby-reborn/compare/v0.29.0...v0.29.1\"\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.3 to 2.35.5\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.5\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/1379\"\u003e#1379\u003c/a\u003e: Fix an incorrect offense for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method is the last expression in a multiline method or block. (\u003ca href=\"https://github.com/aki77\"\u003e\u003ccode\u003e@​aki77\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-rails/pull/1617\"\u003e#1617\u003c/a\u003e: Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e. (\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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.5 (2026-06-21)\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/1379\"\u003e#1379\u003c/a\u003e: Fix an incorrect offense for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method is the last expression in a multiline method or block. ([\u003ca href=\"https://github.com/aki77\"\u003e\u003ccode\u003e@​aki77\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-rails/pull/1617\"\u003e#1617\u003c/a\u003e: Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e. ([\u003ca href=\"https://github.com/corsonknowles\"\u003e\u003ccode\u003e@​corsonknowles\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003c/ul\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\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/7ec7b4bfb1b3233f839b2d97976c0996257a1bcc\"\u003e\u003ccode\u003e7ec7b4b\u003c/code\u003e\u003c/a\u003e Cut 2.35.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/6393e5367519e7df8165311fee2cd91817bf44ad\"\u003e\u003ccode\u003e6393e53\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/138a926d7ca1362a15f63c925133a2425604efd5\"\u003e\u003ccode\u003e138a926\u003c/code\u003e\u003c/a\u003e Prevent \u003ccode\u003erubocop:disable\u003c/code\u003e directives from being included in examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/de6b1c27e733c9e3cda7e9d18eb6f70bddc2aa0e\"\u003e\u003ccode\u003ede6b1c2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1640\"\u003e#1640\u003c/a\u003e from aki77/issue-1379\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/697529ee99e001b706c9f5c31074b589626b84b8\"\u003e\u003ccode\u003e697529e\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1379\"\u003e#1379\u003c/a\u003e] Fix a false positive for \u003ccode\u003eRails/SaveBang\u003c/code\u003e when a persist method i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/20bd64f6d000ddc2ffd46221476f21413635b62c\"\u003e\u003ccode\u003e20bd64f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1638\"\u003e#1638\u003c/a\u003e from corsonknowles/allow-rails-env-local\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/16cfcb2c8a10eec84cc1769785a2067d12fbad1d\"\u003e\u003ccode\u003e16cfcb2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003eRails.env.local?\u003c/code\u003e in \u003ccode\u003eRails/Env\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/d3e3a603de97874194f56e01195ba344cf628f6e\"\u003e\u003ccode\u003ed3e3a60\u003c/code\u003e\u003c/a\u003e Fix a build error in the Ruby 3.1 CI matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/c6d6c6886af15ae3c4439ed41f45f3036b9cba6c\"\u003e\u003ccode\u003ec6d6c68\u003c/code\u003e\u003c/a\u003e Reset the docs version\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.35.3...v2.35.5\"\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 `capybara-playwright-driver` from 0.5.9 to 0.5.10\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/3c543b7eab81b20ab4943169aff0fdaccca9a331\"\u003e\u003ccode\u003e3c543b7\u003c/code\u003e\u003c/a\u003e 0.5.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/98c99522b21b4f5eac23aff4d707fee76b8364c7\"\u003e\u003ccode\u003e98c9952\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/YusukeIwaki/capybara-playwright-driver/issues/148\"\u003e#148\u003c/a\u003e from YusukeIwaki/codex/simplify-compatibility-specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/5a7332a641e9c9b803615537c445297224343f5d\"\u003e\u003ccode\u003e5a7332a\u003c/code\u003e\u003c/a\u003e Use DRIVER for compatibility workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/35f4a997362471d9290e474105ec781cfad4bea7\"\u003e\u003ccode\u003e35f4a99\u003c/code\u003e\u003c/a\u003e Simplify compatibility specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/45c808085c9bb68d84063967115fee7e18263b18\"\u003e\u003ccode\u003e45c8080\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/YusukeIwaki/capybara-playwright-driver/issues/147\"\u003e#147\u003c/a\u003e from YusukeIwaki/codex/fix-node-set-tab-compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/455b70f4645bd0170ee3752e8419195678b279d2\"\u003e\u003ccode\u003e455b70f\u003c/code\u003e\u003c/a\u003e Fix Node#set tab key compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/0ad07e7f27e95f81a345fea571072c96474a1e35\"\u003e\u003ccode\u003e0ad07e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/YusukeIwaki/capybara-playwright-driver/issues/146\"\u003e#146\u003c/a\u003e from YusukeIwaki/codex/selenium-window-size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/14d81231e8f4114e590b732b047f93049ade202e\"\u003e\u003ccode\u003e14d8123\u003c/code\u003e\u003c/a\u003e Align window size with Selenium\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/5a40db072fdf4e42ac4a374c225d211ee0a0aef6\"\u003e\u003ccode\u003e5a40db0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/YusukeIwaki/capybara-playwright-driver/issues/145\"\u003e#145\u003c/a\u003e from YusukeIwaki/fix-98\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/commit/02707565cc7b0c5b99da356103f95261caf182d7\"\u003e\u003ccode\u003e0270756\u003c/code\u003e\u003c/a\u003e Keep contenteditable branch in set_text\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/YusukeIwaki/capybara-playwright-driver/compare/0.5.9...0.5.10\"\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.88.1\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.88.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/pull/15408\"\u003e#15408\u003c/a\u003e: Fix a crash for \u003ccode\u003eBundler/GemComment\u003c/code\u003e with a non-literal gem option key. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix a crash for \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when a class body is a single safe-navigation call (e.g. \u003ccode\u003etest\u0026amp;.private_methods(def foo; end)\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15413\"\u003e#15413\u003c/a\u003e: Fix a crash for \u003ccode\u003eGemspec/DevelopmentDependencies\u003c/code\u003e when \u003ccode\u003eAllowedGems\u003c/code\u003e is nil. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15404\"\u003e#15404\u003c/a\u003e: Fix a crash for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e with an anonymous \u003ccode\u003edefine_method\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15414\"\u003e#15414\u003c/a\u003e: Fix a crash for \u003ccode\u003eNaming/InclusiveLanguage\u003c/code\u003e with nil or empty \u003ccode\u003eFlaggedTerms\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15405\"\u003e#15405\u003c/a\u003e: Fix a crash for \u003ccode\u003eSecurity/IoMethods\u003c/code\u003e with a non-string-literal argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15330\"\u003e#15330\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/EmptyStringInsideInterpolation\u003c/code\u003e with a modifier conditional. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15351\"\u003e#15351\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/OpenStructUse\u003c/code\u003e with a bare \u003ccode\u003eOpenStruct\u003c/code\u003e root node. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15379\"\u003e#15379\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/TrailingUnderscoreVariable\u003c/code\u003e when a nested destructuring group consists only of underscore variables. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15412\"\u003e#15412\u003c/a\u003e: Fix a false negative for \u003ccode\u003eSecurity/MarshalLoad\u003c/code\u003e with a proc argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15386\"\u003e#15386\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e with named rest arguments under \u003ccode\u003eEnforcedStyle: require_no_parentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15396\"\u003e#15396\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/MultilineMethodSignature\u003c/code\u003e where a signature that fits on one line was skipped because the multi-line source length was measured instead of the collapsed width. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15386\"\u003e#15386\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/OptionalArguments\u003c/code\u003e with singleton methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15383\"\u003e#15383\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/RedundantFilterChain\u003c/code\u003e with numbered-parameter blocks. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15290\"\u003e#15290\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when a braced hash is passed to keyword parameters (e.g. \u003ccode\u003eto_enum(:m, { required: required })\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11956\"\u003e#11956\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/FileName\u003c/code\u003e when a class or module name contains multiple consecutive \u003ccode\u003eAllowedAcronyms\u003c/code\u003e. ([\u003ca href=\"https://github.com/camallen\"\u003e\u003ccode\u003e@​camallen\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15324\"\u003e#15324\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/DirEmpty\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15326\"\u003e#15326\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/EmptyLiteral\u003c/code\u003e with numbered and \u003ccode\u003eit\u003c/code\u003e block parameters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15335\"\u003e#15335\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/EnvHome\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15345\"\u003e#15345\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/InlineComment\u003c/code\u003e with \u003ccode\u003erubocop:todo\u003c/code\u003e directives. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15348\"\u003e#15348\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15383\"\u003e#15383\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/NumericPredicate\u003c/code\u003e when an allowed method encloses a numbered-parameter or \u003ccode\u003eit\u003c/code\u003e block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15389\"\u003e#15389\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/OptionHash\u003c/code\u003e when the options hash is forwarded with an explicit \u003ccode\u003esuper\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15350\"\u003e#15350\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e with a lone format sequence. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15374\"\u003e#15374\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e with a rescue exception variable. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15376\"\u003e#15376\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/Semicolon\u003c/code\u003e with a semicolon inside a string literal. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15398\"\u003e#15398\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/ConditionPosition\u003c/code\u003e that dropped a body statement sharing the condition's line via a semicolon. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15399\"\u003e#15399\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/EmptyComment\u003c/code\u003e that deleted a heredoc when removing an empty comment trailing its opener. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15400\"\u003e#15400\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/EmptyLineBetweenDefs\u003c/code\u003e that inserted a blank line inside a heredoc body when an endless method's body was a heredoc. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15401\"\u003e#15401\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e that turned \u003ccode\u003e**=\u003c/code\u003e and \u003ccode\u003e/=\u003c/code\u003e compound assignments into \u003ccode\u003e**\u003c/code\u003e/\u003ccode\u003e/\u003c/code\u003e, dropping the assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15406\"\u003e#15406\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/MemoizedInstanceVariableName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15411\"\u003e#15411\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/RescuedExceptionsVariableName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15319\"\u003e#15319\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/DataInheritance\u003c/code\u003e with a brace block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15323\"\u003e#15323\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyCaseCondition\u003c/code\u003e as a \u003ccode\u003eyield\u003c/code\u003e/\u003ccode\u003esuper\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15323\"\u003e#15323\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyCaseCondition\u003c/code\u003e with low-precedence \u003ccode\u003ewhen\u003c/code\u003e values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15322\"\u003e#15322\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyClassDefinition\u003c/code\u003e with a namespaced constant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15336\"\u003e#15336\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyHeredoc\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15332\"\u003e#15332\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EvenOdd\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15329\"\u003e#15329\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ExactRegexpMatch\u003c/code\u003e with a single quote. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15333\"\u003e#15333\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FileNull\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15334\"\u003e#15334\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15331\"\u003e#15331\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FormatString\u003c/code\u003e with a low-precedence argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15331\"\u003e#15331\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FormatString\u003c/code\u003e with a splat argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15337\"\u003e#15337\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/HashSlice\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15327\"\u003e#15327\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e with a multi-pair braceless \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15368\"\u003e#15368\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/IfWithSemicolon\u003c/code\u003e that changed semantics when the condition was an assignment, by parenthesizing it in the resulting ternary. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15340\"\u003e#15340\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/KeywordArgumentsMerging\u003c/code\u003e with a block-pass argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\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.88.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15408\"\u003e#15408\u003c/a\u003e: Fix a crash for \u003ccode\u003eBundler/GemComment\u003c/code\u003e with a non-literal gem option key. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/9571\"\u003e#9571\u003c/a\u003e: Fix a crash for \u003ccode\u003eLayout/ClassStructure\u003c/code\u003e when a class body is a single safe-navigation call (e.g. \u003ccode\u003etest\u0026amp;.private_methods(def foo; end)\u003c/code\u003e). ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15413\"\u003e#15413\u003c/a\u003e: Fix a crash for \u003ccode\u003eGemspec/DevelopmentDependencies\u003c/code\u003e when \u003ccode\u003eAllowedGems\u003c/code\u003e is nil. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15404\"\u003e#15404\u003c/a\u003e: Fix a crash for \u003ccode\u003eMetrics/MethodLength\u003c/code\u003e with an anonymous \u003ccode\u003edefine_method\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15414\"\u003e#15414\u003c/a\u003e: Fix a crash for \u003ccode\u003eNaming/InclusiveLanguage\u003c/code\u003e with nil or empty \u003ccode\u003eFlaggedTerms\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15405\"\u003e#15405\u003c/a\u003e: Fix a crash for \u003ccode\u003eSecurity/IoMethods\u003c/code\u003e with a non-string-literal argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15330\"\u003e#15330\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/EmptyStringInsideInterpolation\u003c/code\u003e with a modifier conditional. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15351\"\u003e#15351\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/OpenStructUse\u003c/code\u003e with a bare \u003ccode\u003eOpenStruct\u003c/code\u003e root node. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15379\"\u003e#15379\u003c/a\u003e: Fix a crash for \u003ccode\u003eStyle/TrailingUnderscoreVariable\u003c/code\u003e when a nested destructuring group consists only of underscore variables. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15412\"\u003e#15412\u003c/a\u003e: Fix a false negative for \u003ccode\u003eSecurity/MarshalLoad\u003c/code\u003e with a proc argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15386\"\u003e#15386\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/MethodDefParentheses\u003c/code\u003e with named rest arguments under \u003ccode\u003eEnforcedStyle: require_no_parentheses\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15396\"\u003e#15396\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/MultilineMethodSignature\u003c/code\u003e where a signature that fits on one line was skipped because the multi-line source length was measured instead of the collapsed width. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15386\"\u003e#15386\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/OptionalArguments\u003c/code\u003e with singleton methods. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15383\"\u003e#15383\u003c/a\u003e: Fix a false negative for \u003ccode\u003eStyle/RedundantFilterChain\u003c/code\u003e with numbered-parameter blocks. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15290\"\u003e#15290\u003c/a\u003e: Fix a false negative for \u003ccode\u003eLint/ToEnumArguments\u003c/code\u003e when a braced hash is passed to keyword parameters (e.g. \u003ccode\u003eto_enum(:m, { required: required })\u003c/code\u003e), which raises \u003ccode\u003eArgumentError\u003c/code\u003e when the enumerator is used. ([\u003ca href=\"https://github.com/RedZapdos123\"\u003e\u003ccode\u003e@​RedZapdos123\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/11956\"\u003e#11956\u003c/a\u003e: Fix a false positive for \u003ccode\u003eNaming/FileName\u003c/code\u003e when a class or module name contains multiple consecutive \u003ccode\u003eAllowedAcronyms\u003c/code\u003e. ([\u003ca href=\"https://github.com/camallen\"\u003e\u003ccode\u003e@​camallen\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15324\"\u003e#15324\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/DirEmpty\u003c/code\u003e with a block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15326\"\u003e#15326\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/EmptyLiteral\u003c/code\u003e with numbered and \u003ccode\u003eit\u003c/code\u003e block parameters. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15335\"\u003e#15335\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/EnvHome\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15345\"\u003e#15345\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/InlineComment\u003c/code\u003e with \u003ccode\u003erubocop:todo\u003c/code\u003e directives. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15348\"\u003e#15348\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/MultilineIfThen\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15383\"\u003e#15383\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/NumericPredicate\u003c/code\u003e when an allowed method encloses a numbered-parameter or \u003ccode\u003eit\u003c/code\u003e block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15389\"\u003e#15389\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/OptionHash\u003c/code\u003e when the options hash is forwarded with an explicit \u003ccode\u003esuper\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15350\"\u003e#15350\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantFormat\u003c/code\u003e with a lone format sequence. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15374\"\u003e#15374\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/RedundantSelf\u003c/code\u003e with a rescue exception variable. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15376\"\u003e#15376\u003c/a\u003e: Fix a false positive for \u003ccode\u003eStyle/Semicolon\u003c/code\u003e with a semicolon inside a string literal. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15398\"\u003e#15398\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/ConditionPosition\u003c/code\u003e that dropped a body statement sharing the condition's line via a semicolon. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15399\"\u003e#15399\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/EmptyComment\u003c/code\u003e that deleted a heredoc when removing an empty comment trailing its opener. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15400\"\u003e#15400\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/EmptyLineBetweenDefs\u003c/code\u003e that inserted a blank line inside a heredoc body when an endless method's body was a heredoc. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15401\"\u003e#15401\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eLayout/SpaceAroundOperators\u003c/code\u003e that turned \u003ccode\u003e**=\u003c/code\u003e and \u003ccode\u003e/=\u003c/code\u003e compound assignments into \u003ccode\u003e**\u003c/code\u003e/\u003ccode\u003e/\u003c/code\u003e, dropping the assignment. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15406\"\u003e#15406\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/MemoizedInstanceVariableName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15411\"\u003e#15411\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eNaming/RescuedExceptionsVariableName\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15319\"\u003e#15319\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/DataInheritance\u003c/code\u003e with a brace block. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15323\"\u003e#15323\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyCaseCondition\u003c/code\u003e as a \u003ccode\u003eyield\u003c/code\u003e/\u003ccode\u003esuper\u003c/code\u003e argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15323\"\u003e#15323\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyCaseCondition\u003c/code\u003e with low-precedence \u003ccode\u003ewhen\u003c/code\u003e values. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15322\"\u003e#15322\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyClassDefinition\u003c/code\u003e with a namespaced constant. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15336\"\u003e#15336\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EmptyHeredoc\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15332\"\u003e#15332\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/EvenOdd\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15329\"\u003e#15329\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/ExactRegexpMatch\u003c/code\u003e with a single quote. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15333\"\u003e#15333\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FileNull\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15334\"\u003e#15334\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/For\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15331\"\u003e#15331\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FormatString\u003c/code\u003e with a low-precedence argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15331\"\u003e#15331\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/FormatString\u003c/code\u003e with a splat argument. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15337\"\u003e#15337\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/HashSlice\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15327\"\u003e#15327\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/HashSyntax\u003c/code\u003e with a multi-pair braceless \u003ccode\u003ereturn\u003c/code\u003e. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop/pull/15368\"\u003e#15368\u003c/a\u003e: Fix an incorrect autocorrect for \u003ccode\u003eStyle/IfWithSemicolon\u003c/code\u003e that changed semantics when the condition was an assignment, by parenthesizing it in the resulting ternary. ([\u003ca href=\"https://github.com/bbatsov\"\u003e\u003ccode\u003e@​bbatsov\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/rubocop/rubocop/commit/d35b32130a00bcbad97098b114e1ce54dfeb3ecf\"\u003e\u003ccode\u003ed35b321\u003c/code\u003e\u003c/a\u003e Cut 1.88.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/b4cb565595fd73a0dbacf8a4294c75e45dbc6121\"\u003e\u003ccode\u003eb4cb565\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/398805615a3dec48a3fc72224038f1546d7f580f\"\u003e\u003ccode\u003e3988056\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15352\"\u003e#15352\u003c/a\u003e from rubocop/fix-parallel-assignment-literal-escaping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/3abe081a6b89feed8e91a241b99927dd6086e0e3\"\u003e\u003ccode\u003e3abe081\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15365\"\u003e#15365\u003c/a\u003e from rubocop/fix-redundant-line-continuation-eof\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/f391d5a53aa49a34a2e06a447d01b6c5d67ac2e0\"\u003e\u003ccode\u003ef391d5a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15394\"\u003e#15394\u003c/a\u003e from rubocop/fix-nil-lambda-proc-return\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/37b29a9fa407a76346dd9cac9a914795b11d7df9\"\u003e\u003ccode\u003e37b29a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15398\"\u003e#15398\u003c/a\u003e from rubocop/fix-condition-position-semicolon-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/839d492b60c73ad32ebe926c509fb9882be304a8\"\u003e\u003ccode\u003e839d492\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15399\"\u003e#15399\u003c/a\u003e from rubocop/fix-empty-comment-heredoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/2d191a4daa7aee31c4211ff292936e2b479e3da0\"\u003e\u003ccode\u003e2d191a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15412\"\u003e#15412\u003c/a\u003e from rubocop/fix-marshal-load-extra-args\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/1767e56e62a0cce0fc9e20f5a2f1a3cc4437fbf3\"\u003e\u003ccode\u003e1767e56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15406\"\u003e#15406\u003c/a\u003e from rubocop/fix-memoized-ivar-operator-method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop/commit/c923d2930ebf58436a1622f7241aa54c020ca249\"\u003e\u003ccode\u003ec923d29\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop/issues/15368\"\u003e#15368\u003c/a\u003e from rubocop/fix-if-with-semicolon-assignment\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop/compare/v1.86.2...v1.88.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-s3` from 1.224.0 to 1.226.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.226.0 (2026-06-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - Added support for annotations. You can now attach up to 1000 annotations (up to 1 MB each) directly to objects and create, retrieve, list, and delete them using new annotation APIs. Also added support for configuring an annotation table in S3 Metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - Multipart copies now support \u003ccode\u003etags_directive\u003c/code\u003e, \u003ccode\u003eannotations_directive\u003c/code\u003e, and \u003ccode\u003emetadata_directive\u003c/code\u003e options for controlling which source properties are copied to the destination.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix error when performing cross-region multipart copies with \u003ccode\u003ecopy_source_region\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\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 `opentelemetry-instrumentation-active_job` from 0.12.0 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-ruby-contrib/releases\"\u003eopentelemetry-instrumentation-active_job's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopentelemetry-instrumentation-active_job 0.13.0\u003c/h2\u003e\n\u003ch2\u003ev0.13.0 / 2026-06-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eADDED: Add spans for Continuation (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-ruby-contrib/issues/2361\"\u003e#2361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eADDED: Add step.active_job span handler for Continuation\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/open-telemetry/opentelemetry-ruby-contrib/compare/opentelemetry-instrumentation-active_job/v0.12.0...opentelemetry-instrumentation-active_job/v0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `maintenance_tasks` from 2.16.0 to 2.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Shopify/maintenance_tasks/releases\"\u003emaintenance_tasks's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.17.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for no-longer-supported Rails 7.1 and clean up ✨ by \u003ca href=\"https://github.com/larouxn\"\u003e\u003ccode\u003e@​larouxn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/pull/1475\"\u003eShopify/maintenance_tasks#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003ebetter_html\u003c/code\u003e to \u003ccode\u003eherb\u003c/code\u003e 🌿 by \u003ca href=\"https://github.com/larouxn\"\u003e\u003ccode\u003e@​larouxn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/pull/1476\"\u003eShopify/maintenance_tasks#1476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Active Record errored elements by \u003ca href=\"https://github.com/adrianna-chang-shopify\"\u003e\u003ccode\u003e@​adrianna-chang-shopify\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/pull/1494\"\u003eShopify/maintenance_tasks#1494\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Shopify/maintenance_tasks/compare/v2.16.0...v2.17.0\"\u003ehttps://github.com/Shopify/maintenance_tasks/compare/v2.16.0...v2.17.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/Shopify/maintenance_tasks/commit/6d6e4c06881c35b16b2625904618f4c5e1371985\"\u003e\u003ccode\u003e6d6e4c0\u003c/code\u003e\u003c/a\u003e Serialize Active Record errored elements (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1494\"\u003e#1494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/b536746ca55295b1e02e86950a923b7bd1705d3e\"\u003e\u003ccode\u003eb536746\u003c/code\u003e\u003c/a\u003e Bump to 2.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/b385502d5c431f10fa9a47d8abc1b4cf9e65aa46\"\u003e\u003ccode\u003eb385502\u003c/code\u003e\u003c/a\u003e Serialize Active Record errored elements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/242c7e569824dd27b7f7256e7830454df34aa156\"\u003e\u003ccode\u003e242c7e5\u003c/code\u003e\u003c/a\u003e Bump rubocop from 1.86.2 to 1.87.0 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1493\"\u003e#1493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/1e13c5c8315a6b7f8094b5338560f9546c2c47c2\"\u003e\u003ccode\u003e1e13c5c\u003c/code\u003e\u003c/a\u003e Bump yard from 0.9.43 to 0.9.44 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1492\"\u003e#1492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/7fc47933d21f98d8e3db6b4cd12facf883076259\"\u003e\u003ccode\u003e7fc4793\u003c/code\u003e\u003c/a\u003e Bump puma from 8.0.1 to 8.0.2 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1491\"\u003e#1491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/60043326bdd7a2a12e8cbe0da49adf9c87577d74\"\u003e\u003ccode\u003e6004332\u003c/code\u003e\u003c/a\u003e Bump zeitwerk from 2.8.0 to 2.8.2 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/d582a1d7a36e287a83d963bb1fe4acccdec4e1ad\"\u003e\u003ccode\u003ed582a1d\u003c/code\u003e\u003c/a\u003e Bump actions/stale from 10.2.0 to 10.3.0 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/a39b81d432ae817efd0d9306ba683b467dfb8d87\"\u003e\u003ccode\u003ea39b81d\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.308.0 to 1.310.0 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shopify/maintenance_tasks/commit/4ee8689b3d9e1fb43eead2045dc93dfa8f22e2c9\"\u003e\u003ccode\u003e4ee8689\u003c/code\u003e\u003c/a\u003e Bump selenium-webdriver from 4.43.0 to 4.44.0 (\u003ca href=\"https://redirect.github.com/Shopify/maintenance_tasks/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Shopify/maintenance_tasks/compare/v2.16.0...v2.17.0\"\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/CircuitVerse/CircuitVerse/pull/7624","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitVerse%2FCircuitVerse/issues/7624","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7624/packages"}},{"old_version":"4.9.0","new_version":"4.12.0","update_type":"minor","path":null,"pr_created_at":"2026-06-08T01:56:49.000Z","version_change":"4.9.0 → 4.12.0","issue":{"uuid":"4609486560","node_id":"PR_kwDON4StM87jujub","number":584,"state":"closed","title":"chore(deps): bump the minor 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-15T01:56:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-08T01:56:49.000Z","updated_at":"2026-06-15T01:56:58.000Z","time_to_close":604807,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor","update_count":10,"packages":[{"name":"puma","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"bootsnap","old_version":"1.24.3","new_version":"1.24.6","repository_url":"https://github.com/rails/bootsnap"},{"name":"sentry-ruby","old_version":"6.5.0","new_version":"6.6.2","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"pagy","old_version":"43.5.3","new_version":"43.5.6","repository_url":"https://github.com/ddnexus/pagy"},{"name":"view_component","old_version":"4.9.0","new_version":"4.12.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"dsfr-form_builder","old_version":"0.0.13","new_version":"0.0.14","repository_url":"https://github.com/betagouv/dsfr-form-builder"},{"name":"friendly_id","old_version":"5.6.0","new_version":"5.7.0","repository_url":"https://github.com/norman/friendly_id"},{"name":"rubocop-rails","old_version":"2.34.3","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"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor 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| [bootsnap](https://github.com/rails/bootsnap) | `1.24.3` | `1.24.6` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.5.0` | `6.6.2` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.5.3` | `43.5.6` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.9.0` | `4.12.0` |\n| [dsfr-form_builder](https://github.com/betagouv/dsfr-form-builder) | `0.0.13` | `0.0.14` |\n| [friendly_id](https://github.com/norman/friendly_id) | `5.6.0` | `5.7.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.4` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.9.0` | `3.10.2` |\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 `bootsnap` from 1.24.3 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\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\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.3...v1.24.6\"\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 `sentry-rails` 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-rails'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/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/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.2\"\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.3 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\u003ch4\u003eVersion 43.5.4\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix SERIES_SLOTS loading error (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/902\"\u003e#902\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/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.3...43.5.6\"\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.9.0 to 4.12.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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale render context on reused component instances. A \u003ccode\u003eViewComponent::Base\u003c/code\u003e instance memoized its controller, helpers, request, view context, lookup context, view flow, and requested format details on first render via \u003ccode\u003e||=\u003c/code\u003e. Rendering the same instance a second time (intentionally or via aliasing) reused that stale context, which could leak data across requests, sessions, or users. \u003ccode\u003e#render_in\u003c/code\u003e now resets these ivars on every call so each render derives its context from the current view.\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 HTML-safety bypass in \u003ccode\u003earound_render\u003c/code\u003e. \u003ccode\u003eViewComponent::Base#around_render\u003c/code\u003e could return HTML-unsafe strings that bypassed the escaping applied to normal \u003ccode\u003e#call\u003c/code\u003e return values, creating an XSS risk. The vulnerability was amplified in \u003ccode\u003eViewComponent::Collection#render_in\u003c/code\u003e, which joined per-item results and unconditionally marked the output \u003ccode\u003ehtml_safe\u003c/code\u003e. HTML-unsafe strings returned from \u003ccode\u003earound_render\u003c/code\u003e are now escaped (with a warning) and \u003ccode\u003eCollection#render_in\u003c/code\u003e now uses \u003ccode\u003esafe_join\u003c/code\u003e so unsafe per-item output is escaped instead of laundered into a \u003ccode\u003eSafeBuffer\u003c/code\u003e.\n\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale render context on reused component instances. A \u003ccode\u003eViewComponent::Base\u003c/code\u003e instance memoized its controller, helpers, request, view context, lookup context, view flow, and requested format details on first render via \u003ccode\u003e||=\u003c/code\u003e. Rendering the same instance a second time (intentionally or via aliasing) reused that stale context, which could leak data across requests, sessions, or users. \u003ccode\u003e#render_in\u003c/code\u003e now resets these ivars on every call so each render derives its context from the current view.\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 HTML-safety bypass in \u003ccode\u003earound_render\u003c/code\u003e. \u003ccode\u003eViewComponent::Base#around_render\u003c/code\u003e could return HTML-unsafe strings that bypassed the escaping applied to normal \u003ccode\u003e#call\u003c/code\u003e return values, creating an XSS risk. The vulnerability was amplified in \u003ccode\u003eViewComponent::Collection#render_in\u003c/code\u003e, which joined per-item results and unconditionally marked the output \u003ccode\u003ehtml_safe\u003c/code\u003e. HTML-unsafe strings returned from \u003ccode\u003earound_render\u003c/code\u003e are now escaped (with a warning) and \u003ccode\u003eCollection#render_in\u003c/code\u003e now uses \u003ccode\u003esafe_join\u003c/code\u003e so unsafe per-item output is escaped instead of laundered into a \u003ccode\u003eSafeBuffer\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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/4cbdbaaf8fb37299926a5dc45be2ffc03e436fc1\"\u003e\u003ccode\u003e4cbdbaa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2649\"\u003e#2649\u003c/a\u003e from ViewComponent/release-4-12-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a8888e1bb3318f6af9c4b6aef1e1f3987c54a09c\"\u003e\u003ccode\u003ea8888e1\u003c/code\u003e\u003c/a\u003e Fix lint and bump allocation ranges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/02d88969bc2a7ad96a81d514a247de228b29425d\"\u003e\u003ccode\u003e02d8896\u003c/code\u003e\u003c/a\u003e lockfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/50a2bafb35c8675001ac727cdc8c8c77b8c35c95\"\u003e\u003ccode\u003e50a2baf\u003c/code\u003e\u003c/a\u003e release 4.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6796b2e89d0bd7b9d7d763a86275e5334731dd61\"\u003e\u003ccode\u003e6796b2e\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/015f42cd9253815ef8ba0c0fe6bb3c20ec414258\"\u003e\u003ccode\u003e015f42c\u003c/code\u003e\u003c/a\u003e clean up changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5963e485483c9cc9fd8240877c65bab920025410\"\u003e\u003ccode\u003e5963e48\u003c/code\u003e\u003c/a\u003e simplify\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/53106bebd1994145202940f66204248212abe2cd\"\u003e\u003ccode\u003e53106be\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/7b05073be28037f7d5ff141e9dd42f3cf47956a4\"\u003e\u003ccode\u003e7b05073\u003c/code\u003e\u003c/a\u003e fix  Reused component instances retain stale render context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/48e5fd2d602344c7d33019fbc5c8b087e315bb78\"\u003e\u003ccode\u003e48e5fd2\u003c/code\u003e\u003c/a\u003e fix for around_render safety gap\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.9.0...v4.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dsfr-form_builder` from 0.0.13 to 0.0.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betagouv/dsfr-form-builder/commit/58f5ca00e1cf95228b0f47d58631beb6c5195f99\"\u003e\u003ccode\u003e58f5ca0\u003c/code\u003e\u003c/a\u003e release 0.0.14 (\u003ca href=\"https://redirect.github.com/betagouv/dsfr-form-builder/issues/76\"\u003e#76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betagouv/dsfr-form-builder/commit/32ae02c313fa8a5c9df1fe5067521ba1676ee56f\"\u003e\u003ccode\u003e32ae02c\u003c/code\u003e\u003c/a\u003e Correctif du passage de l'option data aux champs input textuels (\u003ca href=\"https://redirect.github.com/betagouv/dsfr-form-builder/issues/73\"\u003e#73\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/betagouv/dsfr-form-builder/compare/v0.0.13...v0.0.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `friendly_id` from 5.6.0 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/norman/friendly_id/releases\"\u003efriendly_id's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.7.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReduce gem size by excluding test files by \u003ca href=\"https://github.com/yuri-zubov\"\u003e\u003ccode\u003e@​yuri-zubov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/norman/friendly_id/pull/1042\"\u003enorman/friendly_id#1042\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/yuri-zubov\"\u003e\u003ccode\u003e@​yuri-zubov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/norman/friendly_id/pull/1042\"\u003enorman/friendly_id#1042\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/norman/friendly_id/compare/v5.6.0...v5.7.0\"\u003ehttps://github.com/norman/friendly_id/compare/v5.6.0...v5.7.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/norman/friendly_id/blob/master/Changelog.md\"\u003efriendly_id's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFriendlyId Changelog\u003c/h1\u003e\n\u003cp\u003eWe would like to think our many \u003ca href=\"https://github.com/norman/friendly_id/graphs/contributors\"\u003econtributors\u003c/a\u003e for\nsuggestions, ideas and improvements to FriendlyId.\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/norman/friendly_id/commit/c66779c8780f14d211ae3ce469a01c7efeb83fdd\"\u003e\u003ccode\u003ec66779c\u003c/code\u003e\u003c/a\u003e Bump version to 5.7.0 (\u003ca href=\"https://redirect.github.com/norman/friendly_id/issues/1044\"\u003e#1044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/norman/friendly_id/commit/cf4b81c8024c8b482c032a2d987a8065bab4b585\"\u003e\u003ccode\u003ecf4b81c\u003c/code\u003e\u003c/a\u003e Reduce gem size by excluding test files (\u003ca href=\"https://redirect.github.com/norman/friendly_id/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/norman/friendly_id/compare/v5.6.0...v5.7.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.34.3 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\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-check methods such as \u003ccode\u003ekey?\u003c/code\u003e, \u003ccode\u003ehas_key?\u003c/code\u003e, \u003ccode\u003einclude?\u003c/code\u003e, and \u003ccode\u003emember?\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/1620\"\u003e#1620\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using type-check methods such as \u003ccode\u003eis_a?\u003c/code\u003e, \u003ccode\u003ekind_of?\u003c/code\u003e, and \u003ccode\u003einstance_of?\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\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.0\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. (\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\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-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\u003ch2\u003e2.35.2 (2026-05-19)\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\u003e2.35.1 (2026-05-17)\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-check methods such as \u003ccode\u003ekey?\u003c/code\u003e, \u003ccode\u003ehas_key?\u003c/code\u003e, \u003ccode\u003einclude?\u003c/code\u003e, and \u003ccode\u003emember?\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/1620\"\u003e#1620\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using type-check methods such as \u003ccode\u003eis_a?\u003c/code\u003e, \u003ccode\u003ekind_of?\u003c/code\u003e, and \u003ccode\u003einstance_of?\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\u003c/ul\u003e\n\u003ch2\u003e2.35.0 (2026-05-09)\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. ([\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. ([\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. ([\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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.34.3...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","html_url":"https://github.com/betagouv/acces-cible/pull/584","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/betagouv%2Facces-cible/issues/584","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/584/packages"}},{"old_version":"4.10.0","new_version":"4.11.0","update_type":"minor","path":null,"pr_created_at":"2026-05-31T00:09:56.000Z","version_change":"4.10.0 → 4.11.0","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":"4.4.0","new_version":"4.11.0","update_type":"minor","path":null,"pr_created_at":"2026-05-23T13:11:46.000Z","version_change":"4.4.0 → 4.11.0","issue":{"uuid":"4508256520","node_id":"PR_kwDORWFnQ87en7nD","number":11,"state":"closed","title":"chore(deps): bump view_component from 4.4.0 to 4.11.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-14T02:28:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-23T13:11:46.000Z","updated_at":"2026-06-14T02:28:20.000Z","time_to_close":1862193,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"view_component","old_version":"4.4.0","new_version":"4.11.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.4.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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.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\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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/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.4.0...v4.11.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.4.0\u0026new-version=4.11.0)](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/amateo8282/teovibe/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/amateo8282%2Fteovibe/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"}},{"old_version":"4.10.0","new_version":"4.11.0","update_type":"minor","path":null,"pr_created_at":"2026-05-19T20:04:54.000Z","version_change":"4.10.0 → 4.11.0","issue":{"uuid":"4480634197","node_id":"PR_kwDONX_SkM7dO20w","number":254,"state":"closed","title":"Bump view_component from 4.10.0 to 4.11.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-20T05:22:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T20:04:54.000Z","updated_at":"2026-05-20T05:22:25.000Z","time_to_close":33449,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.10.0","new_version":"4.11.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/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\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=view_component\u0026package-manager=bundler\u0026previous-version=4.10.0\u0026new-version=4.11.0)](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/sergey-arkhipov/Rails-8.0-template/pull/254","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergey-arkhipov%2FRails-8.0-template/issues/254","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/254/packages"}},{"old_version":"4.6.0","new_version":"4.10.0","update_type":"minor","path":null,"pr_created_at":"2026-05-19T00:43:08.000Z","version_change":"4.6.0 → 4.10.0","issue":{"uuid":"4473562742","node_id":"PR_kwDOO_Q96s7c3-Mo","number":97,"state":"closed","title":"chore(deps): Bump view_component from 4.6.0 to 4.10.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T21:15:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T00:43:08.000Z","updated_at":"2026-05-25T21:15:54.000Z","time_to_close":592364,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.10.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.10.0)](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/ericboehs/rails-starter/pull/97","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericboehs%2Frails-starter/issues/97","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/97/packages"}},{"old_version":"3.23.2","new_version":"4.11.0","update_type":"major","path":null,"pr_created_at":"2026-05-18T18:35:05.000Z","version_change":"3.23.2 → 4.11.0","issue":{"uuid":"4471611584","node_id":"PR_kwDOPmBpWM7cxqM-","number":11,"state":"closed","title":"Bump the bundler group across 1 directory with 18 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-27T00:18:22.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-18T18:35:05.000Z","updated_at":"2026-05-27T00:18:24.000Z","time_to_close":711797,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":18,"packages":[{"name":"addressable","old_version":"2.8.7","new_version":"2.9.0","repository_url":"https://github.com/sporkmonger/addressable"},{"name":"bcrypt","old_version":"3.1.20","new_version":"3.1.22","repository_url":"https://github.com/bcrypt-ruby/bcrypt-ruby"},{"name":"nokogiri","old_version":"1.18.9","new_version":"1.19.3","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"carrierwave","old_version":"1.3.4","new_version":"2.2.6","repository_url":"https://github.com/carrierwaveuploader/carrierwave"},{"name":"aws-sdk-s3","old_version":"1.198.0","new_version":"1.208.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"view_component","old_version":"3.23.2","new_version":"4.11.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"actionview","old_version":"8.0.2.1","new_version":"8.0.5","repository_url":"https://github.com/rails/rails"},{"name":"activestorage","old_version":"8.0.2.1","new_version":"8.0.5","repository_url":"https://github.com/rails/rails"},{"name":"activesupport","old_version":"8.0.2.1","new_version":"8.0.5","repository_url":"https://github.com/rails/rails"},{"name":"css_parser","old_version":"1.21.1","new_version":"1.22.0","repository_url":"https://github.com/premailer/css_parser"},{"name":"erb","old_version":"5.0.2","new_version":"6.0.4","repository_url":"https://github.com/ruby/erb"}],"path":null,"ecosystem":"rubygems"},"body":"Updates the requirements on [addressable](https://github.com/sporkmonger/addressable), [bcrypt](https://github.com/bcrypt-ruby/bcrypt-ruby), [nokogiri](https://github.com/sparklemotion/nokogiri), [carrierwave](https://github.com/carrierwaveuploader/carrierwave), [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby), [view_component](https://github.com/viewcomponent/view_component), [actionview](https://github.com/rails/rails), [activestorage](https://github.com/rails/rails), [activesupport](https://github.com/rails/rails), [css_parser](https://github.com/premailer/css_parser), [erb](https://github.com/ruby/erb), [faraday](https://github.com/lostisland/faraday), [jwt](https://github.com/jwt/ruby-jwt), [net-imap](https://github.com/ruby/net-imap), [rack](https://github.com/rack/rack), [rexml](https://github.com/ruby/rexml), [uri](https://github.com/ruby/uri) and [yard](https://yardoc.org) to permit the latest version.\nUpdates `addressable` from 2.8.7 to 2.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md\"\u003eaddressable's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAddressable 2.9.0 \u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixes ReDoS vulnerability in Addressable::Template#match (fixes incomplete\nremediation in 2.8.10)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAddressable 2.8.10 \u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixes ReDoS vulnerability in Addressable::Template#match\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAddressable 2.8.9 \u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReduce gem size by excluding test files (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNo need for bundler as development dependency (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/571\"\u003e#571\u003c/a\u003e, \u003ca href=\"https://github.com/sporkmonger/addressable/commit/5fc1d93\"\u003e5fc1d93\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eidna/pure: stop building the useless \u003ccode\u003eCOMPOSITION_TABLE\u003c/code\u003e (removes the \u003ccode\u003eAddressable::IDNA::COMPOSITION_TABLE\u003c/code\u003e constant) (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/569\"\u003e#569\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/569\"\u003esporkmonger/addressable#569\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/571\"\u003e#571\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/571\"\u003esporkmonger/addressable#571\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/564\"\u003e#564\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/564\"\u003esporkmonger/addressable#564\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eAddressable 2.8.8 \u003c!-- raw HTML omitted --\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace the \u003ccode\u003eunicode.data\u003c/code\u003e blob by a ruby constant (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003epublic_suffix\u003c/code\u003e 7 (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/561\"\u003e#561\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/561\"\u003esporkmonger/addressable#561\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/558\"\u003e#558\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/sporkmonger/addressable/pull/558\"\u003esporkmonger/addressable#558\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/sporkmonger/addressable/commit/0c3e8589b23d4402903a9b4e1fdeba4e43c52ca4\"\u003e\u003ccode\u003e0c3e858\u003c/code\u003e\u003c/a\u003e Revving version and changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/91915c1f7aafa3e2c9f42e2f4e21d948c7a861b8\"\u003e\u003ccode\u003e91915c1\u003c/code\u003e\u003c/a\u003e Fixing additional vulnerable paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/a091e39ff02fc321b21dea3a0df585bef2ba3744\"\u003e\u003ccode\u003ea091e39\u003c/code\u003e\u003c/a\u003e Add many more adversarial test cases to ensure we don't have any ReDoS regres...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/463a819665a3b85ce5ce894c90bd7bfa3b9d2e15\"\u003e\u003ccode\u003e463a819\u003c/code\u003e\u003c/a\u003e Regenerate gemspec on newer rubygems\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/0afcb0b9672bee301e5e96ed850fec05b2fcabb0\"\u003e\u003ccode\u003e0afcb0b\u003c/code\u003e\u003c/a\u003e Improve from O(n^2) to O(n)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/c87f768f22ab00376ed2f8cb106f59c9d0652d3a\"\u003e\u003ccode\u003ec87f768\u003c/code\u003e\u003c/a\u003e Fix a ReDoS vulnerability in URI template matching\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/0d7e9b259fb0940d1a85064b04f678a7984409a5\"\u003e\u003ccode\u003e0d7e9b2\u003c/code\u003e\u003c/a\u003e Fix links for 2.8.9 in CHANGELOG (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/e2091200b31553f19248eb871f071852409796f8\"\u003e\u003ccode\u003ee209120\u003c/code\u003e\u003c/a\u003e Update version, gemspec, and CHANGELOG for 2.8.9 (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/387587492b6536748ed12a11c3fdb44a48885f28\"\u003e\u003ccode\u003e3875874\u003c/code\u003e\u003c/a\u003e Reduce gem size by excluding test files (\u003ca href=\"https://redirect.github.com/sporkmonger/addressable/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sporkmonger/addressable/commit/3e57cc6018f94231aabb47fd341acd1b40f1e71a\"\u003e\u003ccode\u003e3e57cc6\u003c/code\u003e\u003c/a\u003e CI: back to \u003ccode\u003ewindows-2022\u003c/code\u003e for MRI job\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sporkmonger/addressable/compare/addressable-2.8.7...addressable-2.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bcrypt` from 3.1.20 to 3.1.22\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/releases\"\u003ebcrypt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove compilation after bundle install by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/291\"\u003ebcrypt-ruby/bcrypt-ruby#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TruffleRuby in CI by \u003ca href=\"https://github.com/tjschuck\"\u003e\u003ccode\u003e@​tjschuck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/293\"\u003ebcrypt-ruby/bcrypt-ruby#293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix env url by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/294\"\u003ebcrypt-ruby/bcrypt-ruby#294\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\"\u003ehttps://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.21...v3.1.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProvide a 'Changelog' link on rubygems.org/gems/bcrypt by \u003ca href=\"https://github.com/mark-young-atg\"\u003e\u003ccode\u003e@​mark-young-atg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/274\"\u003ebcrypt-ruby/bcrypt-ruby#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport ruby 3.3 and 3.4.0-preview1 by \u003ca href=\"https://github.com/m-nakamura145\"\u003e\u003ccode\u003e@​m-nakamura145\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/276\"\u003ebcrypt-ruby/bcrypt-ruby#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark as ractor-safe by \u003ca href=\"https://github.com/mohamedhafez\"\u003e\u003ccode\u003e@​mohamedhafez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/280\"\u003ebcrypt-ruby/bcrypt-ruby#280\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd == gotcha that can be unintuitive at first by \u003ca href=\"https://github.com/federicoaldunate\"\u003e\u003ccode\u003e@​federicoaldunate\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/279\"\u003ebcrypt-ruby/bcrypt-ruby#279\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConstant compare by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/282\"\u003ebcrypt-ruby/bcrypt-ruby#282\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etry to modernize CI by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/287\"\u003ebcrypt-ruby/bcrypt-ruby#287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTry to deal with flaky tests by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/288\"\u003ebcrypt-ruby/bcrypt-ruby#288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConfigure trusted publishing by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/289\"\u003ebcrypt-ruby/bcrypt-ruby#289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump version by \u003ca href=\"https://github.com/tenderlove\"\u003e\u003ccode\u003e@​tenderlove\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/290\"\u003ebcrypt-ruby/bcrypt-ruby#290\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/mark-young-atg\"\u003e\u003ccode\u003e@​mark-young-atg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/274\"\u003ebcrypt-ruby/bcrypt-ruby#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/m-nakamura145\"\u003e\u003ccode\u003e@​m-nakamura145\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/276\"\u003ebcrypt-ruby/bcrypt-ruby#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mohamedhafez\"\u003e\u003ccode\u003e@​mohamedhafez\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/280\"\u003ebcrypt-ruby/bcrypt-ruby#280\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/federicoaldunate\"\u003e\u003ccode\u003e@​federicoaldunate\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/pull/279\"\u003ebcrypt-ruby/bcrypt-ruby#279\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.20...v3.1.21\"\u003ehttps://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.20...v3.1.21\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/bcrypt-ruby/bcrypt-ruby/blob/master/CHANGELOG\"\u003ebcrypt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.1.22 Mar 18 2026\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CVE-2026-33306] Fix integer overflow in Java extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.1.21 Dec 31 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse constant time comparisons\u003c/li\u003e\n\u003cli\u003eMark as Ractor safe\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/bcrypt-ruby/bcrypt-ruby/commit/831ce64cb0a9502130fa93a28bfd9527a5fa45c4\"\u003e\u003ccode\u003e831ce64\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/32e687ec5f62baad01a62e4634e41d97f8432a61\"\u003e\u003ccode\u003e32e687e\u003c/code\u003e\u003c/a\u003e bump version update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/5faa2748331d3edc661c127ef2fbb3afcb6b02a4\"\u003e\u003ccode\u003e5faa274\u003c/code\u003e\u003c/a\u003e Fix integer overflow in JRuby BCrypt rounds calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/aafc0332ac1aa0d774f2c864439596436f92d18d\"\u003e\u003ccode\u003eaafc033\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/294\"\u003e#294\u003c/a\u003e from bcrypt-ruby/fix-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/01f947a66ad8c5e20d8c89d9adbc7e3bd49afb70\"\u003e\u003ccode\u003e01f947a\u003c/code\u003e\u003c/a\u003e fix env url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/92ca1d67deeb8e64dbe779396c52b177e307bc43\"\u003e\u003ccode\u003e92ca1d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/293\"\u003e#293\u003c/a\u003e from bcrypt-ruby/truffleruby-ci-alt-implementation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/4d1d95b8ec624d0cf8ed1099402a7edd2f308da2\"\u003e\u003ccode\u003e4d1d95b\u003c/code\u003e\u003c/a\u003e Add TruffleRuby in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/36a04a2278fae3b38100912ff489b86cd0984b8a\"\u003e\u003ccode\u003e36a04a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/291\"\u003e#291\u003c/a\u003e from tenderlove/fix-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/01cc68835f0bcdd7ef16de477471c112adb417da\"\u003e\u003ccode\u003e01cc688\u003c/code\u003e\u003c/a\u003e Move compilation after bundle install\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/commit/82e6c4c6cf81912768c68d721372e78330ff2c92\"\u003e\u003ccode\u003e82e6c4c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bcrypt-ruby/bcrypt-ruby/issues/290\"\u003e#290\u003c/a\u003e from tenderlove/bump\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bcrypt-ruby/bcrypt-ruby/compare/v3.1.20...v3.1.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nokogiri` from 1.18.9 to 1.19.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/nokogiri/releases\"\u003enokogiri's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.3 / 2026-04-27\u003c/h2\u003e\n\u003ch3\u003eFixed / Security\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddress exponential regex backtracking in CSS selector tokenizer. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-c4rq-3m3g-8wgx\"\u003eGHSA-c4rq-3m3g-8wgx\u003c/a\u003e for more information.\u003c/li\u003e\n\u003cli\u003e[CRuby] Address memory leak in \u003ccode\u003eXSLT::Stylesheet#transform\u003c/code\u003e. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-v2fc-qm4h-8hqv\"\u003eGHSA-v2fc-qm4h-8hqv\u003c/a\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003e46b89e5d7b9e844c2ee360794240c6ea2a4e6fa0c5892a4ed487db621224b639  nokogiri-1.19.3-aarch64-linux-gnu.gem\r\n8392dfdcd21be7a94dbbe9ccc138dea01b97b24cb2dc02a114ca98bfb1d9a0b7  nokogiri-1.19.3-aarch64-linux-musl.gem\r\n3919d5ffc334ad778a4a9eb88fda7dcb8b1fb58c8a52ac640c6dcd2f038e774f  nokogiri-1.19.3-arm-linux-gnu.gem\r\n9ce1cb6346bb9c67b1550eb537aa183ead91e4b6eadb2f36ade02d8dd2a79fb6  nokogiri-1.19.3-arm-linux-musl.gem\r\n71b9bd424b1b7abc18b05052a1a3cfd3627abdca62be280854cc411791357e42  nokogiri-1.19.3-arm64-darwin.gem\r\n40ea6ebf5cf2005dae1dee26dd557d3afb41fb6de6c9764aca8cf06fdb841db1  nokogiri-1.19.3-java.gem\r\n8bb7132cad356c879a1286eaabcb5e68326cb2490317984280fbc62f456d506a  nokogiri-1.19.3-x64-mingw-ucrt.gem\r\n77f3fba57d46c53ab31e62fc6c28f705109d1bf6264356c76f132b2be5728d4d  nokogiri-1.19.3-x86_64-darwin.gem\r\n2f5078620fe12e83669b5b17311b32532a8153d02eee7ad06948b926d6080976  nokogiri-1.19.3-x86_64-linux-gnu.gem\r\n248c906d2166eca5efb56d52fdee5f9a1f51d69a72e2b64fdac647b4ce39ea3f  nokogiri-1.19.3-x86_64-linux-musl.gem\r\n78312cbac32a40c812780d9678221b79d51288eec00054c1a8d15f7ce05960e8  nokogiri-1.19.3.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev1.19.2 / 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[JRuby] Saxon-HE is updated to 12.7, from 9.6.0-4. Saxon-HE is a transitive dependency of nu.validator:jing, and this update addresses CVEs in Saxon-HE's own transitive dependencies JDOM and dom4j. We don't think this warrants a security release, however we're cutting a patch release to help users whose security scanners are flagging this. \u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3611\"\u003e#3611\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\u003eSHA256 Checksums\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003ec34d5c8208025587554608e98fd88ab125b29c80f9352b821964e9a5d5cfbd19  nokogiri-1.19.2-aarch64-linux-gnu.gem\r\n7f6b4b0202d507326841a4f790294bf75098aef50c7173443812e3ac5cb06515  nokogiri-1.19.2-aarch64-linux-musl.gem\r\nb7fa1139016f3dc850bda1260988f0d749934a939d04ef2da13bec060d7d5081  nokogiri-1.19.2-arm-linux-gnu.gem\r\n61114d44f6742ff72194a1b3020967201e2eb982814778d130f6471c11f9828c  nokogiri-1.19.2-arm-linux-musl.gem\r\n58d8ea2e31a967b843b70487a44c14c8ba1866daa1b9da9be9dbdf1b43dee205  nokogiri-1.19.2-arm64-darwin.gem\r\ne9d67034bc80ca71043040beea8a91be5dc99b662daa38a2bfb361b7a2cc8717  nokogiri-1.19.2-java.gem\r\n8ccf25eea3363a2c7b3f2e173a3400582c633cfead27f805df9a9c56d4852d1a  nokogiri-1.19.2-x64-mingw-ucrt.gem\r\n7d9af11fda72dfaa2961d8c4d5380ca0b51bc389dc5f8d4b859b9644f195e7a4  nokogiri-1.19.2-x86_64-darwin.gem\r\nfa8feca882b73e871a9845f3817a72e9734c8e974bdc4fbad6e4bc6e8076b94f  nokogiri-1.19.2-x86_64-linux-gnu.gem\r\n93128448e61a9383a30baef041bf1f5817e22f297a1d400521e90294445069a8  nokogiri-1.19.2-x86_64-linux-musl.gem\r\n38fdd8b59db3d5ea9e7dfb14702e882b9bf819198d5bf976f17ebce12c481756  nokogiri-1.19.2.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sparklemotion/nokogiri/compare/v1.19.1...v1.19.2\"\u003ehttps://github.com/sparklemotion/nokogiri/compare/v1.19.1...v1.19.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.19.1 / 2026-02-16\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md\"\u003enokogiri's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.19.3 / 2026-04-27\u003c/h2\u003e\n\u003ch3\u003eFixed / Security\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddress exponential regex backtracking in CSS selector tokenizer. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-c4rq-3m3g-8wgx\"\u003eGHSA-c4rq-3m3g-8wgx\u003c/a\u003e for more information.\u003c/li\u003e\n\u003cli\u003e[CRuby] Address memory leak in \u003ccode\u003eXSLT::Stylesheet#transform\u003c/code\u003e. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-v2fc-qm4h-8hqv\"\u003eGHSA-v2fc-qm4h-8hqv\u003c/a\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.19.2 / 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[JRuby] Saxon-HE is updated to 12.7, from 9.6.0-4. Saxon-HE is a transitive dependency of nu.validator:jing, and this update addresses CVEs in Saxon-HE's own transitive dependencies JDOM and dom4j. We don't think this warrants a security release, however we're cutting a patch release to help users whose security scanners are flagging this. \u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3611\"\u003e#3611\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\u003ev1.19.1 / 2026-02-16\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[CRuby] Address unchecked return value from \u003ccode\u003exmlC14NExecute\u003c/code\u003e which was a contributing cause to ruby-saml GHSA-x4h9-gwv3-r4m4. See \u003ca href=\"https://github.com/sparklemotion/nokogiri/security/advisories/GHSA-wx95-c6cv-8532\"\u003eGHSA-wx95-c6cv-8532\u003c/a\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.19.0 / 2025-12-28\u003c/h2\u003e\n\u003ch4\u003eRuby\u003c/h4\u003e\n\u003cp\u003eThis release is focused on changes to Ruby version support, and is otherwise functionally identical to v1.18.10.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce native gem support for Ruby 4.0. \u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3590\"\u003e#3590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnd support for Ruby 3.1, for which \u003ca href=\"https://www.ruby-lang.org/en/downloads/branches/\"\u003eupstream support ended 2025-03-26\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnd support for JRuby 9.4 (which targets Ruby 3.1 compatibility).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.18.10 / 2025-09-15\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[CRuby] Vendored libxml2 is updated to \u003ca href=\"https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.13.9\"\u003ev2.13.9\u003c/a\u003e. Note that the security fixes published in v2.13.9 were already present in Nokogiri v1.18.9.\u003c/li\u003e\n\u003cli\u003e[CRuby] [Windows and MacOS] Vendored libiconv is updated to \u003ca href=\"https://savannah.gnu.org/news/?id=10703\"\u003ev1.18\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/sparklemotion/nokogiri/commit/c139a3da0fe0cae7499a0bafa20f2875877c585b\"\u003e\u003ccode\u003ec139a3d\u003c/code\u003e\u003c/a\u003e version bump to v1.19.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/7501a63b9f4246d12516e35b91fed8be34f854c0\"\u003e\u003ccode\u003e7501a63\u003c/code\u003e\u003c/a\u003e fix: backtracking in CSS tokenizer rules (v1.19.x backport) (\u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3627\"\u003e#3627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/03e7968a730a6544ab56a8d6c3e82dd630ad4339\"\u003e\u003ccode\u003e03e7968\u003c/code\u003e\u003c/a\u003e test: skip CSS tokenizer benchmarks on JRuby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/b984b7e47f622d1aa97d54c16d5cd596c3eb9538\"\u003e\u003ccode\u003eb984b7e\u003c/code\u003e\u003c/a\u003e fix: ReDoS in CSS tokenizer ident rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/00926231e28d5a20e5b4873efba36099aea0d5c6\"\u003e\u003ccode\u003e0092623\u003c/code\u003e\u003c/a\u003e fix: ReDoS in CSS tokenizer STRING rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/ee17d33aff3adb30c14e71d3d4c8163465acaccf\"\u003e\u003ccode\u003eee17d33\u003c/code\u003e\u003c/a\u003e fix: memory leak in XSLT transform (backport to v1.19.x) (\u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3624\"\u003e#3624\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/ce188a395192e3757d8701949afb643dc025084c\"\u003e\u003ccode\u003ece188a3\u003c/code\u003e\u003c/a\u003e doc: update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/caeaac41f874f0944f9397c78bf6c1bfac2cb472\"\u003e\u003ccode\u003ecaeaac4\u003c/code\u003e\u003c/a\u003e fix: memory leak in XSLT transform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/25220bf268c9808e28415563ed7f8ea8d5c332bf\"\u003e\u003ccode\u003e25220bf\u003c/code\u003e\u003c/a\u003e dep(test): test against libxml-ruby v6 (\u003ca href=\"https://redirect.github.com/sparklemotion/nokogiri/issues/3618\"\u003e#3618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/nokogiri/commit/0caeb21a5c5e9ff45bbede88fb53655f6753bb0e\"\u003e\u003ccode\u003e0caeb21\u003c/code\u003e\u003c/a\u003e doc: add security warnings for untrusted XSLT stylesheets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/nokogiri/compare/v1.18.9...v1.19.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `carrierwave` from 1.3.4 to 2.2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/releases\"\u003ecarrierwave's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.6\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Content-Type allowlist bypass vulnerability remained (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/431787193795dda9b01a0ee748bd93e2ec7101c2\"\u003e4317871\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/security/advisories/GHSA-vfmv-jfc5-pjjw\"\u003eGHSA-vfmv-jfc5-pjjw\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.5\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Content-Type allowlist bypass vulnerability, possibly leading to XSS (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/39b282db5c1303899b3d3381ce8a837840f983b5\"\u003e39b282d\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/security/advisories/GHSA-gxhx-g4fq-49hj\"\u003eGHSA-gxhx-g4fq-49hj\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.4\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Ruby 2.7 keyword argument warning in uploader process (\u003ca href=\"https://github.com/SuperTux88\"\u003e\u003ccode\u003e@​SuperTux88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2665\"\u003e#2665\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2636\"\u003e#2636\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2635\"\u003e#2635\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workaround for 'undefined method closed?' error caused by ssrf_filter 1.1 (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/c74579d382ad124193e80cc5af71824a23de57e6\"\u003ec74579d\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2628\"\u003e#2628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd workaround for the API change in ssrf_filter 1.1 (\u003ca href=\"https://github.com/BrianHawley\"\u003e\u003ccode\u003e@​BrianHawley\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2629\"\u003e#2629\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2625\"\u003e#2625\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno implicit conversion of CSV into String\u003c/code\u003e error when parsing a CSV object (\u003ca href=\"https://github.com/pjmartorell\"\u003e\u003ccode\u003e@​pjmartorell\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2562\"\u003e#2562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mimemagic with marcel due to licensing concern (\u003ca href=\"https://github.com/pjmartorell\"\u003e\u003ccode\u003e@​pjmartorell\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2551\"\u003e#2551\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2548\"\u003e#2548\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFog storage's #clean_cache! breaks when non-cache objects exist in cache_dir (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/42c620a1a19afa61e15e617faa7ce9cc89ec1863\"\u003e42c620a1\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2532\"\u003e#2532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003elibvips support through \u003ca href=\"https://github.com/janko/image_processing\"\u003eImageProcessing::Vips\u003c/a\u003e and \u003ca href=\"https://github.com/libvips/ruby-vips\"\u003eruby-vips\u003c/a\u003e (\u003ca href=\"https://github.com/rhymes\"\u003e\u003ccode\u003e@​rhymes\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2500\"\u003e#2500\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/e84219787aa1c95a55cbc78ad062b7539d8e5813\"\u003ee8421978\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4ae8dc64ff0dcbcf66c6d79df90268d57438df55\"\u003e4ae8dc64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProvide alternatives to whitelist/blacklist terminology as allowlist/denylist, while old ones are still available but deprecated (\u003ca href=\"https://github.com/grantbdev\"\u003e\u003ccode\u003e@​grantbdev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2442\"\u003e#2442\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4c3cac75f3a473e941045c23ebb781f61af67d79\"\u003e4c3cac75\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for the latest version of RMagick (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/88f24451352bda128825f857cde473107d98fca7\"\u003e88f24451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e#(content_type|extension)_whitelist\u003c/code\u003e, \u003ccode\u003e#(content_type|extension)_blacklist\u003c/code\u003e are deprecated. Use \u003ccode\u003e#(content_type|extension)_allowlist\u003c/code\u003e and \u003ccode\u003e#(content_type|extension)_denylist\u003c/code\u003e instead (\u003ca href=\"https://github.com/grantbdev\"\u003e\u003ccode\u003e@​grantbdev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2442\"\u003e#2442\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4c3cac75f3a473e941045c23ebb781f61af67d79\"\u003e4c3cac75\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCalculate Fog expiration taking DST into account (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/f90e14ca91892d677ee6ed42321a21a2fe98f360\"\u003ef90e14ca\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2059\"\u003e#2059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet correct content type on copy of fog files (\u003ca href=\"https://github.com/ZuevEvgenii\"\u003e\u003ccode\u003e@​ZuevEvgenii\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2503\"\u003e#2503\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/6682f7ac5dd480269448a614026a5f4524e61550\"\u003e6682f7ac\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2487\"\u003e#2487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix fog-google support to pass acl_header for public read if fog is public (\u003ca href=\"https://github.com/yosiat\"\u003e\u003ccode\u003e@​yosiat\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2525\"\u003e#2525\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2426\"\u003e#2426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix various URL escape issues by escaping on URI parse error only (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/3faf7491e33bd10ae8b3e0010501fc96a76c21c3\"\u003e3faf7491\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2457\"\u003e#2457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2473\"\u003e#2473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix instance variables \u003ccode\u003e@versions_to_*\u003c/code\u003e not initialized warning (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/c10b82ed2f7b20cb58772281e3510dc70c410732\"\u003ec10b82ed\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSanitizedFile#move_to\u003c/code\u003e wrongly detects content_type based on the path before move (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/a42e1b4c504c6f69c4c4c7802ebd45523134c42e\"\u003ea42e1b4c\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2495\"\u003e#2495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix returning invalid content type on text files (\u003ca href=\"https://github.com/inkstak\"\u003e\u003ccode\u003e@​inkstak\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2474\"\u003e#2474\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2424\"\u003e#2424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip content type and extension filters where possible (\u003ca href=\"https://github.com/alexpooley\"\u003e\u003ccode\u003e@​alexpooley\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2464\"\u003e#2464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix file's \u003ccode\u003e#url\u003c/code\u003e being called twice, which might be costly for non-local files (\u003ca href=\"https://github.com/skyeagle\"\u003e\u003ccode\u003e@​skyeagle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mime type detection failing with types which contain \u003ccode\u003e+\u003c/code\u003e symbol, such as \u003ccode\u003eimage/svg+xml\u003c/code\u003e (\u003ca href=\"https://github.com/sylvainbx\"\u003e\u003ccode\u003e@​sylvainbx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2489\"\u003e#2489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e#cached?\u003c/code\u003e to return boolean instead of \u003ccode\u003e@cache_id\u003c/code\u003e value (\u003ca href=\"https://github.com/kmiyake\"\u003e\u003ccode\u003e@​kmiyake\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2510\"\u003e#2510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mime type detection for MS Office files (\u003ca href=\"https://github.com/anthonypenner\"\u003e\u003ccode\u003e@​anthonypenner\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2447\"\u003e#2447\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/carrierwaveuploader/carrierwave/blob/v2.2.6/CHANGELOG.md\"\u003ecarrierwave's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.6 - 2024-03-23\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Content-Type allowlist bypass vulnerability remained (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/431787193795dda9b01a0ee748bd93e2ec7101c2\"\u003e4317871\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/security/advisories/GHSA-vfmv-jfc5-pjjw\"\u003eGHSA-vfmv-jfc5-pjjw\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.5 - 2023-11-29\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Content-Type allowlist bypass vulnerability, possibly leading to XSS (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/39b282db5c1303899b3d3381ce8a837840f983b5\"\u003e39b282d\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/security/advisories/GHSA-gxhx-g4fq-49hj\"\u003eGHSA-gxhx-g4fq-49hj\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.4 - 2023-06-10\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix Ruby 2.7 keyword argument warning in uploader process (\u003ca href=\"https://github.com/SuperTux88\"\u003e\u003ccode\u003e@​SuperTux88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2665\"\u003e#2665\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2636\"\u003e#2636\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2635\"\u003e#2635\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.3 - 2022-11-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workaround for 'undefined method closed?' error caused by ssrf_filter 1.1 (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/c74579d382ad124193e80cc5af71824a23de57e6\"\u003ec74579d\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2628\"\u003e#2628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd workaround for the API change in ssrf_filter 1.1 (\u003ca href=\"https://github.com/BrianHawley\"\u003e\u003ccode\u003e@​BrianHawley\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2629\"\u003e#2629\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2625\"\u003e#2625\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.2 - 2021-05-28\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno implicit conversion of CSV into String\u003c/code\u003e error when parsing a CSV object (\u003ca href=\"https://github.com/pjmartorell\"\u003e\u003ccode\u003e@​pjmartorell\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2562\"\u003e#2562\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2559\"\u003e#2559\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.1 - 2021-03-30\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace mimemagic with marcel due to licensing concern (\u003ca href=\"https://github.com/pjmartorell\"\u003e\u003ccode\u003e@​pjmartorell\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2551\"\u003e#2551\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2548\"\u003e#2548\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFog storage's #clean_cache! breaks when non-cache objects exist in cache_dir (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/42c620a1a19afa61e15e617faa7ce9cc89ec1863\"\u003e42c620a1\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2532\"\u003e#2532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0 - 2021-02-23\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003elibvips support through \u003ca href=\"https://github.com/janko/image_processing\"\u003eImageProcessing::Vips\u003c/a\u003e and \u003ca href=\"https://github.com/libvips/ruby-vips\"\u003eruby-vips\u003c/a\u003e (\u003ca href=\"https://github.com/rhymes\"\u003e\u003ccode\u003e@​rhymes\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2500\"\u003e#2500\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/e84219787aa1c95a55cbc78ad062b7539d8e5813\"\u003ee8421978\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4ae8dc64ff0dcbcf66c6d79df90268d57438df55\"\u003e4ae8dc64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProvide alternatives to whitelist/blacklist terminology as allowlist/denylist, while old ones are still available but deprecated (\u003ca href=\"https://github.com/grantbdev\"\u003e\u003ccode\u003e@​grantbdev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2442\"\u003e#2442\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4c3cac75f3a473e941045c23ebb781f61af67d79\"\u003e4c3cac75\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for the latest version of RMagick (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/88f24451352bda128825f857cde473107d98fca7\"\u003e88f24451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e#(content_type|extension)_whitelist\u003c/code\u003e, \u003ccode\u003e#(content_type|extension)_blacklist\u003c/code\u003e are deprecated. Use \u003ccode\u003e#(content_type|extension)_allowlist\u003c/code\u003e and \u003ccode\u003e#(content_type|extension)_denylist\u003c/code\u003e instead (\u003ca href=\"https://github.com/grantbdev\"\u003e\u003ccode\u003e@​grantbdev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2442\"\u003e#2442\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/4c3cac75f3a473e941045c23ebb781f61af67d79\"\u003e4c3cac75\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCalculate Fog expiration taking DST into account (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/f90e14ca91892d677ee6ed42321a21a2fe98f360\"\u003ef90e14ca\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2059\"\u003e#2059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet correct content type on copy of fog files (\u003ca href=\"https://github.com/ZuevEvgenii\"\u003e\u003ccode\u003e@​ZuevEvgenii\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2503\"\u003e#2503\u003c/a\u003e, \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/6682f7ac5dd480269448a614026a5f4524e61550\"\u003e6682f7ac\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2487\"\u003e#2487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix fog-google support to pass acl_header for public read if fog is public (\u003ca href=\"https://github.com/yosiat\"\u003e\u003ccode\u003e@​yosiat\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2525\"\u003e#2525\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2426\"\u003e#2426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix various URL escape issues by escaping on URI parse error only (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/3faf7491e33bd10ae8b3e0010501fc96a76c21c3\"\u003e3faf7491\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2457\"\u003e#2457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2473\"\u003e#2473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix instance variables \u003ccode\u003e@versions_to_*\u003c/code\u003e not initialized warning (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/c10b82ed2f7b20cb58772281e3510dc70c410732\"\u003ec10b82ed\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSanitizedFile#move_to\u003c/code\u003e wrongly detects content_type based on the path before move (\u003ca href=\"https://github.com/mshibuya\"\u003e\u003ccode\u003e@​mshibuya\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/a42e1b4c504c6f69c4c4c7802ebd45523134c42e\"\u003ea42e1b4c\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2495\"\u003e#2495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix returning invalid content type on text files (\u003ca href=\"https://github.com/inkstak\"\u003e\u003ccode\u003e@​inkstak\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2474\"\u003e#2474\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2424\"\u003e#2424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip content type and extension filters where possible (\u003ca href=\"https://github.com/alexpooley\"\u003e\u003ccode\u003e@​alexpooley\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2464\"\u003e#2464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix file's \u003ccode\u003e#url\u003c/code\u003e being called twice, which might be costly for non-local files (\u003ca href=\"https://github.com/skyeagle\"\u003e\u003ccode\u003e@​skyeagle\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2519\"\u003e#2519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mime type detection failing with types which contain \u003ccode\u003e+\u003c/code\u003e symbol, such as \u003ccode\u003eimage/svg+xml\u003c/code\u003e (\u003ca href=\"https://github.com/sylvainbx\"\u003e\u003ccode\u003e@​sylvainbx\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2489\"\u003e#2489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e#cached?\u003c/code\u003e to return boolean instead of \u003ccode\u003e@cache_id\u003c/code\u003e value (\u003ca href=\"https://github.com/kmiyake\"\u003e\u003ccode\u003e@​kmiyake\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2510\"\u003e#2510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mime type detection for MS Office files (\u003ca href=\"https://github.com/anthonypenner\"\u003e\u003ccode\u003e@​anthonypenner\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/pull/2447\"\u003e#2447\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/carrierwaveuploader/carrierwave/commit/eb6359e79fee43d1c480b0f50d9a585b3c3b1c1c\"\u003e\u003ccode\u003eeb6359e\u003c/code\u003e\u003c/a\u003e Version 2.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/431787193795dda9b01a0ee748bd93e2ec7101c2\"\u003e\u003ccode\u003e4317871\u003c/code\u003e\u003c/a\u003e Fix Content-Type allowlist bypass vulnerability remained\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/0fcff94cebce07b856531d6502b11466e8331409\"\u003e\u003ccode\u003e0fcff94\u003c/code\u003e\u003c/a\u003e Version 2.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/39b282db5c1303899b3d3381ce8a837840f983b5\"\u003e\u003ccode\u003e39b282d\u003c/code\u003e\u003c/a\u003e Fix Content-Type allowlist bypass vulnerability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/2f91bee6487d8e5d8bd2c1a88dd25269a2c1e4d0\"\u003e\u003ccode\u003e2f91bee\u003c/code\u003e\u003c/a\u003e Version 2.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/2f2d77a42e9f871ae342920581050cc6669e5c7c\"\u003e\u003ccode\u003e2f2d77a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/carrierwaveuploader/carrierwave/issues/2665\"\u003e#2665\u003c/a\u003e from SuperTux88/backport-kwargs-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/52237f4992c1dd39dca3bdbac7aa6b242947915d\"\u003e\u003ccode\u003e52237f4\u003c/code\u003e\u003c/a\u003e fix: ruby 2.7 kwarg warning in uploader process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/bdb0be021107a75faabdce4121e493ad3efdcea4\"\u003e\u003ccode\u003ebdb0be0\u003c/code\u003e\u003c/a\u003e File.exists? had been deprecated since Ruby 2.1 and has been deleted in Ruby 3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/ed8c518c8ac0186cb25623895ca40706a65bb7cd\"\u003e\u003ccode\u003eed8c518\u003c/code\u003e\u003c/a\u003e Forward to 1.x changelog for older changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/commit/baf5df7d9acea95f46eaea456743241ef3d644f5\"\u003e\u003ccode\u003ebaf5df7\u003c/code\u003e\u003c/a\u003e Version 2.2.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carrierwaveuploader/carrierwave/compare/v1.3.4...v2.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-s3` from 1.198.0 to 1.208.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.208.0 (2025-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updates to the S3 Encryption Client. The V3 S3 Encryption Client now requires key committing algorithm suites by default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.207.0 (2025-12-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - This release adds support for the new optional field 'LifecycleExpirationDate' in S3 Inventory configurations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.206.0 (2025-12-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - New S3 Storage Class FSX_ONTAP\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.205.0 (2025-11-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Enable / Disable ABAC on a general purpose bucket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.204.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Adds support for blocking SSE-C writes to general purpose buckets.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.203.1 (2025-11-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Deprecated \u003ccode\u003e:checksum_mode\u003c/code\u003e parameter in \u003ccode\u003eFileDownloader#download\u003c/code\u003e. When set to \u0026quot;DISABLED\u0026quot;, a deprecation warning is issued and the parameter is ignored. Use \u003ccode\u003e:response_checksum_validation\u003c/code\u003e on the S3 client instead to control checksum validation behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.203.0 (2025-11-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Launch IPv6 dual-stack support for S3 Express\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.202.0 (2025-10-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Amazon Simple Storage Service / Features: Add conditional writes in CopyObject on destination key to prevent unintended object modifications.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.201.0 (2025-10-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\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/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix multipart upload to respect \u003ccode\u003erequest_checksum_calculation\u003c/code\u003e \u003ccode\u003ewhen_required\u003c/code\u003e mode.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.200.0 (2025-10-15)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\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 `view_component` from 3.23.2 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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.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\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\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/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/v3.23.2...v4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `actionview` from 8.0.2.1 to 8.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactionview's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.5\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\r\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\u003c/em\u003e\u003c/p\u003e\n\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\u003e\n\u003cp\u003eFix \u003ccode\u003einsert_all\u003c/code\u003e and \u003ccode\u003eupsert_all\u003c/code\u003e log message when called on anonymous classes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGabriel Sobrinho\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003eActiveRecord::SchemaDumper.ignore_tables\u003c/code\u003e when dumping SQLite virtual tables.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Schnedlitz\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestore previous instrumenter after \u003ccode\u003eexecute_or_skip\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/eb126bb140127d3589ad9be093a845e24fc4f475\"\u003e\u003ccode\u003eeb126bb\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f7fe4a5297dac5e1184747ce53e0305c56f487c3\"\u003e\u003ccode\u003ef7fe4a5\u003c/code\u003e\u003c/a\u003e Merge branch '8-0-sec' into 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a79efed95797b196575a98845dc989e3106a9acb\"\u003e\u003ccode\u003ea79efed\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ac7979b1183bd659779245eaf2850f666cb8aafe\"\u003e\u003ccode\u003eac7979b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c79a07df1e88738df8f68cb0ee759ad6128ca924\"\u003e\u003ccode\u003ec79a07d\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/853e56de62dcdec036228e56414b49049da5b83a\"\u003e\u003ccode\u003e853e56d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56906\"\u003e#56906\u003c/a\u003e from kataokatsuki/fix-strict-locals-non-ascii-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f64c3d09ace91c011e0628c9d8cf6ea9874ffe9f\"\u003e\u003ccode\u003ef64c3d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56891\"\u003e#56891\u003c/a\u003e from pietervisser/fix-collection-caching-to-preserv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0a8792a661211963068f76bdc5f158b873979927\"\u003e\u003ccode\u003e0a8792a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56389\"\u003e#56389\u003c/a\u003e from bogdan/semantic-file-input-accept\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ea29cee26f240ad46051be4ddf47d0351fce1a18\"\u003e\u003ccode\u003eea29cee\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56316\"\u003e#56316\u003c/a\u003e from shivabhusal/support-closing_parenthesis-in-nex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/950d80c33c462f16897344f0293039b12fbb54ab\"\u003e\u003ccode\u003e950d80c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56270\"\u003e#56270\u003c/a\u003e from Saidbek/fix-multiline-strict-locals-parsing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activestorage` from 8.0.2.1 to 8.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivestorage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.5\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\r\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\u003c/em\u003e\u003c/p\u003e\n\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\u003e\n\u003cp\u003eFix \u003ccode\u003einsert_all\u003c/code\u003e and \u003ccode\u003eupsert_all\u003c/code\u003e log message when called on anonymous classes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGabriel Sobrinho\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003eActiveRecord::SchemaDumper.ignore_tables\u003c/code\u003e when dumping SQLite virtual tables.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Schnedlitz\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestore previous instrumenter after \u003ccode\u003eexecute_or_skip\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/eb126bb140127d3589ad9be093a845e24fc4f475\"\u003e\u003ccode\u003eeb126bb\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f7fe4a5297dac5e1184747ce53e0305c56f487c3\"\u003e\u003ccode\u003ef7fe4a5\u003c/code\u003e\u003c/a\u003e Merge branch '8-0-sec' into 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a79efed95797b196575a98845dc989e3106a9acb\"\u003e\u003ccode\u003ea79efed\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ac7979b1183bd659779245eaf2850f666cb8aafe\"\u003e\u003ccode\u003eac7979b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/955284d26e469a9c026a4eee5b21f0414ab0bccf\"\u003e\u003ccode\u003e955284d\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a290c8a1ec189d793aa6d7f2570b6a763f675348\"\u003e\u003ccode\u003ea290c8a\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8fcb934caadc79c8cc4ce53287046d0f67005b3e\"\u003e\u003ccode\u003e8fcb934\u003c/code\u003e\u003c/a\u003e Active Storage: Filter user supplied metadata in DirectUploadController\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/d7da4ef03f99035fba5add8828646f1e9173549c\"\u003e\u003ccode\u003ed7da4ef\u003c/code\u003e\u003c/a\u003e ActiveStorage::Streaming limit range requests to a single range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2cd933c366b777f873d4d590127da2f4a25e4ba5\"\u003e\u003ccode\u003e2cd933c\u003c/code\u003e\u003c/a\u003e Configurable maxmimum streaming chunk size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3dc1be9084c93d5b5990476bd153c18ae0ba3f4f\"\u003e\u003ccode\u003e3dc1be9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56783\"\u003e#56783\u003c/a\u003e from kudoas/fix-activestorage-blob-content-type-nil\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `activesupport` from 8.0.2.1 to 8.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003eactivesupport's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.5\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003edelegate\u003c/code\u003e and \u003ccode\u003edelegate_missing_to\u003c/code\u003e work in BasicObject subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eRafael Mendonça França\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Inflector.humanize\u003c/code\u003e with international characters.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.humanize(\u0026quot;áÉÍÓÚ\u0026quot;)  # =\u0026gt; \u0026quot;Áéíóú\u0026quot;\r\nActiveSupport::Inflector.humanize(\u0026quot;аБВГДЕ\u0026quot;) # =\u0026gt; \u0026quot;Абвгде\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eJose Luis Duran\u003c/em\u003e\u003c/p\u003e\n\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\u003e\n\u003cp\u003eFix \u003ccode\u003einsert_all\u003c/code\u003e and \u003ccode\u003eupsert_all\u003c/code\u003e log message when called on anonymous classes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGabriel Sobrinho\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRespect \u003ccode\u003eActiveRecord::SchemaDumper.ignore_tables\u003c/code\u003e when dumping SQLite virtual tables.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHans Schnedlitz\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestore previous instrumenter after \u003ccode\u003eexecute_or_skip\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/eb126bb140127d3589ad9be093a845e24fc4f475\"\u003e\u003ccode\u003eeb126bb\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/f7fe4a5297dac5e1184747ce53e0305c56f487c3\"\u003e\u003ccode\u003ef7fe4a5\u003c/code\u003e\u003c/a\u003e Merge branch '8-0-sec' into 8-0-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/a79efed95797b196575a98845dc989e3106a9acb\"\u003e\u003ccode\u003ea79efed\u003c/code\u003e\u003c/a\u003e Preparing for 8.0.4.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ac7979b1183bd659779245eaf2850f666cb8aafe\"\u003e\u003ccode\u003eac7979b\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/29154f1097da13d48fdb3200760b3e3da66dcb11\"\u003e\u003ccode\u003e29154f1\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6e8a81108001d58043de9e54a06fca58962fc2db\"\u003e\u003ccode\u003e6e8a811\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eSafeBuffer#%\u003c/code\u003e to preserve unsafe status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ee2c59e730e5b8faed502cd2c573109df093f856\"\u003e\u003ccode\u003eee2c59e\u003c/code\u003e\u003c/a\u003e NumberConverter: reject scientific notation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/5b6ad9db89b30b48753cced1fb261781a716fcb4\"\u003e\u003ccode\u003e5b6ad9d\u003c/code\u003e\u003c/a\u003e Lock some dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/0b0daad4cf655374fff8d7d7c959a0230079c335\"\u003e\u003ccode\u003e0b0daad\u003c/code\u003e\u003c/a\u003e [DOC] Update CHANGELOG with key overwrite precedence note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/40acbf77827bd8196b25d8fc31abc9d129088d03\"\u003e\u003ccode\u003e40acbf7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56679\"\u003e#56679\u003c/a\u003e from Saidbek/fix-overlapping-acronyms-order\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.2.1...v8.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `css_parser` from 1.21.1 to 1.22.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/premailer/css_parser/blob/master/CHANGELOG.md\"\u003ecss_parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRuby CSS Parser CHANGELOG\u003c/h2\u003e\n\u003ch3\u003eUnreleased\u003c/h3\u003e\n\u003ch3\u003eVersion 2.2.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAccept CSS \u003ccode\u003e\u0026lt;number\u0026gt;\u003c/code\u003e values with an omitted integer part (e.g. \u003ccode\u003e.1\u003c/code\u003e) inside \u003ccode\u003ergb()\u003c/code\u003e/\u003ccode\u003ergba()\u003c/code\u003e/\u003ccode\u003ehsl()\u003c/code\u003e/\u003ccode\u003ehsla()\u003c/code\u003e. Previously \u003ccode\u003eRE_COLOUR_NUMERIC\u003c/code\u003e and \u003ccode\u003eRE_COLOUR_NUMERIC_ALPHA\u003c/code\u003e required at least one digit before the decimal point, which caused colours such as \u003ccode\u003ergba(0,0,0,.1)\u003c/code\u003e to be silently dropped during shorthand expansion (\u003ccode\u003ebackground-color\u003c/code\u003e from \u003ccode\u003ebackground:\u003c/code\u003e, \u003ccode\u003eborder-*-color\u003c/code\u003e from \u003ccode\u003eborder:\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eVersion 2.1.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate ssl when pulling files via https\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eVersion 2.0.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop ruby \u0026lt;3.2, fix a memory leak\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/premailer/css_parser/commit/040895b7e554f4afbbf1a0dbd239eb2b85de7c32\"\u003e\u003ccode\u003e040895b\u003c/code\u003e\u003c/a\u003e v1.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/premailer/css_parser/commit/5069b71b4258dc9423db0019848654e8a1ea5c9b\"\u003e\u003ccode\u003e5069b71\u003c/code\u003e\u003c/a\u003e bundle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/premailer/css_parser/commit/e0c95d5abe91b237becb90ff316531a6547ada18\"\u003e\u003ccode\u003ee0c95d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/premailer/css_parser/issues/186\"\u003e#186\u003c/a\u003e from premailer/grosser/https\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/premailer/css_parser/compare/v1.21.1...v1.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `erb` from 5.0.2 to 6.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease not...\n\n_Description has been truncated_","html_url":"https://github.com/EthanThePhoenix38/openproject/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanThePhoenix38%2Fopenproject/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"}},{"old_version":"4.8.0","new_version":"4.10.0","update_type":"minor","path":null,"pr_created_at":"2026-05-18T06:22:49.000Z","version_change":"4.8.0 → 4.10.0","issue":{"uuid":"4466752407","node_id":"PR_kwDOA4nnZM7ch5G7","number":112,"state":"closed","title":"Bump the bundler group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T06:11:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-18T06:22:49.000Z","updated_at":"2026-05-25T06:11:21.000Z","time_to_close":604110,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":12,"packages":[{"name":"vite_rails","old_version":"3.10.0","new_version":"3.11.0","repository_url":"https://github.com/ElMassimo/vite_ruby"},{"name":"view_component","old_version":"4.8.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"pagy","old_version":"43.5.3","new_version":"43.5.4","repository_url":"https://github.com/ddnexus/pagy"},{"name":"sidekiq","old_version":"8.1.3","new_version":"8.1.5","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":"aws-sdk-s3","old_version":"1.220.0","new_version":"1.222.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"bootsnap","old_version":"1.24.1","new_version":"1.24.4","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.20","new_version":"0.1.21","repository_url":"https://github.com/basecamp/thruster"},{"name":"graphql","old_version":"2.6.1","new_version":"2.6.2","repository_url":"https://github.com/rmosolgo/graphql-ruby"},{"name":"selenium-webdriver","old_version":"4.43.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rubocop-rails","old_version":"2.34.3","new_version":"2.35.1","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"vernier","old_version":"1.10.0","new_version":"1.10.1","repository_url":"https://github.com/jhawthorn/vernier"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [vite_rails](https://github.com/ElMassimo/vite_ruby) | `3.10.0` | `3.11.0` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.8.0` | `4.10.0` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.5.3` | `43.5.4` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.1.3` | `8.1.5` |\n| [sidekiq-cron](https://github.com/ondrejbartas/sidekiq-cron) | `2.3.1` | `2.4.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.220.0` | `1.222.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.1` | `1.24.4` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.20` | `0.1.21` |\n| [graphql](https://github.com/rmosolgo/graphql-ruby) | `2.6.1` | `2.6.2` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.43.0` | `4.44.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.34.3` | `2.35.1` |\n| [vernier](https://github.com/jhawthorn/vernier) | `1.10.0` | `1.10.1` |\n\n\nUpdates `vite_rails` from 3.10.0 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ElMassimo/vite_ruby/blob/vite_rails@3.11.0/vite_rails/CHANGELOG.md\"\u003evite_rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.10.0...vite_rails@3.11.0\"\u003e3.11.0\u003c/a\u003e (2026-05-05)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edefault to skipProxy in new installations (\u003ca href=\"https://github.com/ElMassimo/vite_ruby/commit/2932c0ed66143d1a1d05d71787c2a5b0a47403f3\"\u003e2932c0e\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/ElMassimo/vite_ruby/commit/c6cf52a17199c50e7a09e3eea40f9a3d42986c0a\"\u003e\u003ccode\u003ec6cf52a\u003c/code\u003e\u003c/a\u003e release: vite_rails@3.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ElMassimo/vite_ruby/commit/2932c0ed66143d1a1d05d71787c2a5b0a47403f3\"\u003e\u003ccode\u003e2932c0e\u003c/code\u003e\u003c/a\u003e feat: default to skipProxy in new installations\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ElMassimo/vite_ruby/compare/vite_rails@3.10.0...vite_rails@3.11.0\"\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.8.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.8.0...v4.10.0\"\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.3 to 43.5.4\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.4\u003c/h2\u003e\n\u003ch3\u003eChanges in 43.5.4\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eFix SERIES_SLOTS loading error (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/902\"\u003e#902\u003c/a\u003e)\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\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.4\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix SERIES_SLOTS loading error (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/902\"\u003e#902\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/ddnexus/pagy/commit/c1a0adb6aa752000d8a43dc63d345b47642329aa\"\u003e\u003ccode\u003ec1a0adb\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/9dc8a75b8a09d0684a3cd3cd652c04514ce40027\"\u003e\u003ccode\u003e9dc8a75\u003c/code\u003e\u003c/a\u003e Version 43.5.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/3c85c53b4dfc5a3f4d2be582bbec62afac9506e0\"\u003e\u003ccode\u003e3c85c53\u003c/code\u003e\u003c/a\u003e Update gems and packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/60429fee6a4fed4b57b3afebb7892558762d1ebe\"\u003e\u003ccode\u003e60429fe\u003c/code\u003e\u003c/a\u003e 💎 Fix SERIES_SLOTS loading error (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/902\"\u003e#902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/e185ab13b01f8e533f519872c9e5155f4ae18b10\"\u003e\u003ccode\u003ee185ab1\u003c/code\u003e\u003c/a\u003e Fix minor typo in keyset docs (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/901\"\u003e#901\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/febc83755c759e0b22f4631a895905dec74efb20\"\u003e\u003ccode\u003efebc837\u003c/code\u003e\u003c/a\u003e Fix broken API Test badge in README.md (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/18132f64d6c8cc1e390b3a3ba9c7bac6d92933d4\"\u003e\u003ccode\u003e18132f6\u003c/code\u003e\u003c/a\u003e Fix retype linked files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/058d878bb9df688867f5b8c6d09c275162dd2176\"\u003e\u003ccode\u003e058d878\u003c/code\u003e\u003c/a\u003e Improve Ferrum test stability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/42b4a846f9095f1e531c8fca87b8416d5e43cd04\"\u003e\u003ccode\u003e42b4a84\u003c/code\u003e\u003c/a\u003e Fix broken link (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/897\"\u003e#897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ddnexus/pagy/compare/43.5.3...43.5.4\"\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.5\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.5\u003c/h2\u003e\n\u003cul\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/5c049c585a2eb4c91b1a163589d72465e99aad7e\"\u003e\u003ccode\u003e5c049c5\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/0bafeb1084b9c7a5edcf0bc507108b4603682597\"\u003e\u003ccode\u003e0bafeb1\u003c/code\u003e\u003c/a\u003e bump, release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/2a4eec2dd323adb32f333b4416ca167bf4b83a92\"\u003e\u003ccode\u003e2a4eec2\u003c/code\u003e\u003c/a\u003e Identify Sidekiq connections via CLIENT SETINFO (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6bdf6903e93eeaf9b96fcbbe66f503fe758ee4b2\"\u003e\u003ccode\u003e6bdf690\u003c/code\u003e\u003c/a\u003e Fix: don't cache \u0026quot;none\u0026quot; type in Paginator::TYPE_CACHE (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/28b37b722c58d89593620c3733d3dcd87f6e6e08\"\u003e\u003ccode\u003e28b37b7\u003c/code\u003e\u003c/a\u003e release [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/4d0adda70769168a675bb260d2790d76f6849188\"\u003e\u003ccode\u003e4d0adda\u003c/code\u003e\u003c/a\u003e fmt, bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/906fb6837a2b42a5330b3748bdb4007ec06666ff\"\u003e\u003ccode\u003e906fb68\u003c/code\u003e\u003c/a\u003e sidekiq changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/92924ab48a80cf31148fd7ab4cd2e561d5bf823a\"\u003e\u003ccode\u003e92924ab\u003c/code\u003e\u003c/a\u003e ent changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/c6bd7b89e9bb825bc9c4969712828ef88b6d84bc\"\u003e\u003ccode\u003ec6bd7b8\u003c/code\u003e\u003c/a\u003e Add new keys to gd translation (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6984\"\u003e#6984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/29542380a69b23453f7e6e429ef96fe5fd62e3c9\"\u003e\u003ccode\u003e2954238\u003c/code\u003e\u003c/a\u003e tui: implement locale-aware number_with_delimiter (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6983\"\u003e#6983\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.5\"\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 `aws-sdk-s3` from 1.220.0 to 1.222.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.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\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.1 to 1.24.4\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.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/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\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6500a43b2ac7fda963f03ed62098fb3b2be2bdeb\"\u003e\u003ccode\u003e6500a43\u003c/code\u003e\u003c/a\u003e Handle Coverage being suspended\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/cf3791edf37b778e14efa1f366c775f8456a3475\"\u003e\u003ccode\u003ecf3791e\u003c/code\u003e\u003c/a\u003e ISeq#input_to_output: just return \u003ccode\u003enil\u003c/code\u003e when using default compiler.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/cabdad95ed5218e6b888121c92702da4338de866\"\u003e\u003ccode\u003ecabdad9\u003c/code\u003e\u003c/a\u003e Only test Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/18250\"\u003e#18250\u003c/a\u003e] if on Ruby 3.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/490960e1dcd8bde4dda53e3ed1f435def73e0b0e\"\u003e\u003ccode\u003e490960e\u003c/code\u003e\u003c/a\u003e Yet another warning emitted from the canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/045beb2ee5a85b1fd5000e6ee566b8b8a4c5df72\"\u003e\u003ccode\u003e045beb2\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d37f282ec8db1c9b31405c5629bcc6bc68d9974c\"\u003e\u003ccode\u003ed37f282\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/546\"\u003e#546\u003c/a\u003e from davidenglishmusic/rubocop-performance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.4\"\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.20 to 0.1.21\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/main/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.21 / 2026-05-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild with Go 1.26.3\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/basecamp/thruster/commit/aaeecd48e15b87869aad175b4c333f5051ffc2fd\"\u003e\u003ccode\u003eaaeecd4\u003c/code\u003e\u003c/a\u003e Update version \u0026amp; changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/4f1a0213ee3f8da4bb7ac004a7ad0fb5023c0113\"\u003e\u003ccode\u003e4f1a021\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/127\"\u003e#127\u003c/a\u003e from rvanlieshout/bump-go-1.26.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/f9161a28b9d87f5d4b378e7ab027d41b2b615fb9\"\u003e\u003ccode\u003ef9161a2\u003c/code\u003e\u003c/a\u003e Build with Go 1.26.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/53da2299d89566fabdfad99bccbff54af6515419\"\u003e\u003ccode\u003e53da229\u003c/code\u003e\u003c/a\u003e Build with Go 1.26.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.20...v0.1.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `graphql` from 2.6.1 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md\"\u003egraphql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.2\u003c/h1\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse a better error message for end-of-file parse errors \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/6513\"\u003e#6513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eExecution::Next\u003c/code\u003e: Lots of compatibility improvements and bug fixes \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5625\"\u003e#5625\u003c/a\u003e \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5618\"\u003e#5618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDirectives: handle errors raised when checking \u003ccode\u003e.include?\u003c/code\u003e \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5612\"\u003e#5612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove error message when a field definition is missing at runtime \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5615\"\u003e#5615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJRuby: fix \u003ccode\u003eDataloader#with\u003c/code\u003e \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5616\"\u003e#5616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetailedTrace: fix introspection with anonymous classes \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5624\"\u003e#5624\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/rmosolgo/graphql-ruby/commit/e6f08682cfdbcd07a8c59b2a8118d86bc90e16cd\"\u003e\u003ccode\u003ee6f0868\u003c/code\u003e\u003c/a\u003e 2.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/4afdf6f41177c7f14c7c29eb54121d0c648cec46\"\u003e\u003ccode\u003e4afdf6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5625\"\u003e#5625\u003c/a\u003e from rmosolgo/exec-next-test-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/06bbc6592fe30150f952102d622d34a84d3b0d58\"\u003e\u003ccode\u003e06bbc65\u003c/code\u003e\u003c/a\u003e Fix lint error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/ecffdc68f662077c83685872b1746b6513159327\"\u003e\u003ccode\u003eecffdc6\u003c/code\u003e\u003c/a\u003e document as_default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/4b383bca99696c51bbf0fe0845ee0612113338eb\"\u003e\u003ccode\u003e4b383bc\u003c/code\u003e\u003c/a\u003e Document helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/f221578d99f62a85c73160d36cc71d13ba38205f\"\u003e\u003ccode\u003ef221578\u003c/code\u003e\u003c/a\u003e use methods for exec_next test behaviors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/c4f62efcd6036b68c1bb2eea4034ddcb8ddb4a90\"\u003e\u003ccode\u003ec4f62ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5624\"\u003e#5624\u003c/a\u003e from rmosolgo/perfetto-fix-anon-classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/bd39b2708895c03ddd9a65a614a76d00c72f8026\"\u003e\u003ccode\u003ebd39b27\u003c/code\u003e\u003c/a\u003e fix detailed trace on anonymous classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/19f5bac73ce70f7a982ef2976640f977cf4a14c1\"\u003e\u003ccode\u003e19f5bac\u003c/code\u003e\u003c/a\u003e Start categorizing exec-next skips\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmosolgo/graphql-ruby/commit/5c43bc784131bdc35669cfb929ef4b905217eb1b\"\u003e\u003ccode\u003e5c43bc7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rmosolgo/graphql-ruby/issues/5619\"\u003e#5619\u003c/a\u003e from rmosolgo/next-as-default-option\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rmosolgo/graphql-ruby/compare/v2.6.1...v2.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium-webdriver` from 4.43.0 to 4.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/selenium/releases\"\u003eselenium-webdriver's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.44.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003efix(documentation): update artifact naming for generated docs by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17332\"\u003eSeleniumHQ/selenium#17332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ruby): retrieve devtools version dynamically for package verification by \u003ca href=\"https://github.com/diemol\"\u003e\u003ccode\u003e@​diemol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17335\"\u003eSeleniumHQ/selenium#17335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Don't truncate internal log messages at error/warn levels by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17333\"\u003eSeleniumHQ/selenium#17333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Safe modifications of internal log handlers by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17334\"\u003eSeleniumHQ/selenium#17334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Remove planned obsoleted members for 4.44 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17328\"\u003eSeleniumHQ/selenium#17328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declare commands by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17330\"\u003eSeleniumHQ/selenium#17330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Statically declared events by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17331\"\u003eSeleniumHQ/selenium#17331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Add C# 14 extension to polyfill \u003ccode\u003eArgumentNullException.ThrowIfNull\u003c/code\u003e by \u003ca href=\"https://github.com/RenderMichael\"\u003e\u003ccode\u003e@​RenderMichael\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16697\"\u003eSeleniumHQ/selenium#16697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetDownloadBehavior command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17336\"\u003eSeleniumHQ/selenium#17336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align ContinueWithAuth command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17337\"\u003eSeleniumHQ/selenium#17337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Align SetGeolocation polymorphic command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17338\"\u003eSeleniumHQ/selenium#17338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] In-process test webserver by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17339\"\u003eSeleniumHQ/selenium#17339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] deprecate the 'native' methods inside the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17340\"\u003eSeleniumHQ/selenium#17340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCDDL 2 Python generator by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/16914\"\u003eSeleniumHQ/selenium#16914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix py:local_dev rake task by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17342\"\u003eSeleniumHQ/selenium#17342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Accept legacy session-closed event payloads by \u003ca href=\"https://github.com/VietND96\"\u003e\u003ccode\u003e@​VietND96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17343\"\u003eSeleniumHQ/selenium#17343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] specify nullability in package \u003ccode\u003eorg.openqa.selenium.remote\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17325\"\u003eSeleniumHQ/selenium#17325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix NPE when response status is null by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17348\"\u003eSeleniumHQ/selenium#17348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix NoSuchElementException for custom By locators by \u003ca href=\"https://github.com/Chandan25sharma\"\u003e\u003ccode\u003e@​Chandan25sharma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17287\"\u003eSeleniumHQ/selenium#17287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Update docs with pytest example and minor formatting fixes by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17351\"\u003eSeleniumHQ/selenium#17351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] Fix stopping of network monitoring via DevTools by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17352\"\u003eSeleniumHQ/selenium#17352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Update tests to target .NET 10 by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17353\"\u003eSeleniumHQ/selenium#17353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Clean extra tools from GHA runner to free disk space by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17360\"\u003eSeleniumHQ/selenium#17360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInitial Creation of the Selenium CLI Tool by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17327\"\u003eSeleniumHQ/selenium#17327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] fix some nullability warnings by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17362\"\u003eSeleniumHQ/selenium#17362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Use generated Bidi files instead of hand curated ones by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17266\"\u003eSeleniumHQ/selenium#17266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Add AI-assisted contribution policy by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17043\"\u003eSeleniumHQ/selenium#17043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Agents] Update agents to make sure do linting. by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17366\"\u003eSeleniumHQ/selenium#17366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Bump dependencies by \u003ca href=\"https://github.com/cgoldberg\"\u003e\u003ccode\u003e@​cgoldberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17368\"\u003eSeleniumHQ/selenium#17368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[git] update gitignore to exclude mempalace by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17369\"\u003eSeleniumHQ/selenium#17369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove field \u003ccode\u003eChromiumDriver.capabilities\u003c/code\u003e by \u003ca href=\"https://github.com/asolntsev\"\u003e\u003ccode\u003e@​asolntsev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17363\"\u003eSeleniumHQ/selenium#17363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[spec] Use http_file for the cddl files by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17372\"\u003eSeleniumHQ/selenium#17372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Obsolete Type(string) method in Input module by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17377\"\u003eSeleniumHQ/selenium#17377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Network failures by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17381\"\u003eSeleniumHQ/selenium#17381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] [test] Unignore bidi network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17385\"\u003eSeleniumHQ/selenium#17385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Unignore network conditions tests for Firefox by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17386\"\u003eSeleniumHQ/selenium#17386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Migrate to MTP by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17384\"\u003eSeleniumHQ/selenium#17384\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/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eselenium-webdriver's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.44.0 (2026-05-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v146, v147, v148\u003c/li\u003e\n\u003cli\u003eModern Firefox does not like both the \u003ccode\u003e-v\u003c/code\u003e and \u003ccode\u003e--log\u003c/code\u003e flags at the same time (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17412\"\u003e#17412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix credential issue with private key (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17188\"\u003e#17188\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/SeleniumHQ/selenium/commit/da2039bd1456a161d0c284de16f9f4f179f1e8ca\"\u003e\u003ccode\u003eda2039b\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.44.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17444\"\u003e#17444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6b85c4a554af11aac20379fcd9281f7c19173e89\"\u003e\u003ccode\u003e6b85c4a\u003c/code\u003e\u003c/a\u003e [rb] Fix credential issue with private key (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17188\"\u003e#17188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/4885286c4b7e8e1fb8613e6557b598894300301f\"\u003e\u003ccode\u003e4885286\u003c/code\u003e\u003c/a\u003e [dotnet][java][js][py][rb] Standardize README files across bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17245\"\u003e#17245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/2042c237094c145f5d356ca9239eef6aafe755be\"\u003e\u003ccode\u003e2042c23\u003c/code\u003e\u003c/a\u003e [rb] Modern Firefox does not like both the \u003ccode\u003e-v\u003c/code\u003e and \u003ccode\u003e--log\u003c/code\u003e flags at the same...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/31ee1221d6cae9f6e5e686ae5a0258d6e4bd6dfc\"\u003e\u003ccode\u003e31ee122\u003c/code\u003e\u003c/a\u003e [Agents] Update agents to make sure do linting. (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17366\"\u003e#17366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/c95fe73785ef05cb25e40089cca34ad1ddd72c61\"\u003e\u003ccode\u003ec95fe73\u003c/code\u003e\u003c/a\u003e Bumping versions to nightly\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.43.0...selenium-4.44.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.34.3 to 2.35.1\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.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-check methods such as \u003ccode\u003ekey?\u003c/code\u003e, \u003ccode\u003ehas_key?\u003c/code\u003e, \u003ccode\u003einclude?\u003c/code\u003e, and \u003ccode\u003emember?\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/1620\"\u003e#1620\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using type-check methods such as \u003ccode\u003eis_a?\u003c/code\u003e, \u003ccode\u003ekind_of?\u003c/code\u003e, and \u003ccode\u003einstance_of?\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\u003c/ul\u003e\n\u003ch2\u003eRuboCop Rails v2.35.0\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. (\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. (\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. (\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. (\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. (\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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.1 (2026-05-17)\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-check methods such as \u003ccode\u003ekey?\u003c/code\u003e, \u003ccode\u003ehas_key?\u003c/code\u003e, \u003ccode\u003einclude?\u003c/code\u003e, and \u003ccode\u003emember?\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/1620\"\u003e#1620\u003c/a\u003e: Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e when using type-check methods such as \u003ccode\u003eis_a?\u003c/code\u003e, \u003ccode\u003ekind_of?\u003c/code\u003e, and \u003ccode\u003einstance_of?\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\u003c/ul\u003e\n\u003ch2\u003e2.35.0 (2026-05-09)\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. ([\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. ([\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. ([\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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/8bfc91ebc5b029862b05b64aaf562e25f1cbf962\"\u003e\u003ccode\u003e8bfc91e\u003c/code\u003e\u003c/a\u003e Cut 2.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/90f8242ba055d5509699d8db207ae12cfad570c7\"\u003e\u003ccode\u003e90f8242\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/13463102d55cd6494aea1f5da0b42b6025bbce1d\"\u003e\u003ccode\u003e1346310\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1624\"\u003e#1624\u003c/a\u003e from koic/fix_false_positives_for_rails_strong_param...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/64422a90b5e8a0d2f92fddf53118f8eb3fe6abce\"\u003e\u003ccode\u003e64422a9\u003c/code\u003e\u003c/a\u003e [Fix \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\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/9524ba17033f3850c01e5fa96913121526480c83\"\u003e\u003ccode\u003e9524ba1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1623\"\u003e#1623\u003c/a\u003e from koic/fix_false_positives_for_rails_strong_param...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/4832b2d8529aa13c6272a6172076ef2a5bc687ed\"\u003e\u003ccode\u003e4832b2d\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1620\"\u003e#1620\u003c/a\u003e] Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/e18a76bdaec289edb5f87e5c9922bd8e8f0c074a\"\u003e\u003ccode\u003ee18a76b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1616\"\u003e#1616\u003c/a\u003e from koic/fix_false_positives_in_rails_strong_parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/cf52bef4e4fbd97cab1eabdee42d13805071df5b\"\u003e\u003ccode\u003ecf52bef\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1618\"\u003e#1618\u003c/a\u003e] Update the doc of \u003ccode\u003eRails/RedundantActiveRecordAllMethod\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/3f317b7b19f49b41a6f5f95e268d470a2c673dfd\"\u003e\u003ccode\u003e3f317b7\u003c/code\u003e\u003c/a\u003e Fix false positives in \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/6e2e110b0bbdbb4be61c717bf5744b92f4cb48d6\"\u003e\u003ccode\u003e6e2e110\u003c/code\u003e\u003c/a\u003e Reset the docs version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.34.3...v2.35.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vernier` from 1.10.0 to 1.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhawthorn/vernier/releases\"\u003evernier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild HeapTracker's lists/map at drain time by \u003ca href=\"https://github.com/luke-gruber\"\u003e\u003ccode\u003e@​luke-gruber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/pull/170\"\u003ejhawthorn/vernier#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix idle/stalled stack nodes using wrong frame category for Firefox profiler by \u003ca href=\"https://github.com/joshuay03\"\u003e\u003ccode\u003e@​joshuay03\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/pull/144\"\u003ejhawthorn/vernier#144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jhawthorn/vernier/compare/v1.10.0...v1.10.1\"\u003ehttps://github.com/jhawthorn/vernier/compare/v1.10.0...v1.10.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/jhawthorn/vernier/commit/9e67a0e0a239d0ab6f581c21248e52603b6f2146\"\u003e\u003ccode\u003e9e67a0e\u003c/code\u003e\u003c/a\u003e v1.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/db81eb29b41401118f3fe88292bc3aea523773e0\"\u003e\u003ccode\u003edb81eb2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/144\"\u003e#144\u003c/a\u003e from jhawthorn/fix-133\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/3697c68a02d8eba4366b91c0b512e7c0eeaf6f3f\"\u003e\u003ccode\u003e3697c68\u003c/code\u003e\u003c/a\u003e Fix idle/stalled stack nodes using wrong frame category for Firefox profiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/328d1db129ea607b3cd5398fb87c2b9306b84c4d\"\u003e\u003ccode\u003e328d1db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jhawthorn/vernier/issues/170\"\u003e#170\u003c/a\u003e from luke-gruber/heap_tracker_rebuild_at_drain_time\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/70b87720b7edd7a48373a4b639bb4430a7a3d77b\"\u003e\u003ccode\u003e70b8772\u003c/code\u003e\u003c/a\u003e Update .ruby-version to 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhawthorn/vernier/commit/7f998efb8a7f71d6fd0f223be6b1e84f0637c37a\"\u003e\u003ccode\u003e7f998ef\u003c/code\u003e\u003c/a\u003e Rebuild HeapTracker's lists/map at drain time\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jhawthorn/vernier/compare/v1.10.0...v1.10.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/alexeyramazanov/base_app/pull/112","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexeyramazanov%2Fbase_app/issues/112","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/112/packages"}},{"old_version":"3.24.0","new_version":"4.10.0","update_type":"major","path":null,"pr_created_at":"2026-05-14T22:31:13.000Z","version_change":"3.24.0 → 4.10.0","issue":{"uuid":"4449787873","node_id":"PR_kwDOAEwg7M7btUKS","number":5127,"state":"closed","title":"Bump view_component and blacklight","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-14T23:01:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-14T22:31:13.000Z","updated_at":"2026-05-14T23:01:58.000Z","time_to_close":1836,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","repository_url":"https://github.com/viewcomponent/view_component","old_version":"3.24.0","new_version":"4.10.0"},{"name":"blacklight","repository_url":"https://github.com/projectblacklight/blacklight","old_version":"7.41.0","new_version":"8.12.3"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) and [blacklight](https://github.com/projectblacklight/blacklight). These dependencies needed to be updated together.\nUpdates `view_component` from 3.24.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\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\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v3.24.0...v4.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blacklight` from 7.41.0 to 8.12.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectblacklight/blacklight/releases\"\u003eblacklight's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.12.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v8.12.2...v8.12.3\"\u003eCommit History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3756\"\u003e#3756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3745\"\u003e#3745\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cbeer\"\u003e\u003ccode\u003e@​cbeer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mamrey\"\u003e\u003ccode\u003e@​mamrey\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e for contributing to this release.\u003c/p\u003e\n\u003ch2\u003ev8.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBackport: fixes for solr_wrapper starting Solr 9.7+  \u003ca href=\"https://github.com/cjcolvar\"\u003e\u003ccode\u003e@​cjcolvar\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3696\"\u003e#3696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport modal \u003ccode\u003eesc\u003c/code\u003e key to close fix, \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cjcolvar\"\u003e\u003ccode\u003e@​cjcolvar\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3698\"\u003e#3698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport ViewComponent 4.0 support, \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3718\"\u003e#3718\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull changelog: \u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v8.11.0...v8.12.0\"\u003ehttps://github.com/projectblacklight/blacklight/compare/v8.11.0...v8.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBackport: Extract a SkipLinkItemComponent (\u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3478\"\u003e#3478\u003c/a\u003e) by \u003ca href=\"https://github.com/dnoneill\"\u003e\u003ccode\u003e@​dnoneill\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3600\"\u003eprojectblacklight/blacklight#3600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[backport 8.x] Remove unused attribute by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3619\"\u003eprojectblacklight/blacklight#3619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Backport 8.x] Set constraints_component in the config by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3618\"\u003eprojectblacklight/blacklight#3618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump release to 8.11.0 by \u003ca href=\"https://github.com/dnoneill\"\u003e\u003ccode\u003e@​dnoneill\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3625\"\u003eprojectblacklight/blacklight#3625\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v8.10.1...v8.11.0\"\u003ehttps://github.com/projectblacklight/blacklight/compare/v8.10.1...v8.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGet linting green on release-8.x branch by \u003ca href=\"https://github.com/maxkadel\"\u003e\u003ccode\u003e@​maxkadel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3574\"\u003eprojectblacklight/blacklight#3574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit ci workflows by \u003ca href=\"https://github.com/maxkadel\"\u003e\u003ccode\u003e@​maxkadel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3578\"\u003eprojectblacklight/blacklight#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[8.x] Backport \u0026quot;Use the released version of i18n-rails\u0026quot; by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3575\"\u003eprojectblacklight/blacklight#3575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Backport 8.x] Permit markup on prev/next session context buttons by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3584\"\u003eprojectblacklight/blacklight#3584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v8.9.0...v8.10.0\"\u003ehttps://github.com/projectblacklight/blacklight/compare/v8.9.0...v8.10.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.9.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release backports to 8.x several recent bugfixes related to navigating facet modals, i.e., the UI when a user clicks \u003ccode\u003emore\u003c/code\u003e in a facet that has more values for the current search context than are configured to display. Most of these bugfixes also apply to facet \u003cem\u003epages\u003c/em\u003e, e.g., \u003ccode\u003e/catalog/facet/subject_ssim\u003c/code\u003e -- the facet UI displayed outside of a modal.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix scrolling of longer-than-viewport bootstrap modal in a \u003c!-- raw HTML omitted --\u003e by \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3447\"\u003eprojectblacklight/blacklight#3447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen modal is open, turn off body scrolling by \u003ca href=\"https://github.com/jrochkind\"\u003e\u003ccode\u003e@​jrochkind\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3453\"\u003eprojectblacklight/blacklight#3453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unnecessary css that pushes pagination out of alignment by \u003ca href=\"https://github.com/jcoyne\"\u003e\u003ccode\u003e@​jcoyne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3439\"\u003eprojectblacklight/blacklight#3439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd some bottom margin to the facet-suggest filter in the modal. by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3525\"\u003eprojectblacklight/blacklight#3525\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix facet prev/next nav link appearance when the link is disabled by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3533\"\u003eprojectblacklight/blacklight#3533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: allow facet filter/suggest input to work with the sort toggle and starting letter nav. by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3538\"\u003eprojectblacklight/blacklight#3538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix wrapping for A-Z facet nav. by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3539\"\u003eprojectblacklight/blacklight#3539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix facet prev/next pagination nav display within and outside of modals. by \u003ca href=\"https://github.com/seanaery\"\u003e\u003ccode\u003e@​seanaery\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/pull/3548\"\u003eprojectblacklight/blacklight#3548\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/projectblacklight/blacklight/commit/c3f89566eb5bc5ffa1b0c7a1e06ce67e9c29a26f\"\u003e\u003ccode\u003ec3f8956\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3773\"\u003e#3773\u003c/a\u003e from projectblacklight/prepare_8.12.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/b657446e3213a25706d859a9f962f105246ea7b1\"\u003e\u003ccode\u003eb657446\u003c/code\u003e\u003c/a\u003e Bump version for 8.12.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/70cd021fc56a95467dac82ef0a7af5dc04c3e763\"\u003e\u003ccode\u003e70cd021\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3756\"\u003e#3756\u003c/a\u003e from projectblacklight/backport-c412184-to-8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/316ef7098f592da614b97b222bf5cc6b085ff923\"\u003e\u003ccode\u003e316ef70\u003c/code\u003e\u003c/a\u003e Explicitly require \u003ccode\u003eview_component/version\u003c/code\u003e before trying to use it.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/5292e6f30aae47990d038e9c24fc7decd03edd0b\"\u003e\u003ccode\u003e5292e6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3745\"\u003e#3745\u003c/a\u003e from projectblacklight/8.x-rubocop-redundant-parenth...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/c53a5dddfe96697263b3cff3faca7e0de7e33f10\"\u003e\u003ccode\u003ec53a5dd\u003c/code\u003e\u003c/a\u003e Fix rubocop Style/RedundantParentheses offense.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/5d0fec84d182757c9894ffe72d81b6901126f9e2\"\u003e\u003ccode\u003e5d0fec8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3731\"\u003e#3731\u003c/a\u003e from projectblacklight/prepare_8.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/15f6f31b9d0551fb3c993743b1a76d2244612b3e\"\u003e\u003ccode\u003e15f6f31\u003c/code\u003e\u003c/a\u003e bump versions for 8.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/dc5688a5a98104128dbbb7d558cdbfda253fe071\"\u003e\u003ccode\u003edc5688a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/projectblacklight/blacklight/issues/3730\"\u003e#3730\u003c/a\u003e from projectblacklight/restore_document_component_co...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectblacklight/blacklight/commit/c7cca2c7eb7a18b4ee1d073f7c6448fdf922c7cc\"\u003e\u003ccode\u003ec7cca2c\u003c/code\u003e\u003c/a\u003e Restore DocumentComponent initializer compatibilty for BL8\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectblacklight/blacklight/compare/v7.41.0...v8.12.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/sul-dlss/argo/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/sul-dlss/argo/pull/5127","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Fargo/issues/5127","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5127/packages"}},{"old_version":"4.6.0","new_version":"4.10.0","update_type":"minor","path":null,"pr_created_at":"2026-05-13T05:29:20.000Z","version_change":"4.6.0 → 4.10.0","issue":{"uuid":"4435136402","node_id":"PR_kwDORTFFOM7a-SXE","number":18,"state":"closed","title":"Bump view_component from 4.6.0 to 4.10.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-20T10:17:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-13T05:29:20.000Z","updated_at":"2026-05-20T10:17:25.000Z","time_to_close":622083,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.10.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.10.0)](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/kpost/heroicons-view-components/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpost%2Fheroicons-view-components/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"4.9.0","new_version":"4.10.0","update_type":"minor","path":null,"pr_created_at":"2026-05-12T16:34:44.000Z","version_change":"4.9.0 → 4.10.0","issue":{"uuid":"4430903151","node_id":"PR_kwDOCicVQs7aw0X7","number":1119,"state":"closed","title":"chore(deps): bump the all-gems group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-18T05:46:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T16:34:44.000Z","updated_at":"2026-05-18T05:46:48.000Z","time_to_close":479522,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-gems","update_count":3,"packages":[{"name":"bootsnap","old_version":"1.24.1","new_version":"1.24.3","repository_url":"https://github.com/rails/bootsnap"},{"name":"view_component","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"rubocop-rails","old_version":"2.34.3","new_version":"2.35.0","repository_url":"https://github.com/rubocop/rubocop-rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-gems group with 3 updates in the / directory: [bootsnap](https://github.com/rails/bootsnap), [view_component](https://github.com/viewcomponent/view_component) and [rubocop-rails](https://github.com/rubocop/rubocop-rails).\n\nUpdates `bootsnap` from 1.24.1 to 1.24.3\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.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.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/4e14f7eb1bdaeadd1fe2cd658c9224b231424b87\"\u003e\u003ccode\u003e4e14f7e\u003c/code\u003e\u003c/a\u003e Release 1.24.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c36e0110cecc182f39e0afa10b48f7ebd4d0f52\"\u003e\u003ccode\u003e7c36e01\u003c/code\u003e\u003c/a\u003e Fix encoding in Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e] workaround\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/21b7ad836f04cd8254eff344905cf6a942c3cbea\"\u003e\u003ccode\u003e21b7ad8\u003c/code\u003e\u003c/a\u003e Release 1.24.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/fbcb561385763d2a9ed71afef3163b6168e61c59\"\u003e\u003ccode\u003efbcb561\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/540\"\u003e#540\u003c/a\u003e from byroot/use-proper-parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/58d913432c80116d746668141a67c8492f2a0ec2\"\u003e\u003ccode\u003e58d9134\u003c/code\u003e\u003c/a\u003e Workaround Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.3\"\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.9.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.9.0...v4.10.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.34.3 to 2.35.0\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.0\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. (\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. (\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. (\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. (\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. (\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. (\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. (\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. (\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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.0 (2026-05-09)\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/1595\"\u003e#1595\u003c/a\u003e: Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using \u003ccode\u003eredirect_back_or_to\u003c/code\u003e with a flash message. ([\u003ca href=\"https://github.com/55728\"\u003e\u003ccode\u003e@​55728\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1587\"\u003e#1587\u003c/a\u003e: Fix false positives for \u003ccode\u003eRails/Presence\u003c/code\u003e with operator methods like \u003ccode\u003e\u0026lt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e=~\u003c/code\u003e, and others. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1586\"\u003e#1586\u003c/a\u003e: Don't add unnecessary parentheses in \u003ccode\u003eRails/Presence\u003c/code\u003e. ([\u003ca href=\"https://github.com/eugeneius\"\u003e\u003ccode\u003e@​eugeneius\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e: Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e when \u003ccode\u003e.select\u003c/code\u003e appears inside a subquery in an argument. ([\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/1604\"\u003e#1604\u003c/a\u003e: Allow \u003ccode\u003eDatabaseTypeResolvable\u003c/code\u003e to fall back to an \u003ccode\u003eadapter\u003c/code\u003e configuration specified in a \u003ccode\u003eshared\u003c/code\u003e key. ([\u003ca href=\"https://github.com/codergeek121\"\u003e\u003ccode\u003e@​codergeek121\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1582\"\u003e#1582\u003c/a\u003e: Fix a false negative where \u003ccode\u003elocal\u003c/code\u003e was incorrectly treated as a known environment name when using \u003ccode\u003e==\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\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-rails/pull/1571\"\u003e#1571\u003c/a\u003e: Add more detection patterns on \u003ccode\u003eRails/ResponseParsedBody\u003c/code\u003e. ([\u003ca href=\"https://github.com/r7kamura\"\u003e\u003ccode\u003e@​r7kamura\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1583\"\u003e#1583\u003c/a\u003e: Extend \u003ccode\u003eRails/StrongParametersExpect\u003c/code\u003e to detect \u003ccode\u003eparams[:key]\u003c/code\u003e in method calls and raising finder methods. ([\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/1584\"\u003e#1584\u003c/a\u003e: Add support for \u003ccode\u003ecase\u003c/code\u003e statements to \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1592\"\u003e#1592\u003c/a\u003e: Fix false negative for \u003ccode\u003e!=\u003c/code\u003e comparison in \u003ccode\u003eRails/UnknownEnv\u003c/code\u003e. ([\u003ca href=\"https://github.com/lovro-bikic\"\u003e\u003ccode\u003e@​lovro-bikic\u003c/code\u003e\u003c/a\u003e][])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/pull/1598\"\u003e#1598\u003c/a\u003e: Use glob patterns compatible with Engine or Packwerk for cops targeting \u003ccode\u003espec/\u003c/code\u003e and \u003ccode\u003etest/\u003c/code\u003e directories. ([\u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\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/aa320da089131dd1148148a9be5ff2863d282473\"\u003e\u003ccode\u003eaa320da\u003c/code\u003e\u003c/a\u003e Cut 2.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/9b730e1266ef34a49567d55d1e21f68f9aef03dc\"\u003e\u003ccode\u003e9b730e1\u003c/code\u003e\u003c/a\u003e Update Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/6fa91dda739038f4f0f7fa415d54cf0e741ee7ab\"\u003e\u003ccode\u003e6fa91dd\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eKeyError\u003c/code\u003e when \u003ccode\u003eshared\u003c/code\u003e key has no \u003ccode\u003eadapter\u003c/code\u003e in \u003ccode\u003edatabase.yml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/7fc1595bc53caa814893fe6709665120ff3e4d5d\"\u003e\u003ccode\u003e7fc1595\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1605\"\u003e#1605\u003c/a\u003e from codergeek121/support-shared-key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/2201f5ddef11378bb9c2a4ff2580b8da7ca78f0c\"\u003e\u003ccode\u003e2201f5d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1603\"\u003e#1603\u003c/a\u003e from koic/fix_an_error_in_rails_select_map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/82b8037ff6b585a3b9c2b4a4eb29f404037215e0\"\u003e\u003ccode\u003e82b8037\u003c/code\u003e\u003c/a\u003e Fix support for shared key in database.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/072a55539485f48b2e37d86d8a3f74cdc9c64c10\"\u003e\u003ccode\u003e072a555\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1602\"\u003e#1602\u003c/a\u003e] Fix an error in \u003ccode\u003eRails/SelectMap\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/bf79547499d0d2fd54b17ff13fb2c654fe320e1c\"\u003e\u003ccode\u003ebf79547\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1597\"\u003e#1597\u003c/a\u003e from 55728/fix-i18n-locale-texts-redirect-back-or-to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/89a21e86e658c85c4bd4e359403b1bd0425b427c\"\u003e\u003ccode\u003e89a21e8\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1595\"\u003e#1595\u003c/a\u003e] Fix a false negative for \u003ccode\u003eRails/I18nLocaleTexts\u003c/code\u003e when using `redi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubocop/rubocop-rails/commit/2a59f84974354df4477ffb08b6b8be2939e45c5f\"\u003e\u003ccode\u003e2a59f84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rubocop/rubocop-rails/issues/1598\"\u003e#1598\u003c/a\u003e from y-yagi/globs_cops_for_test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubocop/rubocop-rails/compare/v2.34.3...v2.35.0\"\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/cedarcode/mi_carrera/pull/1119","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedarcode%2Fmi_carrera/issues/1119","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1119/packages"}},{"old_version":"4.9.0","new_version":"4.10.0","update_type":"minor","path":null,"pr_created_at":"2026-05-11T22:37:01.000Z","version_change":"4.9.0 → 4.10.0","issue":{"uuid":"4424782076","node_id":"PR_kwDOOavTrc7aczNh","number":143,"state":"closed","title":"chore(deps): bump view_component from 4.9.0 to 4.10.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-19T00:27:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-11T22:37:01.000Z","updated_at":"2026-05-19T00:28:00.000Z","time_to_close":611458,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"view_component","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.9.0 to 4.10.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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNameError: uninitialized constant ViewComponent::SystemTestControllerNefariousPathError\u003c/code\u003e when booting in the test environment with \u003ccode\u003eeager_load = true\u003c/code\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 yielded content rendered at wrong location when using form helpers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eMarkus\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/e799229c3a227222003b0e2f70edc23cf8e32245\"\u003e\u003ccode\u003ee799229\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2631\"\u003e#2631\u003c/a\u003e from ViewComponent/release-4-10-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9c30e56358d49f90261b2df6b2393600bae300da\"\u003e\u003ccode\u003e9c30e56\u003c/code\u003e\u003c/a\u003e fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c03ee1fdd40efc7f9f3415e03d5de653ec7c833d\"\u003e\u003ccode\u003ec03ee1f\u003c/code\u003e\u003c/a\u003e release 4.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/273e11ee1b81ad70ba72239808eb764230d8ee21\"\u003e\u003ccode\u003e273e11e\u003c/code\u003e\u003c/a\u003e attempt to fix release script toil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5e660eb42db348f7e48fcd996f91e7c1c6046c4d\"\u003e\u003ccode\u003e5e660eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2630\"\u003e#2630\u003c/a\u003e from ViewComponent/2629\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8262e77b020d9f10caa4e8eadf287c9ce9578bee\"\u003e\u003ccode\u003e8262e77\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/e1662327d4c443aab76e689de61435b05c45624b\"\u003e\u003ccode\u003ee166232\u003c/code\u003e\u003c/a\u003e Fix NameError on boot with eager_load=true\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5888ac95dbf46bc5c4371fcc0f11f0bf37390cc2\"\u003e\u003ccode\u003e5888ac9\u003c/code\u003e\u003c/a\u003e Add eager_load_check rake task to catch missing requires\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/6873b25562504655009453d3a7f6adde8a65b9b3\"\u003e\u003ccode\u003e6873b25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2627\"\u003e#2627\u003c/a\u003e from ViewComponent/more-yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/63fdc5ae5cec107f674805d6056fe4b8f7e50d70\"\u003e\u003ccode\u003e63fdc5a\u003c/code\u003e\u003c/a\u003e spacing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.9.0...v4.10.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.9.0\u0026new-version=4.10.0)](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/bdavidxyz/koal/pull/143","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bdavidxyz%2Fkoal/issues/143","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/143/packages"}},{"old_version":"4.6.0","new_version":"4.9.0","update_type":"minor","path":null,"pr_created_at":"2026-05-09T01:26:36.000Z","version_change":"4.6.0 → 4.9.0","issue":{"uuid":"4410493213","node_id":"PR_kwDOBFfwc87ZvpmG","number":201,"state":"closed","title":"Bump view_component from 4.6.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-16T22:11:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-09T01:26:36.000Z","updated_at":"2026-05-16T22:11:40.000Z","time_to_close":679502,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.9.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/etewiah/property_web_builder/pull/201","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/etewiah%2Fproperty_web_builder/issues/201","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/201/packages"}},{"old_version":"4.8.0","new_version":"4.9.0","update_type":"minor","path":null,"pr_created_at":"2026-05-09T00:43:18.000Z","version_change":"4.8.0 → 4.9.0","issue":{"uuid":"4410332686","node_id":"PR_kwDOQ3dxxs7ZvG2L","number":99,"state":"closed","title":"chore(deps): bump view_component from 4.8.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-16T00:42:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-09T00:43:18.000Z","updated_at":"2026-05-16T00:42:39.000Z","time_to_close":604759,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"view_component","old_version":"4.8.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.8.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\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/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.8.0...v4.9.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.8.0\u0026new-version=4.9.0)](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/Financial-Planner/pull/99","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunTea43%2FFinancial-Planner/issues/99","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/99/packages"}},{"old_version":"4.6.0","new_version":"4.9.0","update_type":"minor","path":null,"pr_created_at":"2026-05-07T00:36:51.000Z","version_change":"4.6.0 → 4.9.0","issue":{"uuid":"4395329699","node_id":"PR_kwDOSEovB87Y9_IH","number":9,"state":"closed","title":"Bump view_component from 4.6.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-14T00:36:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-07T00:36:51.000Z","updated_at":"2026-05-14T00:36:56.000Z","time_to_close":604803,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.9.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.9.0)](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/mattpolito/meetup-view-components/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattpolito%2Fmeetup-view-components/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"4.6.0","new_version":"4.9.0","update_type":"minor","path":null,"pr_created_at":"2026-05-06T15:21:39.000Z","version_change":"4.6.0 → 4.9.0","issue":{"uuid":"4392529510","node_id":"PR_kwDOR7xD0c7Y03CO","number":14,"state":"closed","title":"Bump view_component from 4.6.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-11T02:16:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-06T15:21:39.000Z","updated_at":"2026-05-11T02:16:32.000Z","time_to_close":384892,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.9.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.9.0)](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/ir3/k5/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ir3%2Fk5/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"4.1.0","new_version":"4.9.0","update_type":"minor","path":null,"pr_created_at":"2026-05-05T22:45:09.000Z","version_change":"4.1.0 → 4.9.0","issue":{"uuid":"4387544023","node_id":"PR_kwDOQJIf1c7Ykf0r","number":29,"state":"closed","title":"Bump view_component from 4.1.0 to 4.9.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-12T04:47:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-05T22:45:09.000Z","updated_at":"2026-05-12T04:47:57.000Z","time_to_close":540167,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.1.0","new_version":"4.9.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.1.0 to 4.9.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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix initialization ordering issue causing missing asset errors in Sprockets.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.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\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.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix path traversal vulnerability in \u003ccode\u003eViewComponentsSystemTestController\u003c/code\u003e where sibling directories sharing a string prefix with the allowed temp directory could bypass the path containment check. The \u003ccode\u003estart_with?\u003c/code\u003e check has been replaced with a separator-aware prefix check, and nefarious path errors now return a 404 instead of an unhandled exception.\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 preview route vulnerability where inherited methods on \u003ccode\u003eViewComponent::Preview\u003c/code\u003e (such as \u003ccode\u003erender_with_template\u003c/code\u003e) could be invoked via the preview URL, allowing arbitrary internal Rails templates to be rendered with attacker-controlled locals and request parameters. \u003ccode\u003erender_args\u003c/code\u003e now raises \u003ccode\u003eAbstractController::ActionNotFound\u003c/code\u003e for any example not explicitly declared on the preview subclass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eyard-lint\u003c/code\u003e to CI.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.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/ViewComponent/view_component/commit/458281bc49851e3090638cf6d011e84fcd49f2da\"\u003e\u003ccode\u003e458281b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2626\"\u003e#2626\u003c/a\u003e from ViewComponent/release-4-9-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5eea77901d6427499c117ebada21ee47632e2203\"\u003e\u003ccode\u003e5eea779\u003c/code\u003e\u003c/a\u003e release 4.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9a4bac95895888d58302714da48a4fd4b6bae93a\"\u003e\u003ccode\u003e9a4bac9\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b70deae574b510b7683b45e38083e66b64c7d5d0\"\u003e\u003ccode\u003eb70deae\u003c/code\u003e\u003c/a\u003e add changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/da9931458a66ee151a2e27b295619be6b6919c90\"\u003e\u003ccode\u003eda99314\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a243dd2f72628ed391c0b761c722c3939e9be824\"\u003e\u003ccode\u003ea243dd2\u003c/code\u003e\u003c/a\u003e reproduce advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/765d7bc1e2e46bad59184785e2aa4895b658867b\"\u003e\u003ccode\u003e765d7bc\u003c/code\u003e\u003c/a\u003e fix advisory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/cca62ec5107c80651c6add4373a94daa5445836f\"\u003e\u003ccode\u003ecca62ec\u003c/code\u003e\u003c/a\u003e reproduce report\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8c76bd314304e3373f9d3f96e7fce85efb1a8628\"\u003e\u003ccode\u003e8c76bd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2625\"\u003e#2625\u003c/a\u003e from ViewComponent/2567-yardlint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a59a5ae4e2f0b08440019aa692ebcf137e39b26e\"\u003e\u003ccode\u003ea59a5ae\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.1.0...v4.9.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.1.0\u0026new-version=4.9.0)](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/cheleo-software/rails_view_components/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheleo-software%2Frails_view_components/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"}},{"old_version":"4.6.0","new_version":"4.8.0","update_type":"minor","path":null,"pr_created_at":"2026-05-04T12:27:24.000Z","version_change":"4.6.0 → 4.8.0","issue":{"uuid":"4376554066","node_id":"PR_kwDOST5u7M7YAcdc","number":6,"state":"closed","title":"Bump view_component from 4.6.0 to 4.8.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-11T01:59:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T12:27:24.000Z","updated_at":"2026-05-11T01:59:58.000Z","time_to_close":567152,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.8.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.8.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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/d7e8cb494448584d84f86dcf8ffee4adbc6a4769\"\u003e\u003ccode\u003ed7e8cb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2615\"\u003e#2615\u003c/a\u003e from ViewComponent/release-4-8-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/091e30a7fbda68661b7448379a535a3ff46062b5\"\u003e\u003ccode\u003e091e30a\u003c/code\u003e\u003c/a\u003e fix flaky tesT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9e0dae45b434b4493c3b7b79160be915a643b13c\"\u003e\u003ccode\u003e9e0dae4\u003c/code\u003e\u003c/a\u003e release 4.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/ef90407c853cd8553f5c821de58ad9308898a8c9\"\u003e\u003ccode\u003eef90407\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2613\"\u003e#2613\u003c/a\u003e from ViewComponent/instrument-compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d9209180e40c0ffbe08681fd716f012651d032e0\"\u003e\u003ccode\u003ed920918\u003c/code\u003e\u003c/a\u003e clean up test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/3cc6d61b83b34f41aaf49dad5e2fbb1c219756ad\"\u003e\u003ccode\u003e3cc6d61\u003c/code\u003e\u003c/a\u003e simplify test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d7947fc975fdde9c6a1cc286494802afb5fd3302\"\u003e\u003ccode\u003ed7947fc\u003c/code\u003e\u003c/a\u003e Add compile.view_component ActiveSupport::Notifications event for eager compi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5d84af8afeeed2c2b43aeb3626728c28f8a42711\"\u003e\u003ccode\u003e5d84af8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2612\"\u003e#2612\u003c/a\u003e from ViewComponent/dependabot/bundler/propshaft-1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8f4ef89b50753aa8f3e83dcf07ecc1f43541df94\"\u003e\u003ccode\u003e8f4ef89\u003c/code\u003e\u003c/a\u003e Bump propshaft from 1.3.1 to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9ae4d79a4222b8bc779904e31307e55390d0a1dd\"\u003e\u003ccode\u003e9ae4d79\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2611\"\u003e#2611\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.43\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.8.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.8.0)](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/khildamaililhaq/skuids_wms/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/khildamaililhaq%2Fskuids_wms/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"4.6.0","new_version":"4.8.0","update_type":"minor","path":null,"pr_created_at":"2026-04-29T05:27:36.000Z","version_change":"4.6.0 → 4.8.0","issue":{"uuid":"4348138030","node_id":"PR_kwDORTFFOM7WlnJf","number":15,"state":"closed","title":"Bump view_component from 4.6.0 to 4.8.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-06T05:26:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-29T05:27:36.000Z","updated_at":"2026-05-06T05:26:43.000Z","time_to_close":604745,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"view_component","old_version":"4.6.0","new_version":"4.8.0","repository_url":"https://github.com/viewcomponent/view_component"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [view_component](https://github.com/viewcomponent/view_component) from 4.6.0 to 4.8.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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\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/d7e8cb494448584d84f86dcf8ffee4adbc6a4769\"\u003e\u003ccode\u003ed7e8cb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2615\"\u003e#2615\u003c/a\u003e from ViewComponent/release-4-8-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/091e30a7fbda68661b7448379a535a3ff46062b5\"\u003e\u003ccode\u003e091e30a\u003c/code\u003e\u003c/a\u003e fix flaky tesT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9e0dae45b434b4493c3b7b79160be915a643b13c\"\u003e\u003ccode\u003e9e0dae4\u003c/code\u003e\u003c/a\u003e release 4.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/ef90407c853cd8553f5c821de58ad9308898a8c9\"\u003e\u003ccode\u003eef90407\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2613\"\u003e#2613\u003c/a\u003e from ViewComponent/instrument-compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d9209180e40c0ffbe08681fd716f012651d032e0\"\u003e\u003ccode\u003ed920918\u003c/code\u003e\u003c/a\u003e clean up test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/3cc6d61b83b34f41aaf49dad5e2fbb1c219756ad\"\u003e\u003ccode\u003e3cc6d61\u003c/code\u003e\u003c/a\u003e simplify test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d7947fc975fdde9c6a1cc286494802afb5fd3302\"\u003e\u003ccode\u003ed7947fc\u003c/code\u003e\u003c/a\u003e Add compile.view_component ActiveSupport::Notifications event for eager compi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5d84af8afeeed2c2b43aeb3626728c28f8a42711\"\u003e\u003ccode\u003e5d84af8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2612\"\u003e#2612\u003c/a\u003e from ViewComponent/dependabot/bundler/propshaft-1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8f4ef89b50753aa8f3e83dcf07ecc1f43541df94\"\u003e\u003ccode\u003e8f4ef89\u003c/code\u003e\u003c/a\u003e Bump propshaft from 1.3.1 to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9ae4d79a4222b8bc779904e31307e55390d0a1dd\"\u003e\u003ccode\u003e9ae4d79\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2611\"\u003e#2611\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.43\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.8.0\"\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=view_component\u0026package-manager=bundler\u0026previous-version=4.6.0\u0026new-version=4.8.0)](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/kpost/heroicons-view-components/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpost%2Fheroicons-view-components/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"4.2.0","new_version":"4.8.0","update_type":"minor","path":null,"pr_created_at":"2026-04-27T09:14:12.000Z","version_change":"4.2.0 → 4.8.0","issue":{"uuid":"4334540973","node_id":"PR_kwDOLsgeks7V5dUs","number":159,"state":"closed","title":"🤖(deps): Bump the bundler-semver group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-04T09:33:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T09:14:12.000Z","updated_at":"2026-05-04T09:33:29.000Z","time_to_close":605955,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"🤖(deps): Bump","group_name":"bundler-semver","update_count":17,"packages":[{"name":"rails","old_version":"8.1.2","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"blazer","old_version":"3.3.0","new_version":"3.4.0","repository_url":"https://github.com/ankane/blazer"},{"name":"bootsnap","old_version":"1.22.0","new_version":"1.24.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"devise","old_version":"5.0.0","new_version":"5.0.3","repository_url":"https://github.com/heartcombo/devise"},{"name":"devise-i18n","old_version":"1.15.0","new_version":"1.16.0","repository_url":"https://github.com/devise-i18n/devise-i18n"},{"name":"good_job","old_version":"4.13.2","new_version":"4.18.2","repository_url":"https://github.com/bensheldon/good_job"},{"name":"kamal","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/basecamp/kamal"},{"name":"meta-tags","old_version":"2.22.3","new_version":"2.23.0","repository_url":"https://github.com/kpumuk/meta-tags"},{"name":"pagy","old_version":"43.0.7","new_version":"43.5.3","repository_url":"https://github.com/ddnexus/pagy"},{"name":"view_component","old_version":"4.2.0","new_version":"4.8.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"faker","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"selenium-webdriver","old_version":"4.40.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"brakeman","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"bullet","old_version":"8.1.0","new_version":"8.1.1","repository_url":"https://github.com/flyerhzm/bullet"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"sentry-ruby","old_version":"6.3.0","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler-semver group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.2` | `8.1.3` |\n| [blazer](https://github.com/ankane/blazer) | `3.3.0` | `3.4.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.22.0` | `1.24.0` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.0` | `5.0.3` |\n| [devise-i18n](https://github.com/devise-i18n/devise-i18n) | `1.15.0` | `1.16.0` |\n| [good_job](https://github.com/bensheldon/good_job) | `4.13.2` | `4.18.2` |\n| [kamal](https://github.com/basecamp/kamal) | `2.10.1` | `2.11.0` |\n| [meta-tags](https://github.com/kpumuk/meta-tags) | `2.22.3` | `2.23.0` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.0.7` | `43.5.3` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.2.0` | `4.8.0` |\n| [faker](https://github.com/faker-ruby/faker) | `3.6.0` | `3.8.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.40.0` | `4.43.0` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.2` | `8.0.4` |\n| [bullet](https://github.com/flyerhzm/bullet) | `8.1.0` | `8.1.1` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.3.0` | `6.5.0` |\n\n\nUpdates `rails` from 8.1.2 to 8.1.3\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\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.2...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blazer` from 3.3.0 to 3.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ankane/blazer/blob/master/CHANGELOG.md\"\u003eblazer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.0 (2026-04-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\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/ankane/blazer/commit/a35536b0c33f57a6c3936ae7eb24b5c8db3274ac\"\u003e\u003ccode\u003ea35536b\u003c/code\u003e\u003c/a\u003e Version bump to 3.4.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/1040a45ef9562b664fa9ab1dc19ef0fe7deb4197\"\u003e\u003ccode\u003e1040a45\u003c/code\u003e\u003c/a\u003e Updated safely_block [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/aadb52152aaa25be6eddb48e145ccdbf42717838\"\u003e\u003ccode\u003eaadb521\u003c/code\u003e\u003c/a\u003e Updated license year [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/9a9108a0098ef40a4a0cd4426e5e0b6885020a38\"\u003e\u003ccode\u003e9a9108a\u003c/code\u003e\u003c/a\u003e Dropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/fed70e10605250f014c078311d2327b9def84a02\"\u003e\u003ccode\u003efed70e1\u003c/code\u003e\u003c/a\u003e Allow test environment for adapter_instance (\u003ca href=\"https://redirect.github.com/ankane/blazer/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/c17d8ec1598d33e9f792d194d19782c55db76fef\"\u003e\u003ccode\u003ec17d8ec\u003c/code\u003e\u003c/a\u003e Removed dev dependency on minitest-mock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/e5515ecca17ed2f2d3f87347147549353983f24b\"\u003e\u003ccode\u003ee5515ec\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0 on CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/e448bbc47505601a221f36e276d6637aa79ddfbf\"\u003e\u003ccode\u003ee448bbc\u003c/code\u003e\u003c/a\u003e Updated tests for minitest 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/cda46c59d283c43c795b7efaf2a8270f2acbcd73\"\u003e\u003ccode\u003ecda46c5\u003c/code\u003e\u003c/a\u003e Removed stub calls for minitest 6 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/blazer/commit/0ca353b427511d84404dca34be48b100decd230f\"\u003e\u003ccode\u003e0ca353b\u003c/code\u003e\u003c/a\u003e Moved protect_from_forgery after authentication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ankane/blazer/compare/v3.3.0...v3.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.22.0 to 1.24.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.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\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.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\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.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\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/dc57c2069a38710d30077d988229c4d6f7f4292d\"\u003e\u003ccode\u003edc57c20\u003c/code\u003e\u003c/a\u003e Release 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/481b9b91b5758c691af201f7dec73e54af9c0640\"\u003e\u003ccode\u003e481b9b9\u003c/code\u003e\u003c/a\u003e Avoid interning string on every call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/81e6db41be3973fe99e37126487d6928e076a139\"\u003e\u003ccode\u003e81e6db4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/535\"\u003e#535\u003c/a\u003e from byroot/compilation-backends\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/320ca021f1d17bd19322ce6076d2235434e4044a\"\u003e\u003ccode\u003e320ca02\u003c/code\u003e\u003c/a\u003e Allow to substitute the Ruby compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 5.0.0 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\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/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.3 - 2026-03-16\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix race condition vulnerability on confirmable \u0026quot;change email\u0026quot; which would allow confirming an email they don't own CVE-2026-32700 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-57hq-95w6-v4fc\"\u003eGHSA-57hq-95w6-v4fc\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5783\"\u003e#5783\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5784\"\u003e#5784\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.2 - 2026-02-18\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eenhancements\n\u003cul\u003e\n\u003cli\u003eAllow resource class scopes to override the global configuration for \u003ccode\u003esign_in_after_change_password\u003c/code\u003e behaviour. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5825\"\u003e#5825\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003eNote\u003c/em\u003e: some users ran into an issue with this change because \u003ccode\u003eRegistrationsController\u003c/code\u003e now relies on a setting from the \u003ccode\u003e:registerable\u003c/code\u003e module. These users were configuring their own routes pointing to the \u003ccode\u003eRegistrationsController\u003c/code\u003e for resource edit/update actions mostly, without relying on the other registration actions (e.g. user sign up.), so they omitted \u003ccode\u003e:registerable\u003c/code\u003e from the model declaration. While using just a portion of the controller functionality is a valid use for \u003ccode\u003e:registerable\u003c/code\u003e (or any module really), the module must still be declared in the model, much like the other modules must be declared if you plan on using just a portion of their behavior. Please check \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5828#issuecomment-3926822788\"\u003ethis issue\u003c/a\u003e for more info.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller, to allow it to be customized by users. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5826\"\u003e#5826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.1 - 2026-02-13\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebug fixes\n\u003cul\u003e\n\u003cli\u003eFix translation issue with German \u003ccode\u003eE-Mail\u003c/code\u003e on invalid authentication messages caused by previous fix for incorrect grammar \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5822\"\u003e#5822\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/heartcombo/devise/commit/2f809205b2a9112767e68e1a5666c649a42609c6\"\u003e\u003ccode\u003e2f80920\u003c/code\u003e\u003c/a\u003e Release v5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/53347074021b38590653b95523f9b7113e5dcfdc\"\u003e\u003ccode\u003e5334707\u003c/code\u003e\u003c/a\u003e Add CVE to changelog [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/02527772bd9adbc3357d9c62fbc16e73e438121d\"\u003e\u003ccode\u003e0252777\u003c/code\u003e\u003c/a\u003e Fix race condition vulnerability, by ensuring the \u003ccode\u003eunconfirmed_email\u003c/code\u003e is alwa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/879f79fceaf2ec6525219ee7bb4057ce4db65729\"\u003e\u003ccode\u003e879f79f\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/0f4493bd0302f85d1662b71c4f2145268fecc200\"\u003e\u003ccode\u003e0f4493b\u003c/code\u003e\u003c/a\u003e Configure default permissions as read-only for the workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/8c785761bd3c717793f0da4146dd630865568567\"\u003e\u003ccode\u003e8c78576\u003c/code\u003e\u003c/a\u003e Ignore test/** folder for GH default code scanning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/c9e655e13253dc53e3c0981a8345f134bcda1fc5\"\u003e\u003ccode\u003ec9e655e\u003c/code\u003e\u003c/a\u003e Bundle update, clear dependabot security issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/3fd061095084d8f9d3f8c995c46caabcd15640fd\"\u003e\u003ccode\u003e3fd0610\u003c/code\u003e\u003c/a\u003e Add a note to the changelog about an edge case issue some users ran into\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5b008ed51c0df3223cf727e7ad07378d6329b12f\"\u003e\u003ccode\u003e5b008ed\u003c/code\u003e\u003c/a\u003e Release v5.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/916f94ed4b4bb8e7881d5cf8c6535b7ccb368f7a\"\u003e\u003ccode\u003e916f94e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller (\u003ca href=\"https://redirect.github.com/heartcombo/devise/issues/5826\"\u003e#5826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heartcombo/devise/compare/v5.0.0...v5.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise-i18n` from 1.15.0 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/devise-i18n/devise-i18n/releases\"\u003edevise-i18n's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.16.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Ruby 4.0 to test matrix.\u003c/li\u003e\n\u003cli\u003eAdded compatibility with Devise 5.0.\u003c/li\u003e\n\u003cli\u003eUpdated views for Devise 5.0. Any views generated into your app prior to this release of devise-i18n should continue to work. Changes from Devise are:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5494\"\u003eheartcombo/devise#5494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/d13ef89\"\u003ehttps://github.com/heartcombo/devise/commit/d13ef89\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated one English string for Devise 5.0: \u003ca href=\"https://github.com/heartcombo/devise/commit/41003bf\"\u003ehttps://github.com/heartcombo/devise/commit/41003bf\u003c/a\u003e. Translations of this string are unaffected.\u003c/li\u003e\n\u003cli\u003eDropped compatibility for Devise \u0026lt; 5.0.\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/devise-i18n/devise-i18n/blob/main/CHANGELOG.md\"\u003edevise-i18n's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.16.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Ruby 4.0 to test matrix.\u003c/li\u003e\n\u003cli\u003eAdded compatibility with Devise 5.0.\u003c/li\u003e\n\u003cli\u003eUpdated views for Devise 5.0. Any views generated into your app prior to this release of devise-i18n should continue to work. Changes from Devise are:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5494\"\u003eheartcombo/devise#5494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/d13ef89\"\u003ehttps://github.com/heartcombo/devise/commit/d13ef89\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated one English string for Devise 5.0: \u003ca href=\"https://github.com/heartcombo/devise/commit/41003bf\"\u003ehttps://github.com/heartcombo/devise/commit/41003bf\u003c/a\u003e. Translations of this string are unaffected.\u003c/li\u003e\n\u003cli\u003eDropped compatibility for Devise \u0026lt; 5.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\u003e\u003ca href=\"https://github.com/devise-i18n/devise-i18n/commit/afe857a01ff7d0abe3f42749a613071bbad82ad1\"\u003e\u003ccode\u003eafe857a\u003c/code\u003e\u003c/a\u003e Prepare for 1.16.0 (\u003ca href=\"https://redirect.github.com/devise-i18n/devise-i18n/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devise-i18n/devise-i18n/commit/9bfa57440daa49a23de014a5a76727048d87c122\"\u003e\u003ccode\u003e9bfa574\u003c/code\u003e\u003c/a\u003e Update locales from Transifex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devise-i18n/devise-i18n/commit/a90329440be097ebe9895fc8228a9b336ae0823d\"\u003e\u003ccode\u003ea903294\u003c/code\u003e\u003c/a\u003e Update for compatibility with devise 5.0 (\u003ca href=\"https://redirect.github.com/devise-i18n/devise-i18n/issues/32\"\u003e#32\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/devise-i18n/devise-i18n/commit/3f6dd991e516a8bb14d826fd9c510ea6935f45d3\"\u003e\u003ccode\u003e3f6dd99\u003c/code\u003e\u003c/a\u003e Test on Ruby 4.0 (\u003ca href=\"https://redirect.github.com/devise-i18n/devise-i18n/issues/31\"\u003e#31\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/devise-i18n/devise-i18n/compare/v1.15.0...v1.16.0\"\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.13.2 to 4.18.2\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.18.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4182-2026-04-20\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dashboard indexes for queue_name, created_at, and discarded jobs by \u003ca href=\"https://github.com/AliOsm\"\u003e\u003ccode\u003e@​AliOsm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1754\"\u003ebensheldon/good_job#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up ScheduledByQueueChart with inner-query pushdown and (scheduled_at, queue_name) index by \u003ca href=\"https://github.com/AliOsm\"\u003e\u003ccode\u003e@​AliOsm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1757\"\u003ebensheldon/good_job#1757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up succeeded count via complement subtraction by \u003ca href=\"https://github.com/AliOsm\"\u003e\u003ccode\u003e@​AliOsm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1758\"\u003ebensheldon/good_job#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ArgumentError when using perform_throttle without a label 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/1760\"\u003ebensheldon/good_job#1760\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.1...v4.18.2\"\u003ehttps://github.com/bensheldon/good_job/compare/v4.18.1...v4.18.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.18.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4181-2026-04-18\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix concurrent PG connection access in ProcessHeartbeat#refresh_process 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/1755\"\u003ebensheldon/good_job#1755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake job lifecycle methods lock-strategy-aware 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/1756\"\u003ebensheldon/good_job#1756\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.0...v4.18.1\"\u003ehttps://github.com/bensheldon/good_job/compare/v4.18.0...v4.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.18.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4180-2026-04-17\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GoodJob.handled_exceptions config; include NotImplementedError by default 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/1748\"\u003ebensheldon/good_job#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow adding the currently executing job to a batch 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/1746\"\u003ebensheldon/good_job#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce GoodJob::InterruptedError string for interrupted execution records 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/1750\"\u003ebensheldon/good_job#1750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSmall changes and fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow split enabled/paused badge for cron schedules in navbar 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/1744\"\u003ebensheldon/good_job#1744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake bulk action buttons responsive to job state filter 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/1751\"\u003ebensheldon/good_job#1751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix dashboard pagination omitting jobs created in the same second 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/1749\"\u003ebensheldon/good_job#1749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace AR attributes API with explicit accessors; add breaking migration guardrails 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/1753\"\u003ebensheldon/good_job#1753\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.17.0...v4.18.0\"\u003ehttps://github.com/bensheldon/good_job/compare/v4.17.0...v4.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eReview the \u003ca href=\"https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md#v4170-2026-04-17\"\u003eChangelog\u003c/a\u003e for more details.\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce advisory lock key customization support methods by \u003ca href=\"https://github.com/amkisko\"\u003e\u003ccode\u003e@​amkisko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1722\"\u003ebensheldon/good_job#1722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert UI JavaScript modules to Stimulus controllers 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/1743\"\u003ebensheldon/good_job#1743\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/amkisko\"\u003e\u003ccode\u003e@​amkisko\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1722\"\u003ebensheldon/good_job#1722\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/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.18.2\"\u003ev4.18.2\u003c/a\u003e (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.1...v4.18.2\"\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\u003eAdd dashboard indexes for queue_name, created_at, and discarded jobs \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1754\"\u003e#1754\u003c/a\u003e (\u003ca href=\"https://github.com/AliOsm\"\u003eAliOsm\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\u003eArgumentError: GoodJob::Job(...) is not an ActiveRecord::Relation \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1759\"\u003e#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ArgumentError when using perform_throttle without a label \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1760\"\u003e#1760\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\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\u003eSpeed up succeeded count via complement subtraction \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1758\"\u003e#1758\u003c/a\u003e (\u003ca href=\"https://github.com/AliOsm\"\u003eAliOsm\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up ScheduledByQueueChart with inner-query pushdown and (scheduled_at, queue_name) index \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1757\"\u003e#1757\u003c/a\u003e (\u003ca href=\"https://github.com/AliOsm\"\u003eAliOsm\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/bensheldon/good_job/tree/v4.18.1\"\u003ev4.18.1\u003c/a\u003e (2026-04-18)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.18.0...v4.18.1\"\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\u003eAdd an ActiveJob extension for throttling \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/315\"\u003e#315\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\u003eMake job lifecycle methods lock-strategy-aware \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1756\"\u003e#1756\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix concurrent PG connection access in ProcessHeartbeat#refresh_process \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1755\"\u003e#1755\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\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\u003eJob stuck in queued state and never picked up \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1590\"\u003e#1590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor the Notifier to be more of a generic Reactor \u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/811\"\u003e#811\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/bensheldon/good_job/tree/v4.18.0\"\u003ev4.18.0\u003c/a\u003e (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.17.0...v4.18.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\u003eMake bulk action buttons responsive to job state filter \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1751\"\u003e#1751\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce GoodJob::InterruptedError string for interrupted execution records \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1750\"\u003e#1750\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd GoodJob.handled_exceptions config; include NotImplementedError by default \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1748\"\u003e#1748\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow adding the currently executing job to a batch \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1746\"\u003e#1746\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShow split enabled/paused badge for cron schedules in navbar \u003ca href=\"https://redirect.github.com/bensheldon/good_job/pull/1744\"\u003e#1744\u003c/a\u003e (\u003ca href=\"https://github.com/bensheldon\"\u003ebensheldon\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed bugs:\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/6637ecc228305cc02f0cb070a0057df1b570b55c\"\u003e\u003ccode\u003e6637ecc\u003c/code\u003e\u003c/a\u003e Release good_job v4.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/04779eb8a6494a517def454a85bb1354c0cc64d3\"\u003e\u003ccode\u003e04779eb\u003c/code\u003e\u003c/a\u003e Fix ArgumentError when using perform_throttle without a label (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1760\"\u003e#1760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/f795b9c50cb124413462b330970844ceb7419ebc\"\u003e\u003ccode\u003ef795b9c\u003c/code\u003e\u003c/a\u003e Speed up succeeded count via complement subtraction (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1758\"\u003e#1758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/b3996b38482b3542057833421ea9d77d750e99d6\"\u003e\u003ccode\u003eb3996b3\u003c/code\u003e\u003c/a\u003e Speed up ScheduledByQueueChart with inner-query pushdown and (scheduled_at, q...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/26620ce95d4bd809e3e70d1bbfd914ddfb93c29e\"\u003e\u003ccode\u003e26620ce\u003c/code\u003e\u003c/a\u003e Add dashboard indexes for queue_name, created_at, and discarded jobs (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1754\"\u003e#1754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/18f743e7c2190065d63c15463c190b1aaee45149\"\u003e\u003ccode\u003e18f743e\u003c/code\u003e\u003c/a\u003e Release good_job v4.18.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/c212c18fcd21fc3bc81f585ea4f42ff83329333a\"\u003e\u003ccode\u003ec212c18\u003c/code\u003e\u003c/a\u003e Make job lifecycle methods lock-strategy-aware (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1756\"\u003e#1756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/99c2bfa9ab8411e6c906f60ae8bb334baef9373f\"\u003e\u003ccode\u003e99c2bfa\u003c/code\u003e\u003c/a\u003e Fix concurrent PG connection access in ProcessHeartbeat#refresh_process (\u003ca href=\"https://redirect.github.com/bensheldon/good_job/issues/1755\"\u003e#1755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/cdf7369fe164b52b4d479dc811754e541213f528\"\u003e\u003ccode\u003ecdf7369\u003c/code\u003e\u003c/a\u003e Release good_job v4.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bensheldon/good_job/commit/0bab557382b1c9272bb7dd7b6faa5de9d2ed4eff\"\u003e\u003ccode\u003e0bab557\u003c/code\u003e\u003c/a\u003e Replace AR attributes API with explicit accessors; add breaking migration spe...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bensheldon/good_job/compare/v4.13.2...v4.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kamal` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/kamal/releases\"\u003ekamal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003cp\u003eThis version requires \u003ca href=\"https://github.com/basecamp/kamal-proxy/releases/tag/v0.9.2\"\u003ekamal-proxy v0.9.2\u003c/a\u003e or higher to deploy. Run kamal proxy reboot to update to v0.9.2.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin to minitest 5 and update lockfiles by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1748\"\u003ebasecamp/kamal#1748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Ruby 4.0 to the test matrix by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1759\"\u003ebasecamp/kamal#1759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow configurable verbosity for hooks output by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1758\"\u003ebasecamp/kamal#1758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README by \u003ca href=\"https://github.com/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix integration tests on hosts using nftables by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1762\"\u003ebasecamp/kamal#1762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse option_args when running accessories in a new container by \u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix --skip-commit for pre-connect hook by \u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support ssh-config to run-over-ssh by \u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire kamal-proxy 0.9.2 or higher by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1763\"\u003ebasecamp/kamal#1763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset specific roles and hosts when passed nil by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1770\"\u003ebasecamp/kamal#1770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow aliases to include the destination by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1786\"\u003ebasecamp/kamal#1786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rack from 3.2.4 to 3.2.5 in the bundler group across 1 directory 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/basecamp/kamal/pull/1779\"\u003ebasecamp/kamal#1779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.0 to 1.19.1 in the bundler group across 1 directory 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/basecamp/kamal/pull/1787\"\u003ebasecamp/kamal#1787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoad secrets for pre-connect by \u003ca href=\"https://github.com/nickhammond\"\u003e\u003ccode\u003e@​nickhammond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1772\"\u003ebasecamp/kamal#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQuote filter names in docker commands by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1732\"\u003ebasecamp/kamal#1732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance ERB rendering to trim blank lines in configuration files by \u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing a minor typo by \u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd user to docker group if not superuser by \u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\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/brianzelip\"\u003e\u003ccode\u003e@​brianzelip\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1745\"\u003ebasecamp/kamal#1745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/9c23a5\"\u003e\u003ccode\u003e@​9c23a5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1739\"\u003ebasecamp/kamal#1739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zdehasek\"\u003e\u003ccode\u003e@​zdehasek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1754\"\u003ebasecamp/kamal#1754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dkan75\"\u003e\u003ccode\u003e@​dkan75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1746\"\u003ebasecamp/kamal#1746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tortuetorche\"\u003e\u003ccode\u003e@​tortuetorche\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1718\"\u003ebasecamp/kamal#1718\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1767\"\u003ebasecamp/kamal#1767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NeilW\"\u003e\u003ccode\u003e@​NeilW\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/basecamp/kamal/pull/1095\"\u003ebasecamp/kamal#1095\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ehttps://github.com/basecamp/kamal/compare/v2.10.1...v2.11.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/basecamp/kamal/commit/453d8d7dc2b4c5e3479fd919a341c382712a65fb\"\u003e\u003ccode\u003e453d8d7\u003c/code\u003e\u003c/a\u003e Bump version for 2.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/56de0703e1fe6b11d46fb442a831ba08867c1855\"\u003e\u003ccode\u003e56de070\u003c/code\u003e\u003c/a\u003e Fix alias doc validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/89c0d32174231fd47e8aaa7834e795d9cc1d31bf\"\u003e\u003ccode\u003e89c0d32\u003c/code\u003e\u003c/a\u003e Doc change for Kamal 2.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/9c6252d0358e4a828400826f2d6d13d329a4b671\"\u003e\u003ccode\u003e9c6252d\u003c/code\u003e\u003c/a\u003e Rubocop fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/7a05140c6a38cb35ba28a8d0c9f7365f7babce5e\"\u003e\u003ccode\u003e7a05140\u003c/code\u003e\u003c/a\u003e Split the commands\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/a070fe777b47ab1012762c1e05b9e640af43c0cb\"\u003e\u003ccode\u003ea070fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1095\"\u003e#1095\u003c/a\u003e from brightbox/fix-980\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/3a68543e397c4bff1e0ad25cfcbca845a4402ae3\"\u003e\u003ccode\u003e3a68543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1767\"\u003e#1767\u003c/a\u003e from ron-shinall/fix-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/e4aaeda326226c111d9a4519b3af13e297b8586f\"\u003e\u003ccode\u003ee4aaeda\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1718\"\u003e#1718\u003c/a\u003e from tortuetorche/add-erb-trim-mode-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/6ecf8ab8ca6003c7b2454957dd565e06cd38fe2f\"\u003e\u003ccode\u003e6ecf8ab\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1732\"\u003e#1732\u003c/a\u003e from basecamp/quote-filter-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/kamal/commit/2c03a92858e08043e901f23c81b64d41b02f82e4\"\u003e\u003ccode\u003e2c03a92\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/kamal/issues/1772\"\u003e#1772\u003c/a\u003e from nickhammond/pre-connect-secrets\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/kamal/compare/v2.10.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `meta-tags` from 2.22.3 to 2.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kpumuk/meta-tags/releases\"\u003emeta-tags's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor and harden GitHub Actions CI by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/343\"\u003ekpumuk/meta-tags#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStabilize Steep toolchain by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/344\"\u003ekpumuk/meta-tags#344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix packaged Rails RBS interfaces by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/345\"\u003ekpumuk/meta-tags#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4.6.2 to 7.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/348\"\u003ekpumuk/meta-tags#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 5.0.0 to 8.0.1 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/kpumuk/meta-tags/pull/347\"\u003ekpumuk/meta-tags#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/create-github-app-token from 2.2.2 to 3.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/346\"\u003ekpumuk/meta-tags#346\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefresh README SEO guidance by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/349\"\u003ekpumuk/meta-tags#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize property tag matching by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/350\"\u003ekpumuk/meta-tags#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YARD comment wording by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/351\"\u003ekpumuk/meta-tags#351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd strict YARD linting by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/352\"\u003ekpumuk/meta-tags#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreparing 2.23.0 release by \u003ca href=\"https://github.com/kpumuk\"\u003e\u003ccode\u003e@​kpumuk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/353\"\u003ekpumuk/meta-tags#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/kpumuk/meta-tags/compare/v2.22.3...v2.23.0\"\u003ehttps://github.com/kpumuk/meta-tags/compare/v2.22.3...v2.23.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/kpumuk/meta-tags/blob/main/CHANGELOG.md\"\u003emeta-tags's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.23.0 (March 16, 2026) \u003ca href=\"https://github.com/kpumuk/meta-tags/compare/v2.22.3...v2.23.0\"\u003e☰\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003etitle\u003c/code\u003e helper to always return a string, joining array titles with the configured separator (\u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/344\"\u003e344\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed packaged RBS interfaces for Rails helpers so \u003ccode\u003e_ActionViewBase\u003c/code\u003e and \u003ccode\u003e_ActionControllerBase\u003c/code\u003e resolve for gem consumers (\u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/345\"\u003e345\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRefreshed README and generated docs to describe modern SEO guidance more accurately, while keeping legacy metadata features documented as compatibility options (\u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/349\"\u003e349\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eOptimized property tag matching to improve metadata rendering performance and reduce allocations and memory use on the hot render path (\u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/pull/350\"\u003e350\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/kpumuk/meta-tags/commit/e26101479ab9a70ecbe7408e5ffe6785e6656632\"\u003e\u003ccode\u003ee261014\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/issues/353\"\u003e#353\u003c/a\u003e from kpumuk/release-2.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/2e798ea44dca3d32fdee94af8f3c128aea3f37e4\"\u003e\u003ccode\u003e2e798ea\u003c/code\u003e\u003c/a\u003e Preparing 2.23.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/2b956c9eda6cb138036b2b5e9679c16d74bfcc0c\"\u003e\u003ccode\u003e2b956c9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/issues/352\"\u003e#352\u003c/a\u003e from kpumuk/yard-lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/8254a05c4306a23fd8f8047b4cb34f27e5bea305\"\u003e\u003ccode\u003e8254a05\u003c/code\u003e\u003c/a\u003e Limit yard-lint to Ruby 3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/f099110f416a79aaa1b9a080a35bbf17522ff8fa\"\u003e\u003ccode\u003ef099110\u003c/code\u003e\u003c/a\u003e Add strict YARD linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/f1cffa73dc548bbbb2a709f3ab510fe0a78f0a73\"\u003e\u003ccode\u003ef1cffa7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/issues/351\"\u003e#351\u003c/a\u003e from kpumuk/typos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/70dadc6d5a3a224a662a1fde2b4045904ee74997\"\u003e\u003ccode\u003e70dadc6\u003c/code\u003e\u003c/a\u003e Fix YARD comment wording\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/df53bacf49909c6f5410c742f0f8b4325aa502d0\"\u003e\u003ccode\u003edf53bac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kpumuk/meta-tags/issues/350\"\u003e#350\u003c/a\u003e from kpumuk/prop-name-perf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/6f2b429cf4c892e887541ff0d264eb961cdcf717\"\u003e\u003ccode\u003e6f2b429\u003c/code\u003e\u003c/a\u003e Add changelog entry for property tag optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kpumuk/meta-tags/commit/998710df590892b611c4287245e6e6ea88ceec90\"\u003e\u003ccode\u003e998710d\u003c/code\u003e\u003c/a\u003e Optimize property tag fast path\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kpumuk/meta-tags/compare/v2.22.3...v2.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pagy` from 43.0.7 to 43.5.3\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.3\u003c/h2\u003e\n\u003ch3\u003eChanges in 43.5.3\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eAutoload series, a_lambda and page_label\u003c/li\u003e\n\u003cli\u003eAdd Hungarian localization file for Pagy (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/896\"\u003e#896\u003c/a\u003e)\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!-- 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.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAutoload series, a_lambda and page_label\u003c/li\u003e\n\u003cli\u003eAdd Hungarian localization file for Pagy (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.5.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type validation for page and limit keys type (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify series_nav_js removing \u0026quot;pagy-rjs\u0026quot; CSS class (Fix \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/894\"\u003e#894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.5.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRemove ghost code from cli; improve tests\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.5.0\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate javascripts according to es-linting\u003c/li\u003e\n\u003cli\u003eUpdate min ruby version to 3.3 (remove EOL 3.2)\u003c/li\u003e\n\u003cli\u003eImplement the NEW \u003ccode\u003epagy/next\u003c/code\u003e entrypoint to run the NEXT version now\u003c/li\u003e\n\u003cli\u003eRefactor deprecations:\n\u003cul\u003e\n\u003cli\u003eDeprecated :client_max_limit in favor of :max_limit; moved code into deprecation.rb\u003c/li\u003e\n\u003cli\u003eMove deprecated options out of class code, to keep the code clean\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemove RBS resources. Not worth the maintenance effort.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.4\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eMake typecasting in Keyset based classes safer and more efficient\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.3\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the :max_pages option (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.2\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge-case for queries with multiple orderings on same column (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.1\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eNormalize deprecations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.4.0\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImprove stylesheets and docs\u003c/li\u003e\n\u003cli\u003eImprove JavaScript:\n\u003cul\u003e\n\u003cli\u003eAdd sync method and task\u003c/li\u003e\n\u003cli\u003eDeprecate sync_javascript\u003c/li\u003e\n\u003cli\u003eSimplify build, configuration and docs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eVersion 43.3.3\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 href=\"https://github.com/ddnexus/pagy/commit/5f085383bd4e6b630362777824716b686091a6f5\"\u003e\u003ccode\u003e5f08538\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/874833ccceed81863b7dfda2a35febe41ed089be\"\u003e\u003ccode\u003e874833c\u003c/code\u003e\u003c/a\u003e Version 43.5.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/4a0fba231bcdf2f20a67e35faec89727989cae95\"\u003e\u003ccode\u003e4a0fba2\u003c/code\u003e\u003c/a\u003e 💎 Autoload series, a_lambda and page_label\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/55e08028f9225a1978bab49f2536792210b25324\"\u003e\u003ccode\u003e55e0802\u003c/code\u003e\u003c/a\u003e Improve Ferrum test stability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/d9b37f956c09f5be64ff79284d45df8c97fe1847\"\u003e\u003ccode\u003ed9b37f9\u003c/code\u003e\u003c/a\u003e Improve page segment file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/876b61f27274f629a127755e90742c9a23988ad6\"\u003e\u003ccode\u003e876b61f\u003c/code\u003e\u003c/a\u003e 💎 Add Hungarian localization file for Pagy (\u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/187e0dac68c19c08fb740b0b99a947a25a40d039\"\u003e\u003ccode\u003e187e0da\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/d67d69b130c9fda45a510a2c44cbab0b06d5d3ed\"\u003e\u003ccode\u003ed67d69b\u003c/code\u003e\u003c/a\u003e Version 43.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/1f2d27d5955687c954a422a8b1b105ad7429538d\"\u003e\u003ccode\u003e1f2d27d\u003c/code\u003e\u003c/a\u003e Update libs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy/commit/f3e334231aa65dd4028616921fd3d62cd8cd01cb\"\u003e\u003ccode\u003ef3e3342\u003c/code\u003e\u003c/a\u003e 💎 Add type validation for page and limit keys type (close \u003ca href=\"https://redirect.github.com/ddnexus/pagy/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ddnexus/pagy/compare/43.0.7...43.5.3\"\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.2.0 to 4.8.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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix initialization ordering issue causing missing asset errors in Sprockets.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix segfaults when Ruby coverage is enabled.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGeorge Holborn\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eprotocol\u003c/code\u003e parameter to \u003ccode\u003ewith_request_url\u003c/code\u003e test helper to enable testing with HTTPS protocol.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix load order issues for 3rd-party template handlers.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\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.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003ecompile.view_component\u003c/code\u003e ActiveSupport::Notifications event for eager compilation at boot time.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eview_identifier\u003c/code\u003e to the \u003ccode\u003erender.view_component\u003c/code\u003e instrumentation event payload, containing the path to the component's template file (e.g. \u003ccode\u003eapp/components/my_component.html.erb\u003c/code\u003e). For components using inline render methods, \u003ccode\u003eview_identifier\u003c/code\u003e will be \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace deprecated \u003ccode\u003erequire_dependency\u003c/code\u003e with \u003ccode\u003erequire\u003c/code\u003e in preview loading.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003ehtml_safe\u003c/code\u003e empty string from \u003ccode\u003erender_in\u003c/code\u003e when \u003ccode\u003erender?\u003c/code\u003e is false.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix initialization ordering issue causing missing asset errors in Sprockets.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix segfaults when Ruby coverage is enabled.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGeorge Holborn\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eprotocol\u003c/code\u003e parameter to \u003ccode\u003ewith_request_url\u003c/code\u003e test helper to enable testing with HTTPS protocol.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJoel Hawksley\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d7e8cb494448584d84f86dcf8ffee4adbc6a4769\"\u003e\u003ccode\u003ed7e8cb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2615\"\u003e#2615\u003c/a\u003e from ViewComponent/release-4-8-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/091e30a7fbda68661b7448379a535a3ff46062b5\"\u003e\u003ccode\u003e091e30a\u003c/code\u003e\u003c/a\u003e fix flaky tesT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9e0dae45b434b4493c3b7b79160be915a643b13c\"\u003e\u003ccode\u003e9e0dae4\u003c/code\u003e\u003c/a\u003e release 4.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/ef90407c853cd8553f5c821de58ad9308898a8c9\"\u003e\u003ccode\u003eef90407\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2613\"\u003e#2613\u003c/a\u003e from ViewComponent/instrument-compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d9209180e40c0ffbe08681fd716f012651d032e0\"\u003e\u003ccode\u003ed920918\u003c/code\u003e\u003c/a\u003e clean up test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/3cc6d61b83b34f41aaf49dad5e2fbb1c219756ad\"\u003e\u003ccode\u003e3cc6d61\u003c/code\u003e\u003c/a\u003e simplify test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/d7947fc975fdde9c6a1cc286494802afb5fd3302\"\u003e\u003ccode\u003ed7947fc\u003c/code\u003e\u003c/a\u003e Add compile.view_component ActiveSupport::Notifications event for eager compi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/5d84af8afeeed2c2b43aeb3626728c28f8a42711\"\u003e\u003ccode\u003e5d84af8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2612\"\u003e#2612\u003c/a\u003e from ViewComponent/dependabot/bundler/propshaft-1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/8f4ef89b50753aa8f3e83dcf07ecc1f43541df94\"\u003e\u003ccode\u003e8f4ef89\u003c/code\u003e\u003c/a\u003e Bump propshaft from 1.3.1 to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/9ae4d79a4222b8bc779904e31307e55390d0a1dd\"\u003e\u003ccode\u003e9ae4d79\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2611\"\u003e#2611\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.43\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.2.0...v4.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 3.6.0 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\u003ch2\u003ev3.7.1\u003c/h2\u003e\n\u003cp\u003eThanks to all contributors!\u003c/p\u003e\n\u003ch3\u003eDrops support for Ruby 3.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Ruby EOL 3.1 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3240\"\u003efaker-ruby/faker#3240\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eWhat's changed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove json_schema and public-suffix versions constraint by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3224\"\u003efaker-ruby/faker#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded additional football teams by \u003ca href=\"https://github.com/John222\"\u003e\u003ccode\u003e@​John222\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3231\"\u003efaker-ruby/faker#3231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove duplicate 'Recalled to Life' book title by \u003ca href=\"https://github.com/gkrimer\"\u003e\u003ccode\u003e@​gkrimer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3238\"\u003efaker-ruby/faker#3238\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdate development dependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump yard from 0.9.38 to 0.9.40 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/faker-ruby/faker/pull/3237\"\u003efaker-ruby/faker#3237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump timecop from 0.9.10 to 0.9.11 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/faker-ruby/faker/pull/3236\"\u003efaker-ruby/faker#3236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop from 1.85.1 to 1.86.1 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/faker-ruby/faker/pull/3235\"\u003efaker-ruby/faker#3235\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/John222\"\u003e\u003ccode\u003e@​John222\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3231\"\u003efaker-ruby/faker#3231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gkrimer\"\u003e\u003ccode\u003e@​gkrimer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3238\"\u003efaker-ruby/faker#3238\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.6.1...v3.7.1\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.6.1...v3.7.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\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\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.7.1\"\u003ev3.7.1\u003c/a\u003e (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eThanks to all contributors!\u003c/p\u003e\n\u003ch3\u003eDrops support for Ruby 3.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Ruby EOL 3.1 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3240\"\u003efaker-ruby/faker#3240\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eWhat's changed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove json_schema and public-suffix versions constraint by \u003ca href=\"https://g...\n\n_Description has been truncated_","html_url":"https://github.com/edmunteanu/cheeseformice/pull/159","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmunteanu%2Fcheeseformice/issues/159","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/159/packages"}}]}