{"id":425,"name":"solid_cable","ecosystem":"rubygems","repository_url":"https://github.com/rails/solid_cable","issues_count":19660,"created_at":"2025-06-06T15:01:34.482Z","updated_at":"2025-06-06T15:01:34.482Z","purl":"pkg:gem/solid_cable","metadata":{"id":8713544,"name":"solid_cable","ecosystem":"rubygems","description":"Database-backed Action Cable backend.","homepage":"https://github.com/rails/solid_cable","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/rails/solid_cable","keywords_array":[],"namespace":null,"versions_count":26,"first_release_published_at":"2024-01-03T04:25:07.145Z","latest_release_published_at":"2025-05-10T19:49:58.789Z","latest_release_number":"3.0.8","last_synced_at":"2025-06-05T00:52:04.321Z","created_at":"2024-01-03T04:34:42.849Z","updated_at":"2025-06-05T00:57:42.447Z","registry_url":"https://rubygems.org/gems/solid_cable","install_command":"gem install solid_cable -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/solid_cable/","metadata":{"funding":null},"repo_metadata":{"id":215204055,"uuid":"738364293","full_name":"rails/solid_cable","owner":"rails","description":"A database backed ActionCable adapter","archived":false,"fork":false,"pushed_at":"2025-05-16T17:27:19.000Z","size":12171,"stargazers_count":276,"open_issues_count":2,"forks_count":23,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-04T21:32:38.790Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-03T03:59:05.000Z","updated_at":"2025-06-01T19:17:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"420daa9b-db6a-41a7-8fef-b19e1d79a23a","html_url":"https://github.com/rails/solid_cable","commit_stats":{"total_commits":113,"total_committers":12,"mean_commits":9.416666666666666,"dds":"0.16814159292035402","last_synced_commit":"d52bbd8e19b89449ae28e7e4838700d3955b8256"},"previous_names":["npezza93/solid_cable","rails/solid_cable"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258091102,"owners_count":22649691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"rails","name":"Ruby on Rails","uuid":"4223","kind":"organization","description":"","email":null,"website":"https://rubyonrails.org/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4223?v=4","repositories_count":116,"last_synced_at":"2023-04-09T03:40:20.529Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rails","funding_links":[],"total_stars":114333,"followers":null,"following":null,"created_at":"2022-11-02T16:17:13.297Z","updated_at":"2023-04-09T03:40:20.550Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rails/repositories"},"tags":[{"name":"v3.0.7","sha":"f383a5816271dda411aa36099df5d236110e5600","kind":"tag","published_at":"2025-01-25T21:55:45.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v3.0.7","html_url":"https://github.com/rails/solid_cable/releases/tag/v3.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.7/manifests"},{"name":"v3.0.6","sha":"fcd0042e712a645220fb80ef9930ae97b288b12f","kind":"tag","published_at":"2025-01-24T20:09:28.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v3.0.6","html_url":"https://github.com/rails/solid_cable/releases/tag/v3.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.6/manifests"},{"name":"v3.0.5","sha":"d52bbd8e19b89449ae28e7e4838700d3955b8256","kind":"tag","published_at":"2024-12-17T23:15:19.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v3.0.5","html_url":"https://github.com/rails/solid_cable/releases/tag/v3.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.5/manifests"},{"name":"v3.0.4","sha":"869bbd2519eb3752aea983192e391ffcb507feba","kind":"tag","published_at":"2024-12-06T15:23:40.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v3.0.4","html_url":"https://github.com/rails/solid_cable/releases/tag/v3.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.4/manifests"},{"name":"v3.0.3","sha":"aa2d68b91430bd8c8a448d81b177b3f7420adc3b","kind":"tag","published_at":"2024-12-05T16:29:02.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v3.0.3","html_url":"https://github.com/rails/solid_cable/releases/tag/v3.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.3/manifests"},{"name":"v3.0.2","sha":"7ac98418f3f713ccdc0a7c5e677d6f70be2e41ee","kind":"tag","published_at":"2024-09-28T23:00:22.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v3.0.2","html_url":"https://github.com/rails/solid_cable/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"a4d0c561b2e78f2b242f8acf7aeb46c66f5244e6","kind":"tag","published_at":"2024-09-28T15:19:53.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v3.0.1","html_url":"https://github.com/rails/solid_cable/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"f219016e4b185bae04743dbdb4d753869293d662","kind":"tag","published_at":"2024-09-13T18:50:50.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v3.0.0","html_url":"https://github.com/rails/solid_cable/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v3.0.0/manifests"},{"name":"v2.0.2","sha":"1eb0a848efe30d9b6bbbd8e8496785d7ab1c5339","kind":"tag","published_at":"2024-09-12T02:20:43.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v2.0.2","html_url":"https://github.com/rails/solid_cable/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v2.0.2/manifests"},{"name":"v2.0.1","sha":"267672c63efb02800b71f81c63fad812875f4364","kind":"tag","published_at":"2024-09-12T02:18:11.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v2.0.1","html_url":"https://github.com/rails/solid_cable/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"19e7f4611d20fe6f8273c98fb2a4918de0f2b291","kind":"tag","published_at":"2024-09-12T02:14:39.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v2.0.0","html_url":"https://github.com/rails/solid_cable/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v2.0.0/manifests"},{"name":"v1.1.0","sha":"0cd20c5965e77df4c8301aa218b060588f74b8d8","kind":"tag","published_at":"2024-09-11T23:08:33.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v1.1.0","html_url":"https://github.com/rails/solid_cable/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.1.0/manifests"},{"name":"v1.0.6","sha":"edcf8897f06aeabc1ad5d73055d71e6341707443","kind":"tag","published_at":"2024-09-10T15:17:09.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v1.0.6","html_url":"https://github.com/rails/solid_cable/releases/tag/v1.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.6/manifests"},{"name":"v1.0.5","sha":"d1350b4ab306346d58bf24bd2a3ee76eca0edfe3","kind":"tag","published_at":"2024-09-10T15:12:03.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v1.0.5","html_url":"https://github.com/rails/solid_cable/releases/tag/v1.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.5/manifests"},{"name":"v1.0.4","sha":"b3cfec6f9c3a5db2ece8cde8b6a3864e74873d4e","kind":"tag","published_at":"2024-09-10T14:49:32.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v1.0.4","html_url":"https://github.com/rails/solid_cable/releases/tag/v1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.4/manifests"},{"name":"v1.0.3","sha":"8dd5d97f412e4eb2ffd5962ec428ef19c03f62f0","kind":"tag","published_at":"2024-06-20T19:12:07.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v1.0.3","html_url":"https://github.com/rails/solid_cable/releases/tag/v1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.3/manifests"},{"name":"v1.0.2","sha":"7b074673c451749cae6ed0e7176907d6f092f919","kind":"tag","published_at":"2024-06-11T00:34:52.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v1.0.2","html_url":"https://github.com/rails/solid_cable/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"6181c9fe39fe0007605bc58bd9f63c8c67d68b6a","kind":"tag","published_at":"2024-06-09T02:38:36.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v1.0.1","html_url":"https://github.com/rails/solid_cable/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"4145536c83ec80ed72713a2fd61df1879d69f6a2","kind":"tag","published_at":"2024-06-09T01:26:56.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v1.0.0","html_url":"https://github.com/rails/solid_cable/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v1.0.0/manifests"},{"name":"v0.3.0","sha":"1745a66539fd9fe4bc5c13302d823f01f8447c87","kind":"tag","published_at":"2024-05-28T23:55:46.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v0.3.0","html_url":"https://github.com/rails/solid_cable/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.3.0/manifests"},{"name":"v0.2.3","sha":"18c39b543a2f85f37673e2791fd3e9908b63584a","kind":"tag","published_at":"2024-01-03T20:53:45.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v0.2.3","html_url":"https://github.com/rails/solid_cable/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"d3d0de48c52ce34bd578e7e9fb82aab5914b49ce","kind":"tag","published_at":"2024-01-03T20:30:09.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v0.2.2","html_url":"https://github.com/rails/solid_cable/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.2.2/manifests"},{"name":"v0.2.1","sha":"d28d8dbb1743c95827683ecf27b9ae0d2cf66ee2","kind":"tag","published_at":"2024-01-03T19:38:33.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v0.2.1","html_url":"https://github.com/rails/solid_cable/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"8f04f0814f58d0de1d5fecf90e19e1e2cb2029a0","kind":"tag","published_at":"2024-01-03T19:22:10.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v0.2.0","html_url":"https://github.com/rails/solid_cable/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"b1320ad384e3b5659f96c0f27d653a1ab30668d4","kind":"tag","published_at":"2024-01-03T04:24:06.000Z","download_url":"https://codeload.github.com/rails/solid_cable/tar.gz/v0.1.0","html_url":"https://github.com/rails/solid_cable/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rails%2Fsolid_cable/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-06-05T00:57:42.447Z","dependent_packages_count":0,"downloads":2975417,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":99.34106660993606,"dependent_repos_count":48.88985925901045,"dependent_packages_count":15.75974382228791,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":54.663556563744805},"purl":"pkg:gem/solid_cable","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/solid_cable","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/solid_cable","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/solid_cable/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/solid_cable/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/solid_cable/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/solid_cable/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/solid_cable/related_packages","maintainers":[{"uuid":"97914","login":"npezza","name":null,"email":null,"url":null,"packages_count":17,"html_url":"https://rubygems.org/profiles/npezza","role":null,"created_at":"2024-01-03T05:18:47.557Z","updated_at":"2024-01-03T05:18:47.557Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/npezza/packages"},{"uuid":"1550","login":"webster132","name":null,"email":null,"url":null,"packages_count":95,"html_url":"https://rubygems.org/profiles/webster132","role":null,"created_at":"2024-09-13T02:43:57.778Z","updated_at":"2024-09-13T02:43:57.778Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/webster132/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":198088,"maintainers_count":66420,"namespaces_count":0,"keywords_count":17792,"github":"rubygems","metadata":{"funded_packages_count":7047},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2025-06-04T06:04:17.160Z","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":9752,"unique_repositories_count_past_30_days":15,"recent_issues":[{"uuid":"6015810816","node_id":"PR_kwDOIFhWM88AAAABKeK-5g","number":9,"state":"closed","title":"chore(deps): bump the all-bundler-dependencies group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-24T18:06:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-24T17:47:50.000Z","updated_at":"2026-10-24T18:06:48.000Z","time_to_close":1136,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-bundler-dependencies","update_count":6,"packages":[{"name":"bootsnap","old_version":"1.25.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"slim-rails","old_version":"4.0.0","new_version":"4.0.1","repository_url":"https://github.com/slim-template/slim-rails"},{"name":"sqlite3","old_version":"2.9.6","new_version":"2.10.0","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"selenium-webdriver","old_version":"4.48.0","new_version":"4.51.0","repository_url":"https://github.com/SeleniumHQ/selenium"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-bundler-dependencies group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.25.0` | `1.26.0` |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [slim-rails](https://github.com/slim-template/slim-rails) | `4.0.0` | `4.0.1` |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `2.9.6` | `2.10.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.48.0` | `4.51.0` |\n\n\nUpdates `bootsnap` from 1.25.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.25.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `slim-rails` from 4.0.0 to 4.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/slim-template/slim-rails/releases\"\u003eslim-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCompletely drop support for Rails 6.1 and older\n\u003cul\u003e\n\u003cli\u003eAlign Rails dependencies with supported versions by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/221\"\u003eslim-template/slim-rails#221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy Rails 6.1 and older support code by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/223\"\u003eslim-template/slim-rails#223\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerate valid block markup for attachment collections by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/218\"\u003eslim-template/slim-rails#218\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack compiled Slim render calls in template digests by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/220\"\u003eslim-template/slim-rails#220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve Sprockets context dependency metadata by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/217\"\u003eslim-template/slim-rails#217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve literal greeting characters in generated plain-text mail by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/219\"\u003eslim-template/slim-rails#219\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate gemspec metadata and remove unused development dependencies by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/213\"\u003eslim-template/slim-rails#213\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RuboCop config for development environment by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/211\"\u003eslim-template/slim-rails#211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for github-actions by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/208\"\u003eslim-template/slim-rails#208\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Appraisals definitions for maintainability by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/209\"\u003eslim-template/slim-rails#209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Fix CI failures with minitest v6 by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/210\"\u003eslim-template/slim-rails#210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add Ruby 4.0 to CI Matrix by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/212\"\u003eslim-template/slim-rails#212\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Restrict GitHub Actions workflow permissions to contents: read by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/215\"\u003eslim-template/slim-rails#215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 6 to 7 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/slim-template/slim-rails/pull/216\"\u003eslim-template/slim-rails#216\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/216\"\u003eslim-template/slim-rails#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/221\"\u003eslim-template/slim-rails#221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/slim-template/slim-rails/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/slim-template/slim-rails/compare/v4.0.0...v4.0.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/slim-template/slim-rails/blob/master/CHANGELOG.md\"\u003eslim-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.1 (September 19, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlign Rails dependencies with supported versions (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/221\"\u003e#221\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eDrop Support for Rails 6.1 and older\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemove legacy Rails 6.1 and older support code (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/223\"\u003e#223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve Sprockets context dependency metadata (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrack compiled Slim render calls in template digests (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate valid block markup for attachment collections (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate gemspec metadata and remove unused development dependencies (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Restrict GitHub Actions workflow permissions to contents: read (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Add Ruby 4.0 to CI Matrix (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix CI failures with minitest v6 (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Update Appraisals definitions for maintainability (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/209\"\u003e#209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix RuboCop config for development environment (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/211\"\u003e#211\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/slim-template/slim-rails/commit/abaed8b53bedb59b0de921eb0b13c3215de9af9f\"\u003e\u003ccode\u003eabaed8b\u003c/code\u003e\u003c/a\u003e Bump to 4.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/075dc49954c8f4167ba1784602e7bc45ed797a91\"\u003e\u003ccode\u003e075dc49\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/219\"\u003e#219\u003c/a\u003e from OskarEichler/codex/plain-text-mailer-interpolation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/cdd8f3d24982902c0f5b93425de239537cbc2ef0\"\u003e\u003ccode\u003ecdd8f3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/217\"\u003e#217\u003c/a\u003e from OskarEichler/codex/asset-dependency-metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/c6579faff9c6309f7d873e401c279c9d11ed6150\"\u003e\u003ccode\u003ec6579fa\u003c/code\u003e\u003c/a\u003e Fix lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/1a3c6d4321bf3eef67e20885ace0222ba1689db2\"\u003e\u003ccode\u003e1a3c6d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/223\"\u003e#223\u003c/a\u003e from slim-template/remove-unsupported-code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/7ea03f4ee4d2fea03a6caec5d62256d2126ca486\"\u003e\u003ccode\u003e7ea03f4\u003c/code\u003e\u003c/a\u003e Remove legacy Rails 6.1 and older support code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/923f6c482e2a7b9319fd103e29a65d748f3a51a8\"\u003e\u003ccode\u003e923f6c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/220\"\u003e#220\u003c/a\u003e from OskarEichler/codex/compiled-template-dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/99ee8370e9c5f730ab03bdc79269eb0fd59cb262\"\u003e\u003ccode\u003e99ee837\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/218\"\u003e#218\u003c/a\u003e from OskarEichler/codex/attachment-scaffold-markup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/54b1e30246b7b39ec7f06671e94f56900bed4482\"\u003e\u003ccode\u003e54b1e30\u003c/code\u003e\u003c/a\u003e Generate valid scaffold block markup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/42a2b9fa110ca2f25b384156ab1b1d765650208b\"\u003e\u003ccode\u003e42a2b9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/221\"\u003e#221\u003c/a\u003e from OskarEichler/codex/align-rails-version-requirements\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/slim-template/slim-rails/compare/v4.0.0...v4.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlite3` from 2.9.6 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.0 / 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_54_0.html\"\u003ev3.54.0\u003c/a\u003e (from v3.53.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNotable changes in this version include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e now raises an error when adding, renaming, or dropping a column named \u003ccode\u003eROWID\u003c/code\u003e, \u003ccode\u003e_ROWID_\u003c/code\u003e, or \u003ccode\u003eOID\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe authorizer callback is now invoked for SQL functions in the \u003ccode\u003eDEFAULT\u003c/code\u003e clauses of \u003ccode\u003eCREATE TABLE\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eSQLite no longer supports Windows XP or earlier. On Windows, the precompiled gem and any installation that compiles the vendored sqlite now require Windows Vista or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return an \u003ccode\u003eEnumerator\u003c/code\u003e when called without a block. Previously they raised \u003ccode\u003eLocalJumpError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eDatabase#serialize\u003c/code\u003e, which returns a database as a binary string, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e, which replaces a database with the contents of such a string. These wrap \u003ca href=\"https://www.sqlite.org/c3ref/serialize.html\"\u003e\u003ccode\u003esqlite3_serialize()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.sqlite.org/c3ref/deserialize.html\"\u003e\u003ccode\u003esqlite3_deserialize()\u003c/code\u003e\u003c/a\u003e. Both methods are defined only when SQLite was compiled without \u003ccode\u003eSQLITE_OMIT_DESERIALIZE\u003c/code\u003e, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e also requires that the loaded SQLite is v3.54.0 or later. An image of a database in WAL mode cannot be queried after deserializing; see the \u003ccode\u003eDatabase#deserialize\u003c/code\u003e documentation. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e \u003ca href=\"https://github.com/Maaarcocr\"\u003e\u003ccode\u003e@​Maaarcocr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDatabase#statement_timeout=\u003c/code\u003e interrupting statements almost immediately instead of after the timeout elapsed, including re-executed prepared statements and calls to \u003ccode\u003eDatabase#execute_batch2\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e \u003ca href=\"https://github.com/palkan\"\u003e\u003ccode\u003e@​palkan\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOn CRuby, \u003ccode\u003eStatement#types\u003c/code\u003e allocates fewer strings. Each declared type is downcased and interned in C, instead of allocating two strings per column. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return the result set when called with a block. As a consequence, \u003ccode\u003eDatabase#execute\u003c/code\u003e and \u003ccode\u003e#execute2\u003c/code\u003e called with a block return the closed \u003ccode\u003eResultSet\u003c/code\u003e instead of \u003ccode\u003enil\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#columns\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return frozen arrays, and the strings in \u003ccode\u003eStatement#types\u003c/code\u003e are frozen. Code that mutates them now raises \u003ccode\u003eFrozenError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#column_decltype\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return UTF-8 strings. Previously they returned ASCII-8BIT strings. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003edafeea94182af2eb53a10797be359fa6ec4270532bd45255d1c2beb69f2eb743  gems/sqlite3-2.10.0-aarch64-linux-gnu.gem\r\nec4ffedded0bd8579629e14d0647cfee9092c0af0009c05d6404d90857b1cb8b  gems/sqlite3-2.10.0-aarch64-linux-musl.gem\r\nbcf2e165f27fd28f46ba34eeba3503d557ea7f76f9dd40434ce719f2ba0d5cda  gems/sqlite3-2.10.0-arm-linux-gnu.gem\r\n338510e64876c7d02d91733eeaee384806c58b3835d8a688d1bfdbf7e468c497  gems/sqlite3-2.10.0-arm-linux-musl.gem\r\nf619f33adfd01a1827e8764a3da92b289c1a99d93707d021a242dccba6909c4e  gems/sqlite3-2.10.0-arm64-darwin.gem\r\nec284ace2bca873737d0e8818f8eb31e5b84936b694f95933514872929b945d0  gems/sqlite3-2.10.0-x64-mingw-ucrt.gem\r\na3ac204853c8c6b3f2f6f94ebaa52cba26cfd48df82537b1b154a28fc687f057  gems/sqlite3-2.10.0-x86-linux-gnu.gem\r\n96508597fc5e54bfc1a12f94eb2d9f8e0517a8a377bdbfd6cc824215c4530adb  gems/sqlite3-2.10.0-x86-linux-musl.gem\r\n67306588548e62095855a511285daf33389d7f4311c1c33a1addd23e2b90cec5  gems/sqlite3-2.10.0-x86_64-darwin.gem\r\n295f48b240ba663efa2e3b6f38cbc0f19f5c8a2823a71fda3bf15531be5dd0e8  gems/sqlite3-2.10.0-x86_64-linux-gnu.gem\r\n876dd86a15c7828075ff7612e3d0ab0eb2eba0d8485b13fd4000e8a335f86bc5  gems/sqlite3-2.10.0-x86_64-linux-musl.gem\r\n3fc6c4ac2249b1c54099e7b80e57afdd678e648c1f54de8ad3b4c775195c661a  gems/sqlite3-2.10.0.gem\r\n\u003c/code\u003e\u003c/pre\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/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.0 / 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_54_0.html\"\u003ev3.54.0\u003c/a\u003e (from v3.53.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNotable changes in this version include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e now raises an error when adding, renaming, or dropping a column named \u003ccode\u003eROWID\u003c/code\u003e, \u003ccode\u003e_ROWID_\u003c/code\u003e, or \u003ccode\u003eOID\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe authorizer callback is now invoked for SQL functions in the \u003ccode\u003eDEFAULT\u003c/code\u003e clauses of \u003ccode\u003eCREATE TABLE\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eSQLite no longer supports Windows XP or earlier. On Windows, the precompiled gem and any installation that compiles the vendored sqlite now require Windows Vista or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return an \u003ccode\u003eEnumerator\u003c/code\u003e when called without a block. Previously they raised \u003ccode\u003eLocalJumpError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eDatabase#serialize\u003c/code\u003e, which returns a database as a binary string, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e, which replaces a database with the contents of such a string. These wrap \u003ca href=\"https://www.sqlite.org/c3ref/serialize.html\"\u003e\u003ccode\u003esqlite3_serialize()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.sqlite.org/c3ref/deserialize.html\"\u003e\u003ccode\u003esqlite3_deserialize()\u003c/code\u003e\u003c/a\u003e. Both methods are defined only when SQLite was compiled without \u003ccode\u003eSQLITE_OMIT_DESERIALIZE\u003c/code\u003e, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e also requires that the loaded SQLite is v3.54.0 or later. An image of a database in WAL mode cannot be queried after deserializing; see the \u003ccode\u003eDatabase#deserialize\u003c/code\u003e documentation. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e \u003ca href=\"https://github.com/Maaarcocr\"\u003e\u003ccode\u003e@​Maaarcocr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDatabase#statement_timeout=\u003c/code\u003e interrupting statements almost immediately instead of after the timeout elapsed, including re-executed prepared statements and calls to \u003ccode\u003eDatabase#execute_batch2\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e \u003ca href=\"https://github.com/palkan\"\u003e\u003ccode\u003e@​palkan\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOn CRuby, \u003ccode\u003eStatement#types\u003c/code\u003e allocates fewer strings. Each declared type is downcased and interned in C, instead of allocating two strings per column. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return the result set when called with a block. As a consequence, \u003ccode\u003eDatabase#execute\u003c/code\u003e and \u003ccode\u003e#execute2\u003c/code\u003e called with a block return the closed \u003ccode\u003eResultSet\u003c/code\u003e instead of \u003ccode\u003enil\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#columns\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return frozen arrays, and the strings in \u003ccode\u003eStatement#types\u003c/code\u003e are frozen. Code that mutates them now raises \u003ccode\u003eFrozenError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#column_decltype\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return UTF-8 strings. Previously they returned ASCII-8BIT strings. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\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/sparklemotion/sqlite3-ruby/commit/07186c3987c0462bcb086c3bbc617577bf98d259\"\u003e\u003ccode\u003e07186c3\u003c/code\u003e\u003c/a\u003e version bump to v2.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/7ad6fc062bfd0c13dace203186b546dc1350c065\"\u003e\u003ccode\u003e7ad6fc0\u003c/code\u003e\u003c/a\u003e feat: Add Database#serialize and Database#deserialize methods  (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/c35ae350523bb8b7b01a2688a2b4ceb2e1074820\"\u003e\u003ccode\u003ec35ae35\u003c/code\u003e\u003c/a\u003e Fix statement_timeout interrupting most queries (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/ac1b9d9b45b4cea43f0cdad24fd5ec18b11ce914\"\u003e\u003ccode\u003eac1b9d9\u003c/code\u003e\u003c/a\u003e Avoid string allocation of types on statement (and freeze arrays) (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/60679555479b56ac52e4132f4d05b80d96a56ae4\"\u003e\u003ccode\u003e6067955\u003c/code\u003e\u003c/a\u003e Allow calling each, each_hash without block (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/f2315177240132d51a86ad6381e5c960d8c1a086\"\u003e\u003ccode\u003ef231517\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/64aa362931c3b2833d6710313151d9b47bbb1e4a\"\u003e\u003ccode\u003e64aa362\u003c/code\u003e\u003c/a\u003e build(deps-dev): update standard requirement from 1.56.0 to 1.57.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/197861a0f163c18062ab7ae4412ce737f57327df\"\u003e\u003ccode\u003e197861a\u003c/code\u003e\u003c/a\u003e dep: update vendored sqlite to 3.54.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b79f314d55b0a32e600613c3ba227424e554c696\"\u003e\u003ccode\u003eb79f314\u003c/code\u003e\u003c/a\u003e build(deps-dev): update rdoc requirement from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/745\"\u003e#745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b265a20190de40918bab204a8eb244d843a1af52\"\u003e\u003ccode\u003eb265a20\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/746\"\u003e#746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v2.9.6...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\"\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.48.0 to 4.51.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.51.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\u003cul\u003e\n\u003cli\u003e[py] Validate WebSocket response interval correctly by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17984\"\u003eSeleniumHQ/selenium#17984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py][bidi] Send setClientWindowState rect members as sibling params 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/18100\"\u003eSeleniumHQ/selenium#18100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] Degrade to empty metadata when the cache cannot be read 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/18101\"\u003eSeleniumHQ/selenium#18101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Separate project for NUnit infrastructure 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/18104\"\u003eSeleniumHQ/selenium#18104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Do not leak the HttpClient on startup failure 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/18047\"\u003eSeleniumHQ/selenium#18047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Add RemoteWebDriver.getClientFactory() and move HttpCommandExecutor field removal to 4.53 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/18111\"\u003eSeleniumHQ/selenium#18111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Parallelize internal testing 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/18110\"\u003eSeleniumHQ/selenium#18110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] pin Firefox BiDi vendor CDDL from the Firefox repository 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/18094\"\u003eSeleniumHQ/selenium#18094\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] remove obsolete third_party dependencies and dead build references 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/18072\"\u003eSeleniumHQ/selenium#18072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate release docs at approval and commit them after the packages publish 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/18113\"\u003eSeleniumHQ/selenium#18113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Upgrade NUnit library to v5 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/18114\"\u003eSeleniumHQ/selenium#18114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] recover from incomplete Java release by dropping staged repositories when found 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/18112\"\u003eSeleniumHQ/selenium#18112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [build] Escape macOS Edge browser path 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/18126\"\u003eSeleniumHQ/selenium#18126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js][bidi] Add vendor specific class generation by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18125\"\u003eSeleniumHQ/selenium#18125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] assert setFiles uploads reach the server in SetFilesCommandTest by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18058\"\u003eSeleniumHQ/selenium#18058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java][bidi] Decode nested RemoteValues from the parsed tree instead of re-serializing each subtree by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18095\"\u003eSeleniumHQ/selenium#18095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] type a field-less synthetic map record as a validated map by \u003ca href=\"https://github.com/aguspe\"\u003e\u003ccode\u003e@​aguspe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18121\"\u003eSeleniumHQ/selenium#18121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove guava from client bindings \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/12737\"\u003e#12737\u003c/a\u003e 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/13739\"\u003eSeleniumHQ/selenium#13739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] clean up IntelliJ project files and align .editorconfig with formatters 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/18119\"\u003eSeleniumHQ/selenium#18119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[javascript] Create \u003ccode\u003e@​seleniumhq/atoms\u003c/code\u003e npm package from TypeScript atoms 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/17459\"\u003eSeleniumHQ/selenium#17459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java][bidi] Add BiDi code generator by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17777\"\u003eSeleniumHQ/selenium#17777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java][bidi] Type field-less synthetic map records as Map\u0026lt;String, V\u0026gt; by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18122\"\u003eSeleniumHQ/selenium#18122\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[javascript] Publish atoms under the \u003ca href=\"https://github.com/selenium\"\u003e\u003ccode\u003e@​selenium\u003c/code\u003e\u003c/a\u003e npm scope 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/18132\"\u003eSeleniumHQ/selenium#18132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] sign Java artifacts in-process with in-memory PGP keys instead of gpg-agent 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/18130\"\u003eSeleniumHQ/selenium#18130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Support Python 3.15 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/18065\"\u003eSeleniumHQ/selenium#18065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[javascript] Publish \u003ccode\u003e@​seleniumhq/atoms\u003c/code\u003e as part of the npm release 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/18133\"\u003eSeleniumHQ/selenium#18133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Remove the WebSQL and AppCache atoms 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/18137\"\u003eSeleniumHQ/selenium#18137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] remove bazel patches that now have upstream fixes 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/18140\"\u003eSeleniumHQ/selenium#18140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] configure the Chrome sandbox after unpacking a Chrome for Testing build on Windows 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/18139\"\u003eSeleniumHQ/selenium#18139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Entry point to mutate driver options per fixture 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/18141\"\u003eSeleniumHQ/selenium#18141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Add webextension methods on the driver with BiDi and fallback by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18127\"\u003eSeleniumHQ/selenium#18127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] source the Java and .NET versions from a root version.bzl that tests do not read 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/18138\"\u003eSeleniumHQ/selenium#18138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] pin the driver location once per test process so services built in tests skip Selenium Manager 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/18143\"\u003eSeleniumHQ/selenium#18143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Do not pass a bare --proxy to Selenium Manager by \u003ca href=\"https://github.com/Mochxd\"\u003e\u003ccode\u003e@​Mochxd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18089\"\u003eSeleniumHQ/selenium#18089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java][bidi] Update tests to use converter functions by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18146\"\u003eSeleniumHQ/selenium#18146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] manage state in tests not in global hooks 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/18142\"\u003eSeleniumHQ/selenium#18142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add stub mode option for using selenium manager with bazel 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/18135\"\u003eSeleniumHQ/selenium#18135\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/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17984\"\u003eSeleniumHQ/selenium#17984\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.51.0 (2026-10-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v153, v154, v155\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18118\"\u003e#18118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etype a field-less synthetic map record as a validated map (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18121\"\u003e#18121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18131\"\u003e#18131\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.50.0 (2026-09-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v152, v153, v154\u003c/li\u003e\n\u003cli\u003erender WebSocket debug log lines lazily (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18033\"\u003e#18033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement driver methods for installing and uninstalling web extensions via BiDi (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17879\"\u003e#17879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18046\"\u003e#18046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] replace the BiDi KNOWN_INCOMPLETE allowlist with spec-shaped CDDL overlays (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18057\"\u003e#18057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18060\"\u003e#18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated Firefox profile extension and cert methods (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18066\"\u003e#18066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\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/35c5fab4a58fa5878edb255eb7747b04ca51a015\"\u003e\u003ccode\u003e35c5fab\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.51.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18149\"\u003e#18149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8f7503a553aac68a0f0f960ce152b4a984f2978b\"\u003e\u003ccode\u003e8f7503a\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18131\"\u003e#18131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f3a43a5bc5a1faaad3cd54789186a7e3a0846367\"\u003e\u003ccode\u003ef3a43a5\u003c/code\u003e\u003c/a\u003e [build] remove the Windows session settle sleeps now that Selenium Manager co...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/953b27bb27734af350cc3b8ff647082f67f59033\"\u003e\u003ccode\u003e953b27b\u003c/code\u003e\u003c/a\u003e [rb] drop Safari captureScreenshot guard now that Safari Technology Preview 2...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/92807c94d687bedc75e428c96de7a01c132c65c2\"\u003e\u003ccode\u003e92807c9\u003c/code\u003e\u003c/a\u003e [build] pin the driver location once per test process so services built in te...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e0c56c96b3aedf9de7d6a46b0d83d1bb068b64c4\"\u003e\u003ccode\u003ee0c56c9\u003c/code\u003e\u003c/a\u003e [rb] update test guard for different bidi error in Chrome beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/788fcf3bec38061c57705d4a6b76d12c095be125\"\u003e\u003ccode\u003e788fcf3\u003c/code\u003e\u003c/a\u003e [rb] type a field-less synthetic map record as a validated map (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18121\"\u003e#18121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8ba36d40044cd1253430e2752417d0f5ec7023de\"\u003e\u003ccode\u003e8ba36d4\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18124\"\u003e#18124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6d04770f34cc0ff88800f7d67d361384144c7697\"\u003e\u003ccode\u003e6d04770\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18118\"\u003e#18118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e1af1a7911fbbcf17901754b2b9589719b08365f\"\u003e\u003ccode\u003ee1af1a7\u003c/code\u003e\u003c/a\u003e [rb] update tests to guard BiDi browsing context on Safari and Windows Firefo...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.48.0...selenium-4.51.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/hexlet-components/rails-users-list/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexlet-components%2Frails-users-list/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"5940505089","node_id":"PR_kwDOQCPKO88AAAABJiLNKA","number":33,"state":"closed","title":"Bump solid_cable from 3.0.12 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":true,"comments_count":1,"pull_request":true,"closed_at":"2026-10-20T11:03:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-20T11:02:29.000Z","updated_at":"2026-10-20T11:03:49.000Z","time_to_close":71,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"3.0.12","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 3.0.12 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade ci to test against all ruby versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/76\"\u003erails/solid_cable#76\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop ruby 3.1 support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/77\"\u003erails/solid_cable#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetry if connection fails by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/75\"\u003erails/solid_cable#75\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEagerly initialize last_id to avoid skipping messages by \u003ca href=\"https://github.com/xrav3nz\"\u003e\u003ccode\u003e@​xrav3nz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/78\"\u003erails/solid_cable#78\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop ruby 3.2 support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden CI by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd connection timeout error and not established to the list of retryable connection errors by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\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/xrav3nz\"\u003e\u003ccode\u003e@​xrav3nz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/78\"\u003erails/solid_cable#78\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/solid_cable/compare/v3.0.12...v4.0.0\"\u003ehttps://github.com/rails/solid_cable/compare/v3.0.12...v4.0.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v3.0.12...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=3.0.12\u0026new-version=4.1.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/joaotorres/recipster/pull/33","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotorres%2Frecipster/issues/33","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/33/packages"},{"uuid":"5893612080","node_id":"PR_kwDOTjH9l88AAAABI9a6rQ","number":26,"state":"closed","title":"build(deps): bump the bundler-minor-and-patch group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-24T01:34:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-17T01:35:34.000Z","updated_at":"2026-10-24T01:34:45.000Z","time_to_close":604746,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"bundler-minor-and-patch","update_count":13,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"sqlite3","old_version":"2.9.5","new_version":"2.10.0","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"solid_queue","old_version":"1.5.0","new_version":"1.7.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.24.6","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.23","new_version":"0.1.27","repository_url":"https://github.com/basecamp/thruster"},{"name":"rails_vite","old_version":"0.2.3","new_version":"0.3.0","repository_url":"https://github.com/skryukov/rails_vite"},{"name":"typelizer","old_version":"0.13.1","new_version":"0.14.0","repository_url":"https://github.com/skryukov/typelizer"},{"name":"pagy","old_version":"43.6.1","new_version":"43.7.1","repository_url":"https://github.com/ddnexus/pagy"},{"name":"action_policy","old_version":"0.7.6","new_version":"0.7.7","repository_url":"https://github.com/palkan/action_policy"},{"name":"brakeman","old_version":"8.0.5","new_version":"8.1.0","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"capybara-lockstep","old_version":"2.3.1","new_version":"2.3.2","repository_url":"https://github.com/makandra/capybara-lockstep"},{"name":"selenium-webdriver","old_version":"4.46.0","new_version":"4.51.0","repository_url":"https://github.com/SeleniumHQ/selenium"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler-minor-and-patch group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `2.9.5` | `2.10.0` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.5.0` | `1.7.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.6` | `1.26.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.23` | `0.1.27` |\n| [rails_vite](https://github.com/skryukov/rails_vite) | `0.2.3` | `0.3.0` |\n| [typelizer](https://github.com/skryukov/typelizer) | `0.13.1` | `0.14.0` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.6.1` | `43.7.1` |\n| [action_policy](https://github.com/palkan/action_policy) | `0.7.6` | `0.7.7` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.5` | `8.1.0` |\n| [capybara-lockstep](https://github.com/makandra/capybara-lockstep) | `2.3.1` | `2.3.2` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.46.0` | `4.51.0` |\n\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlite3` from 2.9.5 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.0 / 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_54_0.html\"\u003ev3.54.0\u003c/a\u003e (from v3.53.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNotable changes in this version include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e now raises an error when adding, renaming, or dropping a column named \u003ccode\u003eROWID\u003c/code\u003e, \u003ccode\u003e_ROWID_\u003c/code\u003e, or \u003ccode\u003eOID\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe authorizer callback is now invoked for SQL functions in the \u003ccode\u003eDEFAULT\u003c/code\u003e clauses of \u003ccode\u003eCREATE TABLE\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eSQLite no longer supports Windows XP or earlier. On Windows, the precompiled gem and any installation that compiles the vendored sqlite now require Windows Vista or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return an \u003ccode\u003eEnumerator\u003c/code\u003e when called without a block. Previously they raised \u003ccode\u003eLocalJumpError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eDatabase#serialize\u003c/code\u003e, which returns a database as a binary string, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e, which replaces a database with the contents of such a string. These wrap \u003ca href=\"https://www.sqlite.org/c3ref/serialize.html\"\u003e\u003ccode\u003esqlite3_serialize()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.sqlite.org/c3ref/deserialize.html\"\u003e\u003ccode\u003esqlite3_deserialize()\u003c/code\u003e\u003c/a\u003e. Both methods are defined only when SQLite was compiled without \u003ccode\u003eSQLITE_OMIT_DESERIALIZE\u003c/code\u003e, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e also requires that the loaded SQLite is v3.54.0 or later. An image of a database in WAL mode cannot be queried after deserializing; see the \u003ccode\u003eDatabase#deserialize\u003c/code\u003e documentation. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e \u003ca href=\"https://github.com/Maaarcocr\"\u003e\u003ccode\u003e@​Maaarcocr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDatabase#statement_timeout=\u003c/code\u003e interrupting statements almost immediately instead of after the timeout elapsed, including re-executed prepared statements and calls to \u003ccode\u003eDatabase#execute_batch2\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e \u003ca href=\"https://github.com/palkan\"\u003e\u003ccode\u003e@​palkan\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOn CRuby, \u003ccode\u003eStatement#types\u003c/code\u003e allocates fewer strings. Each declared type is downcased and interned in C, instead of allocating two strings per column. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return the result set when called with a block. As a consequence, \u003ccode\u003eDatabase#execute\u003c/code\u003e and \u003ccode\u003e#execute2\u003c/code\u003e called with a block return the closed \u003ccode\u003eResultSet\u003c/code\u003e instead of \u003ccode\u003enil\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#columns\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return frozen arrays, and the strings in \u003ccode\u003eStatement#types\u003c/code\u003e are frozen. Code that mutates them now raises \u003ccode\u003eFrozenError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#column_decltype\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return UTF-8 strings. Previously they returned ASCII-8BIT strings. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003edafeea94182af2eb53a10797be359fa6ec4270532bd45255d1c2beb69f2eb743  gems/sqlite3-2.10.0-aarch64-linux-gnu.gem\r\nec4ffedded0bd8579629e14d0647cfee9092c0af0009c05d6404d90857b1cb8b  gems/sqlite3-2.10.0-aarch64-linux-musl.gem\r\nbcf2e165f27fd28f46ba34eeba3503d557ea7f76f9dd40434ce719f2ba0d5cda  gems/sqlite3-2.10.0-arm-linux-gnu.gem\r\n338510e64876c7d02d91733eeaee384806c58b3835d8a688d1bfdbf7e468c497  gems/sqlite3-2.10.0-arm-linux-musl.gem\r\nf619f33adfd01a1827e8764a3da92b289c1a99d93707d021a242dccba6909c4e  gems/sqlite3-2.10.0-arm64-darwin.gem\r\nec284ace2bca873737d0e8818f8eb31e5b84936b694f95933514872929b945d0  gems/sqlite3-2.10.0-x64-mingw-ucrt.gem\r\na3ac204853c8c6b3f2f6f94ebaa52cba26cfd48df82537b1b154a28fc687f057  gems/sqlite3-2.10.0-x86-linux-gnu.gem\r\n96508597fc5e54bfc1a12f94eb2d9f8e0517a8a377bdbfd6cc824215c4530adb  gems/sqlite3-2.10.0-x86-linux-musl.gem\r\n67306588548e62095855a511285daf33389d7f4311c1c33a1addd23e2b90cec5  gems/sqlite3-2.10.0-x86_64-darwin.gem\r\n295f48b240ba663efa2e3b6f38cbc0f19f5c8a2823a71fda3bf15531be5dd0e8  gems/sqlite3-2.10.0-x86_64-linux-gnu.gem\r\n876dd86a15c7828075ff7612e3d0ab0eb2eba0d8485b13fd4000e8a335f86bc5  gems/sqlite3-2.10.0-x86_64-linux-musl.gem\r\n3fc6c4ac2249b1c54099e7b80e57afdd678e648c1f54de8ad3b4c775195c661a  gems/sqlite3-2.10.0.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.0 / 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_54_0.html\"\u003ev3.54.0\u003c/a\u003e (from v3.53.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNotable changes in this version include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e now raises an error when adding, renaming, or dropping a column named \u003ccode\u003eROWID\u003c/code\u003e, \u003ccode\u003e_ROWID_\u003c/code\u003e, or \u003ccode\u003eOID\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe authorizer callback is now invoked for SQL functions in the \u003ccode\u003eDEFAULT\u003c/code\u003e clauses of \u003ccode\u003eCREATE TABLE\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eSQLite no longer supports Windows XP or earlier. On Windows, the precompiled gem and any installation that compiles the vendored sqlite now require Windows Vista or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return an \u003ccode\u003eEnumerator\u003c/code\u003e when called without a block. Previously they raised \u003ccode\u003eLocalJumpError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eDatabase#serialize\u003c/code\u003e, which returns a database as a binary string, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e, which replaces a database with the contents of such a string. These wrap \u003ca href=\"https://www.sqlite.org/c3ref/serialize.html\"\u003e\u003ccode\u003esqlite3_serialize()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.sqlite.org/c3ref/deserialize.html\"\u003e\u003ccode\u003esqlite3_deserialize()\u003c/code\u003e\u003c/a\u003e. Both methods are defined only when SQLite was compiled without \u003ccode\u003eSQLITE_OMIT_DESERIALIZE\u003c/code\u003e, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e also requires that the loaded SQLite is v3.54.0 or later. An image of a database in WAL mode cannot be queried after deserializing; see the \u003ccode\u003eDatabase#deserialize\u003c/code\u003e documentation. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e \u003ca href=\"https://github.com/Maaarcocr\"\u003e\u003ccode\u003e@​Maaarcocr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDatabase#statement_timeout=\u003c/code\u003e interrupting statements almost immediately instead of after the timeout elapsed, including re-executed prepared statements and calls to \u003ccode\u003eDatabase#execute_batch2\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e \u003ca href=\"https://github.com/palkan\"\u003e\u003ccode\u003e@​palkan\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOn CRuby, \u003ccode\u003eStatement#types\u003c/code\u003e allocates fewer strings. Each declared type is downcased and interned in C, instead of allocating two strings per column. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return the result set when called with a block. As a consequence, \u003ccode\u003eDatabase#execute\u003c/code\u003e and \u003ccode\u003e#execute2\u003c/code\u003e called with a block return the closed \u003ccode\u003eResultSet\u003c/code\u003e instead of \u003ccode\u003enil\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#columns\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return frozen arrays, and the strings in \u003ccode\u003eStatement#types\u003c/code\u003e are frozen. Code that mutates them now raises \u003ccode\u003eFrozenError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#column_decltype\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return UTF-8 strings. Previously they returned ASCII-8BIT strings. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/07186c3987c0462bcb086c3bbc617577bf98d259\"\u003e\u003ccode\u003e07186c3\u003c/code\u003e\u003c/a\u003e version bump to v2.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/7ad6fc062bfd0c13dace203186b546dc1350c065\"\u003e\u003ccode\u003e7ad6fc0\u003c/code\u003e\u003c/a\u003e feat: Add Database#serialize and Database#deserialize methods  (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/c35ae350523bb8b7b01a2688a2b4ceb2e1074820\"\u003e\u003ccode\u003ec35ae35\u003c/code\u003e\u003c/a\u003e Fix statement_timeout interrupting most queries (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/ac1b9d9b45b4cea43f0cdad24fd5ec18b11ce914\"\u003e\u003ccode\u003eac1b9d9\u003c/code\u003e\u003c/a\u003e Avoid string allocation of types on statement (and freeze arrays) (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/60679555479b56ac52e4132f4d05b80d96a56ae4\"\u003e\u003ccode\u003e6067955\u003c/code\u003e\u003c/a\u003e Allow calling each, each_hash without block (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/f2315177240132d51a86ad6381e5c960d8c1a086\"\u003e\u003ccode\u003ef231517\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/64aa362931c3b2833d6710313151d9b47bbb1e4a\"\u003e\u003ccode\u003e64aa362\u003c/code\u003e\u003c/a\u003e build(deps-dev): update standard requirement from 1.56.0 to 1.57.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/197861a0f163c18062ab7ae4412ce737f57327df\"\u003e\u003ccode\u003e197861a\u003c/code\u003e\u003c/a\u003e dep: update vendored sqlite to 3.54.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b79f314d55b0a32e600613c3ba227424e554c696\"\u003e\u003ccode\u003eb79f314\u003c/code\u003e\u003c/a\u003e build(deps-dev): update rdoc requirement from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/745\"\u003e#745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b265a20190de40918bab204a8eb244d843a1af52\"\u003e\u003ccode\u003eb265a20\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/746\"\u003e#746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v2.9.5...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.5.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 - batches\u003c/h2\u003e\n\u003cp\u003eThis is a big one! Solid Queue finally supports \u003ca href=\"https://github.com/rails/solid_queue#batch-jobs\"\u003ejob batches\u003c/a\u003e thanks to \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e.   Check the README for more details about how to use these. This took ages despite being a very requested feature 😅 Big thanks to \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e for his patience, refinements and production-app tests!\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that concurrency + bulk enqueuing is a perf caveat, not unsafe by \u003ca href=\"https://github.com/Gnirt\"\u003e\u003ccode\u003e@​Gnirt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/785\"\u003erails/solid_queue#785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for polling queries in logging tests instead of sleeping by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/775\"\u003erails/solid_queue#775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep semaphore slots held while blocked jobs are enqueued in concurrency test by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/776\"\u003erails/solid_queue#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive in-flight jobs enough pause to survive slow shutdowns in tests by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/782\"\u003erails/solid_queue#782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude the error in fail_many_claimed events and document recovery by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/779\"\u003erails/solid_queue#779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace terminated forks even if releasing their claimed jobs fails by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/781\"\u003erails/solid_queue#781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonour TERM received during supervisor boot before forking workers by \u003ca href=\"https://github.com/rafael-pissardo\"\u003e\u003ccode\u003e@​rafael-pissardo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/770\"\u003erails/solid_queue#770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch Support by \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/142\"\u003erails/solid_queue#142\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/Gnirt\"\u003e\u003ccode\u003e@​Gnirt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/785\"\u003erails/solid_queue#785\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/solid_queue/compare/v1.6.0...v1.7.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.6.0...v1.7.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.0 - fiber execution mode (with Async)\u003c/h2\u003e\n\u003cp\u003eA long-awaited feature thanks to \u003ca href=\"https://github.com/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e on this release: instead of using a thread pool to run jobs in multiple threads per works, you can now use \u003ca href=\"https://docs.ruby-lang.org/en/master/Fiber.html\"\u003efibers\u003c/a\u003e on a single fiber reactor thread. To use this, you just need to specify the number of fibers instead of the number of threads in your worker configuration, like this:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eworkers:\r\n  - queues: \u0026quot;api*\u0026quot;\r\n    fibers: 100\r\n    polling_interval: 0.05\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt uses \u003ca href=\"https://github.com/socketry/async\"\u003eAsync\u003c/a\u003e under the hood, so you need to have that as a dependency for it to work. Also, you need to be using fiber isolation in Rails (\u003ccode\u003econfig.active_support.isolation_level`` = :fiber\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eThis can be very useful for I/O-bound workloads, such as those involving LLM calls.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fiber worker execution mode by \u003ca href=\"https://github.com/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/728\"\u003erails/solid_queue#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRoll back transactions leaked by killed job threads in tests by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/773\"\u003erails/solid_queue#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to update dynamic recurring tasks by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/777\"\u003erails/solid_queue#777\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/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/728\"\u003erails/solid_queue#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/777\"\u003erails/solid_queue#777\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/solid_queue/compare/v1.5.1...v1.6.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.5.1...v1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix flaky tests caused by leaked job threads and signal timing by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/766\"\u003erails/solid_queue#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an update generator to copy new migrations by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/765\"\u003erails/solid_queue#765\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for the continuable job to start before interrupting it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/767\"\u003erails/solid_queue#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd --only-recurring to run just the recurring scheduler by \u003ca href=\"https://github.com/rafael-pissardo\"\u003e\u003ccode\u003e@​rafael-pissardo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/757\"\u003erails/solid_queue#757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse with_connection in DistinctValues by \u003ca href=\"https://github.com/trevorturk\"\u003e\u003ccode\u003e@​trevorturk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/769\"\u003erails/solid_queue#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace forked processes that fail to boot by \u003ca href=\"https://github.com/sapandiwakar\"\u003e\u003ccode\u003e@​sapandiwakar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/760\"\u003erails/solid_queue#760\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/e2b53849c715b29fa2d97a939097bd1beaea4bc9\"\u003e\u003ccode\u003ee2b5384\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/5352228d24eae58200ee7142f53ad36c942b7de2\"\u003e\u003ccode\u003e5352228\u003c/code\u003e\u003c/a\u003e Reset pooled connections when flipping the batches schema in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/112bb1cb66c399d16de3b48afcf7c7ace71ae553\"\u003e\u003ccode\u003e112bb1c\u003c/code\u003e\u003c/a\u003e Refine batch support after a full review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/1bcac835608712dcb24a988e70e0b7aca5e31221\"\u003e\u003ccode\u003e1bcac83\u003c/code\u003e\u003c/a\u003e Add batch support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/fcb5f7acf26b4f91df2ba699d8990f5dbb645580\"\u003e\u003ccode\u003efcb5f7a\u003c/code\u003e\u003c/a\u003e Name the supervisor's stop checkpoint and simplify its lifecycle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/124176afb0dd6637238a86274390dc961a7312f2\"\u003e\u003ccode\u003e124176a\u003c/code\u003e\u003c/a\u003e Honour TERM received during supervisor boot before forking workers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/174cb071f4edfadc878eea89b18e4fdf5f2aa733\"\u003e\u003ccode\u003e174cb07\u003c/code\u003e\u003c/a\u003e Protect the shutdown reap from release failures too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/0526401f0dcf8cd984f26a564f81eb876d1b7f0b\"\u003e\u003ccode\u003e0526401\u003c/code\u003e\u003c/a\u003e Replace terminated forks even if releasing their claimed jobs fails\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/6816e52bb5a3f31e01af4796f11fb115fb1cf722\"\u003e\u003ccode\u003e6816e52\u003c/code\u003e\u003c/a\u003e Include the error in fail_many_claimed events and document recovery\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/fc5fb599930f5bb677d91cf2729a611b651ee6b3\"\u003e\u003ccode\u003efc5fb59\u003c/code\u003e\u003c/a\u003e Wait longer for the supervisor to fail the killed worker's job\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.5.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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.6 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\u003c/a\u003e\u003c/p\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.26.0\"\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.23 to 0.1.27\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.27 / 2026-09-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependencies (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump golang.org/x/crypto to v0.56.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.1, update dependencies, add make check (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.26 / 2026-08-24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd X-Request-ID header to requests and logs (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.26.6 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.25 / 2026-08-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass all uncacheable requests (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.24 / 2026-08-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse struct types as cache keys\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/669643fa3ebc6c4daaba8b5210561f03e33f8c53\"\u003e\u003ccode\u003e669643f\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/38d3721e489a969fcabeb14b6471d33237f077f1\"\u003e\u003ccode\u003e38d3721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/155\"\u003e#155\u003c/a\u003e from erikthoreson24/version-0.1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/099297026d09ae63a57cc4b472ec945f1c956c85\"\u003e\u003ccode\u003e0992970\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/72796d797395a4eb5746828bbc12760c6ab95a4b\"\u003e\u003ccode\u003e72796d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e from basecamp/deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/0864e8a6df6cbc97cff90a5a9ebd26298431f6be\"\u003e\u003ccode\u003e0864e8a\u003c/code\u003e\u003c/a\u003e Use http.Transport for h2c test client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/80e89ee10855d0bd02a1629bcd031d903b7c64a1\"\u003e\u003ccode\u003e80e89ee\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/22a99787322af951e6302513074338d5ea69472d\"\u003e\u003ccode\u003e22a9978\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e from erikthoreson24/fix/bump-x-crypto-0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b1865186badbd7a7565910b8df0b52a8f635d5df\"\u003e\u003ccode\u003eb186518\u003c/code\u003e\u003c/a\u003e Bump golang.org/x/crypto to v0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/3ef851682cd2a031294b7a2ac5e012a8bace0cfd\"\u003e\u003ccode\u003e3ef8516\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e from basecamp/go-1.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/fa31b967c1c64e007ef9468e8da1a608491656dc\"\u003e\u003ccode\u003efa31b96\u003c/code\u003e\u003c/a\u003e Add make check to run go vet and govulncheck\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.23...v0.1.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails_vite` from 0.2.3 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/skryukov/rails_vite/releases\"\u003erails_vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003erails_vite@0.3.0 / rails-vite-plugin@0.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erefreshDelay\u003c/code\u003e plugin option for \u003ccode\u003erails()\u003c/code\u003e and \u003ccode\u003ejsbundling()\u003c/code\u003e. It waits the given milliseconds after the last \u003ccode\u003erefresh\u003c/code\u003e change before the full-page reload, and sends one reload for a burst of changes. Use it when Rails sees template changes late, e.g. with \u003ccode\u003eEventedFileUpdateChecker\u003c/code\u003e. Default: \u003ccode\u003e0\u003c/code\u003e, which reloads at once as before (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/45\"\u003e#45\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe install generator sets \u003ccode\u003e\u0026quot;type\u0026quot;: \u0026quot;module\u0026quot;\u003c/code\u003e in package.json — Vite and rails-vite-plugin are ESM-only, and without it Node fails to load \u003ccode\u003evite.config.ts\u003c/code\u003e under npm/pnpm/yarn. When package.json pins another \u003ccode\u003etype\u003c/code\u003e, the generator emits \u003ccode\u003evite.config.mts\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aubepkg/aube\"\u003eaube\u003c/a\u003e package manager support: an \u003ccode\u003eaube-lock.yaml\u003c/code\u003e makes the rake tasks, auto build and the install generator use aube, even next to another lockfile left over from \u003ccode\u003eaube import\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/41\"\u003e#41\u003c/a\u003e) (\u003ca href=\"https://github.com/beauraF\"\u003e\u003ccode\u003e@​beauraF\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.vite_executable\u003c/code\u003e sets the executable for \u003ccode\u003erake vite:build\u003c/code\u003e, test builds and auto builds, so Vite-compatible CLIs with another name, such as Vite+'s \u003ccode\u003evp\u003c/code\u003e, work. The default is \u003ccode\u003evite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto_build_paths\u003c/code\u003e config option: extra paths and globs, relative to \u003ccode\u003eRails.root\u003c/code\u003e, that auto build checks for changes besides \u003ccode\u003esourceDir\u003c/code\u003e (for example \u003ccode\u003eapp/views\u003c/code\u003e for Tailwind). It defaults to the root-level Vite, PostCSS, Tailwind and TypeScript configs, \u003ccode\u003epackage.json\u003c/code\u003e, and the lockfile, so changes to them now trigger a rebuild (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/46\"\u003e#46\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.build_mode\u003c/code\u003e sets the \u003ccode\u003e--mode\u003c/code\u003e for \u003ccode\u003evite build\u003c/code\u003e in \u003ccode\u003erake vite:build\u003c/code\u003e and auto builds. The default is unchanged (\u003ccode\u003e\u0026quot;test\u0026quot;\u003c/code\u003e in the test environment, no \u003ccode\u003e--mode\u003c/code\u003e elsewhere); set it to \u003ccode\u003enil\u003c/code\u003e to pass no \u003ccode\u003e--mode\u003c/code\u003e. The gem now passes its \u003ccode\u003ebuild_dir\u003c/code\u003e to the plugin in \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e, so the build directory no longer depends on the mode. Upgrade \u003ccode\u003erails-vite-plugin\u003c/code\u003e together with the gem: older plugin versions ignore \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e. With \u003ccode\u003ebuild_mode\u003c/code\u003e set, \u003ccode\u003evite:build\u003c/code\u003e runs \u003ccode\u003evite build --mode\u003c/code\u003e directly instead of the package.json \u003ccode\u003ebuild\u003c/code\u003e script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/49\"\u003e#49\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evite_asset_url(name)\u003c/code\u003e returns a full URL for a Vite asset, like Rails' \u003ccode\u003easset_url\u003c/code\u003e, for mailers and other places that need an absolute URL (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003erails-vite-plugin\u003c/code\u003e requires Vite 7 or newer and Node.js 20.19+ or 22.12+, like Vite 7 itself. It failed to load on Vite 5 and 6 already (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVite asset URLs are built with Rails' \u003ccode\u003epath_to_asset\u003c/code\u003e, so \u003ccode\u003easset_host\u003c/code\u003e works as it does for other Rails assets: procs that take the request, \u003ccode\u003e%d\u003c/code\u003e hosts and per-controller hosts. Mailers now use \u003ccode\u003econfig.action_mailer.asset_host\u003c/code\u003e (or \u003ccode\u003econfig.asset_host\u003c/code\u003e) instead of the controller's. With \u003ccode\u003erelative_url_root\u003c/code\u003e, tags now include the prefix; set Vite's \u003ccode\u003ebase\u003c/code\u003e to match (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erake vite:build\u003c/code\u003e loads the Rails environment first, so \u003ccode\u003econfig.rails_vite\u003c/code\u003e settings from initializers (such as \u003ccode\u003evite_executable\u003c/code\u003e) also apply to it and to \u003ccode\u003ebin/rails test\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe install generator writes \u003ccode\u003evite dev\u003c/code\u003e instead of \u003ccode\u003evite\u003c/code\u003e to \u003ccode\u003eProcfile.dev\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003evite:build\u003c/code\u003e (and therefore \u003ccode\u003eassets:precompile\u003c/code\u003e) runs the package.json \u003ccode\u003ebuild\u003c/code\u003e script when one exists, so \u003ccode\u003e\u0026quot;build\u0026quot;: \u0026quot;vite build \u0026amp;\u0026amp; vite build --ssr\u0026quot;\u003c/code\u003e produces both client and SSR bundles on deploy. Apps without a \u003ccode\u003ebuild\u003c/code\u003e script keep the bare \u003ccode\u003evite build\u003c/code\u003e. If package.json already has a \u003ccode\u003ebuild\u003c/code\u003e script (e.g. one left over from jsbundling-rails), change it to \u003ccode\u003e\u0026quot;build\u0026quot;: \u0026quot;vite build\u0026quot;\u003c/code\u003e or remove it before upgrading; otherwise precompile succeeds without Vite assets and production raises \u003ccode\u003eRailsVite::MissingManifestError\u003c/code\u003e. The install generator warns about such a script. Test builds and auto-builds always use the bare command, since their extra flags (\u003ccode\u003e--mode test\u003c/code\u003e, \u003ccode\u003e--logLevel warn\u003c/code\u003e) would only reach the last command of a compound script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVite commands from the rake tasks and auto build run in \u003ccode\u003eRails.root\u003c/code\u003e, so they work when Rails is started from another directory (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/39\"\u003e#39\u003c/a\u003e) (\u003ca href=\"https://github.com/janko\"\u003e\u003ccode\u003e@​janko\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe package manager is detected from lockfiles in \u003ccode\u003eRails.root\u003c/code\u003e, not the current directory (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChunks loaded at runtime (dynamic \u003ccode\u003eimport()\u003c/code\u003e and their preloads) now come from a string \u003ccode\u003econfig.action_controller.asset_host\u003c/code\u003e, like the tags: \u003ccode\u003erake vite:build\u003c/code\u003e and auto builds pass it to the plugin in \u003ccode\u003eRAILS_VITE_ASSET_HOST\u003c/code\u003e, which prepends it to Vite's \u003ccode\u003ebase\u003c/code\u003e. Set the variable yourself for a proc or \u003ccode\u003e%d\u003c/code\u003e \u003ccode\u003easset_host\u003c/code\u003e. Needs both the updated gem and plugin (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/35\"\u003e#35\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow Vitest's internal Vite server to start in CI. \u003ccode\u003erails()\u003c/code\u003e and \u003ccode\u003ejsbundling()\u003c/code\u003e now skip the dev-server environment guard and dev server setup under Vitest (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/43\"\u003e#43\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProduction tags now link the CSS of chunks an entry imports, including nested and shared chunks, not just the entry's own CSS. Chunk CSS comes before the entry's CSS, matching Vite's HTML output, and CSS shared by several entries in one \u003ccode\u003evite_tags\u003c/code\u003e call is linked once (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/40\"\u003e#40\u003c/a\u003e) (\u003ca href=\"https://github.com/madogiwa0124\"\u003e\u003ccode\u003e@​madogiwa0124\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWatch the base directories of the \u003ccode\u003erefresh\u003c/code\u003e globs, so template and helper changes trigger a full reload on Linux. Vite's watcher disables globbing, so the globs were watched as literal paths that don't exist. On Linux this also stopped change events for the nested view directories (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/44\"\u003e#44\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore a dev metadata file whose Vite process is gone. After a hard kill (SIGKILL, OOM killer), \u003ccode\u003evite_tags\u003c/code\u003e no longer link to a dead dev server, and Rails started afterwards runs auto builds again. The plugin now records its hostname, and the pid is only checked when Vite runs on the same host, so Vite in another container still counts as running. Needs both the updated gem and plugin (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/48\"\u003e#48\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eGem\u003c/strong\u003e: \u003ca href=\"https://rubygems.org/gems/rails_vite/versions/0.3.0\"\u003ehttps://rubygems.org/gems/rails_vite/versions/0.3.0\u003c/a\u003e\n\u003cstrong\u003enpm\u003c/strong\u003e: \u003ca href=\"https://www.npmjs.com/package/rails-vite-plugin/v/0.3.0\"\u003ehttps://www.npmjs.com/package/rails-vite-plugin/v/0.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003erails_vite@0.3.0.rc1 / rails-vite-plugin@0.3.0-rc.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erefreshDelay\u003c/code\u003e plugin option for \u003ccode\u003erails()\u003c/code\u003e and \u003ccode\u003ejsbundling()\u003c/code\u003e. It waits the given milliseconds after the last \u003ccode\u003erefresh\u003c/code\u003e change before the full-page reload, and sends one reload for a burst of changes. Use it when Rails sees template changes late, e.g. with \u003ccode\u003eEventedFileUpdateChecker\u003c/code\u003e. Default: \u003ccode\u003e0\u003c/code\u003e, which reloads at once as before (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/45\"\u003e#45\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe install generator sets \u003ccode\u003e\u0026quot;type\u0026quot;: \u0026quot;module\u0026quot;\u003c/code\u003e in package.json — Vite and rails-vite-plugin are ESM-only, and without it Node fails to load \u003ccode\u003evite.config.ts\u003c/code\u003e under npm/pnpm/yarn. When package.json pins another \u003ccode\u003etype\u003c/code\u003e, the generator emits \u003ccode\u003evite.config.mts\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aubepkg/aube\"\u003eaube\u003c/a\u003e package manager support: an \u003ccode\u003eaube-lock.yaml\u003c/code\u003e makes the rake tasks, auto build and the install generator use aube, even next to another lockfile left over from \u003ccode\u003eaube import\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/41\"\u003e#41\u003c/a\u003e) (\u003ca href=\"https://github.com/beauraF\"\u003e\u003ccode\u003e@​beauraF\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.vite_executable\u003c/code\u003e sets the executable for \u003ccode\u003erake vite:build\u003c/code\u003e, test builds and auto builds, so Vite-compatible CLIs with another name, such as Vite+'s \u003ccode\u003evp\u003c/code\u003e, work. The default is \u003ccode\u003evite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto_build_paths\u003c/code\u003e config option: extra paths and globs, relative to \u003ccode\u003eRails.root\u003c/code\u003e, that auto build checks for changes besides \u003ccode\u003esourceDir\u003c/code\u003e (for example \u003ccode\u003eapp/views\u003c/code\u003e for Tailwind). It defaults to the root-level Vite, PostCSS, Tailwind and TypeScript configs, \u003ccode\u003epackage.json\u003c/code\u003e, and the lockfile, so changes to them now trigger a rebuild (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/46\"\u003e#46\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.build_mode\u003c/code\u003e sets the \u003ccode\u003e--mode\u003c/code\u003e for \u003ccode\u003evite build\u003c/code\u003e in \u003ccode\u003erake vite:build\u003c/code\u003e and auto builds. The default is unchanged (\u003ccode\u003e\u0026quot;test\u0026quot;\u003c/code\u003e in the test environment, no \u003ccode\u003e--mode\u003c/code\u003e elsewhere); set it to \u003ccode\u003enil\u003c/code\u003e to pass no \u003ccode\u003e--mode\u003c/code\u003e. The gem now passes its \u003ccode\u003ebuild_dir\u003c/code\u003e to the plugin in \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e, so the build directory no longer depends on the mode. Upgrade \u003ccode\u003erails-vite-plugin\u003c/code\u003e together with the gem: older plugin versions ignore \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e. With \u003ccode\u003ebuild_mode\u003c/code\u003e set, \u003ccode\u003evite:build\u003c/code\u003e runs \u003ccode\u003evite build --mode\u003c/code\u003e directly instead of the package.json \u003ccode\u003ebuild\u003c/code\u003e script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/49\"\u003e#49\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evite_asset_url(name)\u003c/code\u003e returns a full URL for a Vite asset, like Rails' \u003ccode\u003easset_url\u003c/code\u003e, for mailers and other places that need an absolute URL (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003erails-vite-plugin\u003c/code\u003e requires Vite 7 or newer and Node.js 20.19+ or 22.12+, like Vite 7 itself. It failed to load on Vite 5 and 6 already (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVite asset URLs are built with Rails' \u003ccode\u003epath_to_asset\u003c/code\u003e, so \u003ccode\u003easset_host\u003c/code\u003e works as it does for other Rails assets: procs that take the request, \u003ccode\u003e%d\u003c/code\u003e hosts and per-controller hosts. Mailers now use \u003ccode\u003econfig.action_mailer.asset_host\u003c/code\u003e (or \u003ccode\u003econfig.asset_host\u003c/code\u003e) instead of the controller's. With \u003ccode\u003erelative_url_root\u003c/code\u003e, tags now include the prefix; set Vite's \u003ccode\u003ebase\u003c/code\u003e to match (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erake vite:build\u003c/code\u003e loads the Rails environment first, so \u003ccode\u003econfig.rails_vite\u003c/code\u003e settings from initializers (such as \u003ccode\u003evite_executable\u003c/code\u003e) also apply to it and to \u003ccode\u003ebin/rails test\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\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/skryukov/rails_vite/blob/main/CHANGELOG.md\"\u003erails_vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003erails_vite@0.3.0 / rails-vite-plugin@0.3.0 - 2026-10-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erefreshDelay\u003c/code\u003e plugin option for \u003ccode\u003erails()\u003c/code\u003e and \u003ccode\u003ejsbundling()\u003c/code\u003e. It waits the given milliseconds after the last \u003ccode\u003erefresh\u003c/code\u003e change before the full-page reload, and sends one reload for a burst of changes. Use it when Rails sees template changes late, e.g. with \u003ccode\u003eEventedFileUpdateChecker\u003c/code\u003e. Default: \u003ccode\u003e0\u003c/code\u003e, which reloads at once as before (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/45\"\u003e#45\u003c/a\u003e) ([\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eThe install generator sets \u003ccode\u003e\u0026quot;type\u0026quot;: \u0026quot;module\u0026quot;\u003c/code\u003e in package.json — Vite and rails-vite-plugin are ESM-only, and without it Node fails to load \u003ccode\u003evite.config.ts\u003c/code\u003e under npm/pnpm/yarn. When package.json pins another \u003ccode\u003etype\u003c/code\u003e, the generator emits \u003ccode\u003evite.config.mts\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aubepkg/aube\"\u003eaube\u003c/a\u003e package manager support: an \u003ccode\u003eaube-lock.yaml\u003c/code\u003e makes the rake tasks, auto build and the install generator use aube, even next to another lockfile left over from \u003ccode\u003eaube import\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/41\"\u003e#41\u003c/a\u003e) ([\u003ca href=\"https://github.com/beauraF\"\u003e\u003ccode\u003e@​beauraF\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.vite_executable\u003c/code\u003e sets the executable for \u003ccode\u003erake vite:build\u003c/code\u003e, test builds and auto builds, so Vite-compatible CLIs with another name, such as Vite+'s \u003ccode\u003evp\u003c/code\u003e, work. The default is \u003ccode\u003evite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) ([\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto_build_paths\u003c/code\u003e config option: extra paths and globs, relative to \u003ccode\u003eRails.root\u003c/code\u003e, that auto build checks for changes besides \u003ccode\u003esourceDir\u003c/code\u003e (for example \u003ccode\u003eapp/views\u003c/code\u003e for Tailwind). It defaults to the root-level Vite, PostCSS, Tailwind and TypeScript configs, \u003ccode\u003epackage.json\u003c/code\u003e, and the lockfile, so changes to them now trigger a rebuild (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/46\"\u003e#46\u003c/a\u003e) ([\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.build_mode\u003c/code\u003e sets the \u003ccode\u003e--mode\u003c/code\u003e for \u003ccode\u003evite build\u003c/code\u003e in \u003ccode\u003erake vite:build\u003c/code\u003e and auto builds. The default is unchanged (\u003ccode\u003e\u0026quot;test\u0026quot;\u003c/code\u003e in the test environment, no \u003ccode\u003e--mode\u003c/code\u003e elsewhere); set it to \u003ccode\u003enil\u003c/code\u003e to pass no \u003ccode\u003e--mode\u003c/code\u003e. The gem now passes its \u003ccode\u003ebuild_dir\u003c/code\u003e to the plugin in \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e, so the build directory no longer depends on the mode. Upgrade \u003ccode\u003erails-vite-plugin\u003c/code\u003e together with the gem: older plugin versions ignore \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e. With \u003ccode\u003ebuild_mode\u003c/code\u003e set, \u003ccode\u003evite:build\u003c/code\u003e runs \u003ccode\u003evite build --mode\u003c/code\u003e directly instead of the package.json \u003ccode\u003ebuild\u003c/code\u003e script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/49\"\u003e#49\u003c/a\u003e) ([\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evite_asset_url(name)\u003c/code\u003e returns a full URL for a Vite asset, like Rails' \u003ccode\u003easset_url\u003c/code\u003e, for mailers and other places that need an absolute URL (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003erails-vite-plugin\u003c/code\u003e requires Vite 7 or newer and Node.js 20.19+ or 22.12+, like Vite 7 itself. It failed to load on Vite 5 and 6 already ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eVite asset URLs are built with Rails' \u003ccode\u003epath_to_asset\u003c/code\u003e, so \u003ccode\u003easset_host\u003c/code\u003e works as it does for other Rails assets: procs that take the request, \u003ccode\u003e%d\u003c/code\u003e hosts and per-controller hosts. Mailers now use \u003ccode\u003econfig.action_mailer.asset_host\u003c/code\u003e (or \u003ccode\u003econfig.asset_host\u003c/code\u003e) instead of the controller's. With \u003ccode\u003erelative_url_root\u003c/code\u003e, tags now include the prefix; set Vite's \u003ccode\u003ebase\u003c/code\u003e to match (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erake vite:build\u003c/code\u003e loads the Rails environment first, so \u003ccode\u003econfig.rails_vite\u003c/code\u003e settings from initializers (such as \u003ccode\u003evite_executable\u003c/code\u003e) also apply to it and to \u003ccode\u003ebin/rails test\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) ([\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eThe install generator writes \u003ccode\u003evite dev\u003c/code\u003e instead of \u003ccode\u003evite\u003c/code\u003e to \u003ccode\u003eProcfile.dev\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) ([\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003evite:build\u003c/code\u003e (and therefore \u003ccode\u003eassets:precompile\u003c/code\u003e) runs the package.json \u003ccode\u003ebuild\u003c/code\u003e script when one exists, so \u003ccode\u003e\u0026quot;build\u0026quot;: \u0026quot;vite build \u0026amp;\u0026amp; vite build --ssr\u0026quot;\u003c/code\u003e produces both client and SSR bundles on deploy. Apps without a \u003ccode\u003ebuild\u003c/code\u003e script keep the bare \u003ccode\u003evite build\u003c/code\u003e. If package.json already has a \u003ccode\u003ebuild\u003c/code\u003e script (e.g. one left over from jsbundling-rails), change it to \u003ccode\u003e\u0026quot;build\u0026quot;: \u0026quot;vite build\u0026quot;\u003c/code\u003e or remove it before upgrading; otherwise precompile succeeds without Vite assets and production raises \u003ccode\u003eRailsVite::MissingManifestError\u003c/code\u003e. The install generator warns about such a script. Test builds and auto-builds always use the bare command, since their extra flags (\u003ccode\u003e--mode test\u003c/code\u003e, \u003ccode\u003e--logLevel warn\u003c/code\u003e) would only reach the last command of a compound script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFix...\n\n_Description has been truncated_","html_url":"https://github.com/egio12/rails-astryx-starter-kit/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/egio12%2Frails-astryx-starter-kit/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"},{"uuid":"5797909442","node_id":"PR_kwDOQ8VhiM8AAAABHxZxDQ","number":58,"state":"closed","title":"Bump the bundler group with 8 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-25T04:14:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-11T04:21:01.000Z","updated_at":"2026-10-25T04:14:38.000Z","time_to_close":1209213,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":8,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.25.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.26","new_version":"0.1.27","repository_url":"https://github.com/basecamp/thruster"},{"name":"selenium-webdriver","old_version":"4.47.0","new_version":"4.50.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"simplecov","old_version":"1.1.1","new_version":"1.3.2","repository_url":"https://github.com/simplecov-ruby/simplecov"},{"name":"twilio-ruby","old_version":"7.11.1","new_version":"7.11.3","repository_url":"https://github.com/twilio/twilio-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.3` | `1.7.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.25.0` | `1.26.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.26` | `0.1.27` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.47.0` | `4.50.0` |\n| [simplecov](https://github.com/simplecov-ruby/simplecov) | `1.1.1` | `1.3.2` |\n| [twilio-ruby](https://github.com/twilio/twilio-ruby) | `7.11.1` | `7.11.3` |\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.3 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\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/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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.25.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.25.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.26 to 0.1.27\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.27 / 2026-09-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependencies (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump golang.org/x/crypto to v0.56.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.1, update dependencies, add make check (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\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/basecamp/thruster/commit/669643fa3ebc6c4daaba8b5210561f03e33f8c53\"\u003e\u003ccode\u003e669643f\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/38d3721e489a969fcabeb14b6471d33237f077f1\"\u003e\u003ccode\u003e38d3721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/155\"\u003e#155\u003c/a\u003e from erikthoreson24/version-0.1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/099297026d09ae63a57cc4b472ec945f1c956c85\"\u003e\u003ccode\u003e0992970\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/72796d797395a4eb5746828bbc12760c6ab95a4b\"\u003e\u003ccode\u003e72796d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e from basecamp/deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/0864e8a6df6cbc97cff90a5a9ebd26298431f6be\"\u003e\u003ccode\u003e0864e8a\u003c/code\u003e\u003c/a\u003e Use http.Transport for h2c test client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/80e89ee10855d0bd02a1629bcd031d903b7c64a1\"\u003e\u003ccode\u003e80e89ee\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/22a99787322af951e6302513074338d5ea69472d\"\u003e\u003ccode\u003e22a9978\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e from erikthoreson24/fix/bump-x-crypto-0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b1865186badbd7a7565910b8df0b52a8f635d5df\"\u003e\u003ccode\u003eb186518\u003c/code\u003e\u003c/a\u003e Bump golang.org/x/crypto to v0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/3ef851682cd2a031294b7a2ac5e012a8bace0cfd\"\u003e\u003ccode\u003e3ef8516\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e from basecamp/go-1.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/fa31b967c1c64e007ef9468e8da1a608491656dc\"\u003e\u003ccode\u003efa31b96\u003c/code\u003e\u003c/a\u003e Add make check to run go vet and govulncheck\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.26...v0.1.27\"\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.47.0 to 4.50.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.50.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\u003cul\u003e\n\u003cli\u003e[dotnet] [bidi] Add image size to capture screenshots 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/18016\"\u003eSeleniumHQ/selenium#18016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] only need to run nightly Grid release after production release 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/18013\"\u003eSeleniumHQ/selenium#18013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] merge the release PR automatically once required checks pass 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/18018\"\u003eSeleniumHQ/selenium#18018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] move Selenium Manager publishing into sm-snapshot.yml so releases no longer skip it 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/18017\"\u003eSeleniumHQ/selenium#18017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Network async/event API proposal 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/17685\"\u003eSeleniumHQ/selenium#17685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Behavioral contract for the low-level WebDriver BiDi layer 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/17786\"\u003eSeleniumHQ/selenium#17786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove deprecated methods from 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/17993\"\u003eSeleniumHQ/selenium#17993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] cover BiDi key, wheel, release, and setFiles scenarios in the Input spec 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/18022\"\u003eSeleniumHQ/selenium#18022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] replace the blanket remote BiDi test suite with an opt-in list 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/18023\"\u003eSeleniumHQ/selenium#18023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] always use the latest Selenium Manager code when needed for tests 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/18024\"\u003eSeleniumHQ/selenium#18024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] cleanup for ruff b904 raise from  by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18030\"\u003eSeleniumHQ/selenium#18030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py]: Apply ClientConfig \u003ccode\u003euser_agent\u003c/code\u003e and \u003ccode\u003eextra_headers\u003c/code\u003e per connection by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17944\"\u003eSeleniumHQ/selenium#17944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add bazel flag to support cross-compiling all Selenium Manager binaries from Linux or Mac 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/18029\"\u003eSeleniumHQ/selenium#18029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] render WebSocket debug log lines lazily by \u003ca href=\"https://github.com/ikraamg\"\u003e\u003ccode\u003e@​ikraamg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18033\"\u003eSeleniumHQ/selenium#18033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Implement driver methods for installing and uninstalling web extensions via BiDi 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/17879\"\u003eSeleniumHQ/selenium#17879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Parse each BiDi command response only once by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18011\"\u003eSeleniumHQ/selenium#18011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run the requirements lock check on RBE with a platform-agnostic lock 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/18039\"\u003eSeleniumHQ/selenium#18039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Support DestinationFolder optional arg in StartScreencast 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/18042\"\u003eSeleniumHQ/selenium#18042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add Emulation.SetTextLayoutModeOverride 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/18043\"\u003eSeleniumHQ/selenium#18043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] use RBE to prepare and build the artifacts for releases 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/18041\"\u003eSeleniumHQ/selenium#18041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] move complete GitHub Actions test suite to nightly and run only high value smoke tests for PRs 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/18040\"\u003eSeleniumHQ/selenium#18040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type BaseOptions.set_capability parameters by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18027\"\u003eSeleniumHQ/selenium#18027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Use one HttpClient.Factory inside one RemoteWebDriver instance 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/18038\"\u003eSeleniumHQ/selenium#18038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Ignore exec.log recursively 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/18049\"\u003eSeleniumHQ/selenium#18049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] fetch the changelog history since the previous release tag instead of computing a depth 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/18044\"\u003eSeleniumHQ/selenium#18044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] prefix workflow names by how they run so the Actions sidebar groups them 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/18053\"\u003eSeleniumHQ/selenium#18053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run grid specific tests on windows during scheduled tests 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/18054\"\u003eSeleniumHQ/selenium#18054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate webref_cddl.bzl from the BiDi spec's external specifications list 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/18055\"\u003eSeleniumHQ/selenium#18055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] update BiDi schema generation to include external spec methods missing due to upstream spec omissions 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/18057\"\u003eSeleniumHQ/selenium#18057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type WebElement.get_attribute name by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18028\"\u003eSeleniumHQ/selenium#18028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL 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/18060\"\u003eSeleniumHQ/selenium#18060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [build] Include package license/notice files 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/18048\"\u003eSeleniumHQ/selenium#18048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet][java][js][py][rb] remove deprecated Firefox profile extension and cert methods 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/18066\"\u003eSeleniumHQ/selenium#18066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] resolve exceptions from the W3C state in ErrorHandler by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18059\"\u003eSeleniumHQ/selenium#18059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Fix the two CDDL repin fallouts breaking every Python target 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/18068\"\u003eSeleniumHQ/selenium#18068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Eliminate BiDi context on hot path 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/18069\"\u003eSeleniumHQ/selenium#18069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] [dotnet] [java] declare Firefox default preferences in each binding 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/18070\"\u003eSeleniumHQ/selenium#18070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema 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/18071\"\u003eSeleniumHQ/selenium#18071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] fix flaky tests 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/18073\"\u003eSeleniumHQ/selenium#18073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Align BiDi Generator with the low-level contract by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17973\"\u003eSeleniumHQ/selenium#17973\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.50.0 (2026-09-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v152, v153, v154\u003c/li\u003e\n\u003cli\u003erender WebSocket debug log lines lazily (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18033\"\u003e#18033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement driver methods for installing and uninstalling web extensions via BiDi (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17879\"\u003e#17879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18046\"\u003e#18046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] replace the BiDi KNOWN_INCOMPLETE allowlist with spec-shaped CDDL overlays (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18057\"\u003e#18057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18060\"\u003e#18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated Firefox profile extension and cert methods (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18066\"\u003e#18066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.48.0 (2026-08-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v150, v151, v152\u003c/li\u003e\n\u003cli\u003eadd low-level BiDi protocol integration specs (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17878\"\u003e#17878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17910\"\u003e#17910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix silent hang on oversized WebSocket frames (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17655\"\u003e#17655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ealways reject a missing required inbound BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17936\"\u003e#17936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eaccept a whole-valued float for an integer BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17939\"\u003e#17939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject an inbound BiDi scalar outside its union's declared arms (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17947\"\u003e#17947\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/ca2a96694916c818db1c388b7a1c14cf3380c098\"\u003e\u003ccode\u003eca2a966\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.50.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18105\"\u003e#18105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27ef65761b92bc943e5aae804459421727d1cf78\"\u003e\u003ccode\u003e27ef657\u003c/code\u003e\u003c/a\u003e [rb] add bidi tests for recent spec updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/76febdc715a93c9256eb2ac35624c406bc2159b7\"\u003e\u003ccode\u003e76febdc\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18082\"\u003e#18082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6f841aa1f8f3b73f10af195b9f2b8734dd7b81f7\"\u003e\u003ccode\u003e6f841aa\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a288e07fe4e5540bbf67c7d42cbaf66a1c61de\"\u003e\u003ccode\u003e52a288e\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/acd7ce82c602b9926ae65f1b1fb50af75b09f084\"\u003e\u003ccode\u003eacd7ce8\u003c/code\u003e\u003c/a\u003e [rb] remove stale Windows pending guard from Firefox signed directory addon test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/748477d0fcb941b8c7d50fc5d7d2ffb69ffe1c96\"\u003e\u003ccode\u003e748477d\u003c/code\u003e\u003c/a\u003e [rb] remove dead headless, browser and remote config_settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6ff202add86b748bb87e75655b1cdc0aa2d144a2\"\u003e\u003ccode\u003e6ff202a\u003c/code\u003e\u003c/a\u003e [rb] fix flaky test by not applying timeouts to the setup navigation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27c86e2055d5ecffdfaf6df1a15442b36fa6fcbb\"\u003e\u003ccode\u003e27c86e2\u003c/code\u003e\u003c/a\u003e [build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/59b28c40ef9c92d95abc6312f36da23cc9f444ef\"\u003e\u003ccode\u003e59b28c4\u003c/code\u003e\u003c/a\u003e [rb] fix nightly web extension spec failures on Safari and Windows\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplecov` from 1.1.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplecov-ruby/simplecov/releases\"\u003esimplecov's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report is generated again on Rails 8.1.4 when a \u003ccode\u003eparallelize_teardown\u003c/code\u003e hook calls \u003ccode\u003eSimpleCov.result\u003c/code\u003e. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops \u003ccode\u003eCoverage\u003c/code\u003e, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1308\"\u003esimplecov-ruby/simplecov#1308\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.3.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e compiles templates on Rails main again. Rails removed \u003ccode\u003eActionView::Template.registered_template_handler\u003c/code\u003e; the lookup reads \u003ccode\u003eActionView::Template::Handlers.template_handlers\u003c/code\u003e and still skips an extension with no handler. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1300\"\u003esimplecov-ruby/simplecov#1300\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e works again on JRuby on Windows, where 1.3.0 raised \u003ccode\u003eLoadError: Could not open library '.../libprism.dll'\u003c/code\u003e. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1299\"\u003esimplecov-ruby/simplecov#1299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov affected --run\u003c/code\u003e works on JRuby on Windows, where it crashed with \u003ccode\u003eNoMethodError\u003c/code\u003e because \u003ccode\u003eProcess.wait2\u003c/code\u003e answers no status there. On that platform the runner starts through \u003ccode\u003eKernel#system\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e refuses a symlink that points outside the report on JRuby on Windows too. JRuby's \u003ccode\u003eFile.realpath\u003c/code\u003e follows no symlinks there, so \u003ccode\u003eserve\u003c/code\u003e would have served the file the link pointed to, and \u003ccode\u003esimplecov clean\u003c/code\u003e and the \u003ccode\u003ecoverage.json\u003c/code\u003e lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003cp\u003eSimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates,\nteaches \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e to annotate CI hosts natively, and settles what the report says\nabout files and groups that hold nothing.\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax or as Ruby comments on a code line.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--annotate KIND\u003c/code\u003e turns \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of padding it at 100%, and the \u003ccode\u003erails\u003c/code\u003e profile declares its groups alphabetically.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e is the only way to measure a template now: a \u003ccode\u003ecover\u003c/code\u003e glob that matches one warns and leaves it out, and \u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods.\u003c/li\u003e\n\u003cli\u003eA file with nothing to cover reports the same percentage in the file list as it does in the source view.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.\u003c/li\u003e\n\u003cli\u003eA group that matched no files disappears from the HTML report, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile's group tabs come out in alphabetical order, so an existing project's tabs move.\u003c/li\u003e\n\u003cli\u003eA never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob matching \u003ccode\u003e.erb\u003c/code\u003e, \u003ccode\u003e.haml\u003c/code\u003e, or \u003ccode\u003e.slim\u003c/code\u003e warns and drops those files from the report. Measure templates with \u003ccode\u003ecover_views\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage.json\u003c/code\u003e stays at schema 1.3, unchanged by this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (\u003ccode\u003erequired_ruby_version \u0026gt;= 3.3\u003c/code\u003e), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: \u003ccode\u003eStaticCoverageExtractor.available?\u003c/code\u003e and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax (\u003ccode\u003e\u0026lt;%# simplecov:disable %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# simplecov:disable\u003c/code\u003e, \u003ccode\u003e/ simplecov:disable\u003c/code\u003e) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB \u003ccode\u003e%\u0026gt;\u003c/code\u003e opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim \u003ccode\u003e- # simplecov:disable\u003c/code\u003e line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the \u003ccode\u003econfirmable\u003c/code\u003e link it never renders instead of carrying it as uncovered. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1295\"\u003esimplecov-ruby/simplecov#1295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file all skip them, so the \u003ccode\u003erails\u003c/code\u003e profile's \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, and \u003ccode\u003eViews\u003c/code\u003e tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (\u003ccode\u003eDir[\u0026quot;app/*\u0026quot;].each { |dir| group File.basename(dir).capitalize, dir }\u003c/code\u003e) without checking each one for Ruby files first. A \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1293\"\u003esimplecov-ruby/simplecov#1293\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile declares its groups in alphabetical order: \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eControllers\u003c/code\u003e, \u003ccode\u003eHelpers\u003c/code\u003e, \u003ccode\u003eJobs\u003c/code\u003e, \u003ccode\u003eLibraries\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, \u003ccode\u003eModels\u003c/code\u003e, \u003ccode\u003eViews\u003c/code\u003e. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e annotate CI hosts natively. \u003ccode\u003e--annotate KIND\u003c/code\u003e on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (\u003ccode\u003epatch\u003c/code\u003e adds one per uncovered touched branch or method when the report measured them): \u003ccode\u003egithub\u003c/code\u003e emits \u003ccode\u003e::warning\u003c/code\u003e workflow commands, \u003ccode\u003egitlab\u003c/code\u003e a Code Quality report for the \u003ccode\u003ecodequality\u003c/code\u003e artifact, \u003ccode\u003erdjson\u003c/code\u003e reviewdog's Diagnostic Format for any host reviewdog posts to, \u003ccode\u003eazure\u003c/code\u003e \u003ccode\u003e##vso[task.logissue]\u003c/code\u003e logging commands, \u003ccode\u003eteamcity\u003c/code\u003e code inspection service messages, and \u003ccode\u003ebuildkite\u003c/code\u003e the Markdown body for \u003ccode\u003ebuildkite-agent annotate\u003c/code\u003e. \u003ccode\u003euncovered\u003c/code\u003e previously offered only \u003ccode\u003egithub\u003c/code\u003e, and its annotations now name the chosen criterion the way \u003ccode\u003epatch\u003c/code\u003e's do. Nothing else reaches stdout in that mode and \u003ccode\u003epatch --minimum\u003c/code\u003e still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/902\"\u003esimplecov-ruby/simplecov#902\u003c/a\u003e), from a time when simulation recorded no tuples for such a file and an empty set really did mean \u0026quot;nobody knows\u0026quot;. Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1296\"\u003esimplecov-ruby/simplecov#1296\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob that matches a template warns and leaves it out instead of simulating it. Simulation classifies lines as Ruby and parses for branches, so a swept-in template appeared with a comment counted as a missed line, an \u003ccode\u003e#id\u003c/code\u003e tag counted as never relevant, and no branches at all. The warning names the templates and points at \u003ccode\u003ecover_views\u003c/code\u003e, which compiles them and measures the real thing.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e toggle works in a template's own comment syntax (\u003ccode\u003e\u0026lt;%# :nocov: %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# :nocov:\u003c/code\u003e, \u003ccode\u003e/ :nocov:\u003c/code\u003e) and emits its deprecation warning there. The matcher read raw lines and needed the line to begin with \u003ccode\u003e#\u003c/code\u003e, so those forms were silently ignored while the Ruby-comment form inside an ERB code tag happened to work. The matcher now reads the same extracted Ruby the directives do.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods. The filter keeps a Coverage entry only when Prism finds a matching construct in the static source, which for a template measured with \u003ccode\u003ecover_views\u003c/code\u003e meant parsing ERB, Haml, or Slim as Ruby. That usually fails and the entry is kept, but a template whose text happens to parse (a Haml or Slim \u003ccode\u003e#id\u003c/code\u003e tag reads as a Ruby comment, and so does an ERB text line starting with \u003ccode\u003e#\u003c/code\u003e) yielded a confident wrong parse, and the template's own conditionals vanished from branch coverage. Templates now skip the parse, since everything a template reports is eval-generated by construction and the filter has nothing to distinguish there.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003cp\u003eSimpleCov 1.2 adds change-focused coverage, per-test attribution, production coverage, and a substantially expanded\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/simplecov-ruby/simplecov/blob/main/CHANGELOG.md\"\u003esimplecov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.2 (2026-09-30)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report is generated again on Rails 8.1.4 when a \u003ccode\u003eparallelize_teardown\u003c/code\u003e hook calls \u003ccode\u003eSimpleCov.result\u003c/code\u003e. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops \u003ccode\u003eCoverage\u003c/code\u003e, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1308\"\u003esimplecov-ruby/simplecov#1308\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.3.1 (2026-09-24)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e compiles templates on Rails main again. Rails removed \u003ccode\u003eActionView::Template.registered_template_handler\u003c/code\u003e; the lookup reads \u003ccode\u003eActionView::Template::Handlers.template_handlers\u003c/code\u003e and still skips an extension with no handler. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1300\"\u003esimplecov-ruby/simplecov#1300\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e works again on JRuby on Windows, where 1.3.0 raised \u003ccode\u003eLoadError: Could not open library '.../libprism.dll'\u003c/code\u003e. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1299\"\u003esimplecov-ruby/simplecov#1299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov affected --run\u003c/code\u003e works on JRuby on Windows, where it crashed with \u003ccode\u003eNoMethodError\u003c/code\u003e because \u003ccode\u003eProcess.wait2\u003c/code\u003e answers no status there. On that platform the runner starts through \u003ccode\u003eKernel#system\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e refuses a symlink that points outside the report on JRuby on Windows too. JRuby's \u003ccode\u003eFile.realpath\u003c/code\u003e follows no symlinks there, so \u003ccode\u003eserve\u003c/code\u003e would have served the file the link pointed to, and \u003ccode\u003esimplecov clean\u003c/code\u003e and the \u003ccode\u003ecoverage.json\u003c/code\u003e lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.3.0 (2026-09-12)\u003c/h1\u003e\n\u003cp\u003eSimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates,\nteaches \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e to annotate CI hosts natively, and settles what the report says\nabout files and groups that hold nothing.\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax or as Ruby comments on a code line.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--annotate KIND\u003c/code\u003e turns \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of padding it at 100%, and the \u003ccode\u003erails\u003c/code\u003e profile declares its groups alphabetically.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e is the only way to measure a template now: a \u003ccode\u003ecover\u003c/code\u003e glob that matches one warns and leaves it out, and \u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods.\u003c/li\u003e\n\u003cli\u003eA file with nothing to cover reports the same percentage in the file list as it does in the source view.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.\u003c/li\u003e\n\u003cli\u003eA group that matched no files disappears from the HTML report, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile's group tabs come out in alphabetical order, so an existing project's tabs move.\u003c/li\u003e\n\u003cli\u003eA never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob matching \u003ccode\u003e.erb\u003c/code\u003e, \u003ccode\u003e.haml\u003c/code\u003e, or \u003ccode\u003e.slim\u003c/code\u003e warns and drops those files from the report. Measure templates with \u003ccode\u003ecover_views\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage.json\u003c/code\u003e stays at schema 1.3, unchanged by this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (\u003ccode\u003erequired_ruby_version \u0026gt;= 3.3\u003c/code\u003e), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: \u003ccode\u003eStaticCoverageExtractor.available?\u003c/code\u003e and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax (\u003ccode\u003e\u0026lt;%# simplecov:disable %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# simplecov:disable\u003c/code\u003e, \u003ccode\u003e/ simplecov:disable\u003c/code\u003e) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB \u003ccode\u003e%\u0026gt;\u003c/code\u003e opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim \u003ccode\u003e- # simplecov:disable\u003c/code\u003e line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the \u003ccode\u003econfirmable\u003c/code\u003e link it never renders instead of carrying it as uncovered. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1295\"\u003esimplecov-ruby/simplecov#1295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file all skip them, so the \u003ccode\u003erails\u003c/code\u003e profile's \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, and \u003ccode\u003eViews\u003c/code\u003e tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (\u003ccode\u003eDir[\u0026quot;app/*\u0026quot;].each { |dir| group File.basename(dir).capitalize, dir }\u003c/code\u003e) without checking each one for Ruby files first. A \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1293\"\u003esimplecov-ruby/simplecov#1293\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile declares its groups in alphabetical order: \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eControllers\u003c/code\u003e, \u003ccode\u003eHelpers\u003c/code\u003e, \u003ccode\u003eJobs\u003c/code\u003e, \u003ccode\u003eLibraries\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, \u003ccode\u003eModels\u003c/code\u003e, \u003ccode\u003eViews\u003c/code\u003e. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e annotate CI hosts natively. \u003ccode\u003e--annotate KIND\u003c/code\u003e on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (\u003ccode\u003epatch\u003c/code\u003e adds one per uncovered touched branch or method when the report measured them): \u003ccode\u003egithub\u003c/code\u003e emits \u003ccode\u003e::warning\u003c/code\u003e workflow commands, \u003ccode\u003egitlab\u003c/code\u003e a Code Quality report for the \u003ccode\u003ecodequality\u003c/code\u003e artifact, \u003ccode\u003erdjson\u003c/code\u003e reviewdog's Diagnostic Format for any host reviewdog posts to, \u003ccode\u003eazure\u003c/code\u003e \u003ccode\u003e##vso[task.logissue]\u003c/code\u003e logging commands, \u003ccode\u003eteamcity\u003c/code\u003e code inspection service messages, and \u003ccode\u003ebuildkite\u003c/code\u003e the Markdown body for \u003ccode\u003ebuildkite-agent annotate\u003c/code\u003e. \u003ccode\u003euncovered\u003c/code\u003e previously offered only \u003ccode\u003egithub\u003c/code\u003e, and its annotations now name the chosen criterion the way \u003ccode\u003epatch\u003c/code\u003e's do. Nothing else reaches stdout in that mode and \u003ccode\u003epatch --minimum\u003c/code\u003e still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/902\"\u003esimplecov-ruby/simplecov#902\u003c/a\u003e), from a time when simulation recorded no tuples for such a file and an empty set really did mean \u0026quot;nobody knows\u0026quot;. Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1296\"\u003esimplecov-ruby/simplecov#1296\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/simplecov-ruby/simplecov/commit/52a8754ccc443b0f049493ec7f06920bdcf6ad28\"\u003e\u003ccode\u003e52a8754\u003c/code\u003e\u003c/a\u003e Bump version to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/4fb4ae1f2c92f0fdcbb0a4d80217706d46e8a217\"\u003e\u003ccode\u003e4fb4ae1\u003c/code\u003e\u003c/a\u003e Format a result collected before exit on Rails 8.1.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/14767413eeb89dab0051cf0b914725d9db5df252\"\u003e\u003ccode\u003e1476741\u003c/code\u003e\u003c/a\u003e bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/343a933b72ac5d8cacc11e7bccf1f881a75a6fd1\"\u003e\u003ccode\u003e343a933\u003c/code\u003e\u003c/a\u003e Stop leaking a flush thread in the forked-child production specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e64fcaa0a540f88d3e9bc79db0ec2abe08950132\"\u003e\u003ccode\u003ee64fcaa\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.323.0 to 1.325.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/cb8bd83fd13b3b7b863c149d487cdbd8264393fc\"\u003e\u003ccode\u003ecb8bd83\u003c/code\u003e\u003c/a\u003e Bump oxlint from 1.83.0 to 1.85.0 in /html_frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/4ee7894dd4feb3c18a30bb6d487e0266aed3318e\"\u003e\u003ccode\u003e4ee7894\u003c/code\u003e\u003c/a\u003e Bump version to 1.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/486e55e92a46b47ebe52ea97742105360fbe8c24\"\u003e\u003ccode\u003e486e55e\u003c/code\u003e\u003c/a\u003e bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/d2a62a86cd0fdba0813f0bc71b878c5c1aaeea29\"\u003e\u003ccode\u003ed2a62a8\u003c/code\u003e\u003c/a\u003e Resolve paths and wait on runners correctly on JRuby on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/3a2e08eb02983bdc6ba92ee4a520231cd6ad97bf\"\u003e\u003ccode\u003e3a2e08e\u003c/code\u003e\u003c/a\u003e Load Prism only when the static extractor runs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `twilio-ruby` from 7.11.1 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/twilio/twilio-ruby/releases\"\u003etwilio-ruby's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.11.3\u003c/h2\u003e\n\u003ch2\u003e\u003cstrong\u003eRelease Notes\u003c/strong\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eLibrary - Fix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[PR \u003ca href=\"https://redirect.github.com/twilio/twilio-ruby/issues/809\"\u003e#809\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/twilio/twilio-ruby/pull/809\"\u003etwilio/twilio-ruby#809\u003c/a\u003e): validate webhook signatures on percent-encoded request paths. Thanks to \u003ca href=\"https://github.com/manisha1997\"\u003e\u003ccode\u003e@​manisha1997\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTwiml\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eaudio_format\u003c/code\u003e and \u003ccode\u003esample_rate\u003c/code\u003e to Stream ...\n\n_Description has been truncated_","html_url":"https://github.com/josh-levinson/still_on/pull/58","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/josh-levinson%2Fstill_on/issues/58","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/58/packages"},{"uuid":"5709963397","node_id":"PR_kwDOULC95s8AAAABGrbR3A","number":21,"state":"closed","title":"build(deps): bump the ruby-starters group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-13T04:52:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-05T09:55:49.000Z","updated_at":"2026-10-13T04:52:55.000Z","time_to_close":673022,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"ruby-starters","update_count":4,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"image_processing","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/janko/image_processing"},{"name":"brakeman","old_version":"8.0.6","new_version":"8.1.0","repository_url":"https://github.com/presidentbeef/brakeman"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-starters group with 4 updates in the /languages/ruby/rails directory: [rails](https://github.com/rails/rails), [solid_cable](https://github.com/rails/solid_cable), [image_processing](https://github.com/janko/image_processing) and [brakeman](https://github.com/presidentbeef/brakeman).\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `image_processing` from 2.1.0 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/janko/image_processing/blob/master/CHANGELOG.md\"\u003eimage_processing's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0 (2026-09-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSave in the \u003ccode\u003e#convert\u003c/code\u003e format when the destination path has no extension, such as a \u003ccode\u003e/dev/fd/N\u003c/code\u003e path (thanks to \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/d9737fbf8153c4b6d4869f9b943af063165e3c59\"\u003e\u003ccode\u003ed9737fb\u003c/code\u003e\u003c/a\u003e Set version to 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/8f7b53839b922f26407d07d62fbfee7d01d28a6e\"\u003e\u003ccode\u003e8f7b538\u003c/code\u003e\u003c/a\u003e Handle missing AVIF encoder in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/92086c5d3cad3de1b7c78d62296417a493d938eb\"\u003e\u003ccode\u003e92086c5\u003c/code\u003e\u003c/a\u003e Handle AVIF format on extensionless destinations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/5827e8364b626fd7110748251c6123d96caee6fc\"\u003e\u003ccode\u003e5827e83\u003c/code\u003e\u003c/a\u003e Save in the \u003ccode\u003e#convert\u003c/code\u003e format to an extensionless destination (\u003ca href=\"https://redirect.github.com/janko/image_processing/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/janko/image_processing/compare/v2.1.0...v2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brakeman` from 8.0.6 to 8.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/releases\"\u003ebrakeman's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate SonarQube report to use generic issue format (\u003ca href=\"https://github.com/fffx\"\u003e\u003ccode\u003e@​fffx\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude regex code in validation warnings (\u003ca href=\"https://github.com/eliotsykes\"\u003e\u003ccode\u003e@​eliotsykes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck validation regexes in non-activerecord models (\u003ca href=\"https://github.com/eliotsykes\"\u003e\u003ccode\u003e@​eliotsykes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip top-level vendor directory before recursive globbing (\u003ca href=\"https://github.com/ronocod\"\u003e\u003ccode\u003e@​ronocod\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.1+ positional enum syntax in SQL injection check (\u003ca href=\"https://github.com/cubasepp\"\u003e\u003ccode\u003e@​cubasepp\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eHaml::AttributeBuilder.build_class\u003c/code\u003e as an escaped output (\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string error (\u003ca href=\"https://github.com/shaicoleman\"\u003e\u003ccode\u003e@​shaicoleman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBetter help and error message for \u003ccode\u003e--ensure-latest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2036\"\u003e#2036\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/presidentbeef/brakeman/blob/main/CHANGES.md\"\u003ebrakeman's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e8.1.0 - 2026-09-30\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter help and error message for \u003ccode\u003e--ensure-latest\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix frozen string error (Shai Coleman)\u003c/li\u003e\n\u003cli\u003eUpdate Sonar report format (fangxing)\u003c/li\u003e\n\u003cli\u003eFix frozen \u003ccode\u003esrc\u003c/code\u003e string error\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eHaml::AttributeBuilder.build_class\u003c/code\u003e as an escaped output (Yuriy Tumanov)\u003c/li\u003e\n\u003cli\u003eInclude regex code in validation warnings (Eliot Sykes)\u003c/li\u003e\n\u003cli\u003eCheck validation regexes in non-activerecord models (Eliot Sykes)\u003c/li\u003e\n\u003cli\u003eSkip top-level vendor directory before recursive globbing (Conor O'Donnell)\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.1+ positional enum syntax in SQL injection check (Michael Vogl/Yuriy Tumanov)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c7781648630c789dd1a2f089e94b5d8c463169fb\"\u003e\u003ccode\u003ec778164\u003c/code\u003e\u003c/a\u003e Bump to 8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/4621407a8a63d28508f38f5bb6e7485e8cd326aa\"\u003e\u003ccode\u003e4621407\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/26ba01f0a77b996310c3c2516194fb2e3d5e3547\"\u003e\u003ccode\u003e26ba01f\u003c/code\u003e\u003c/a\u003e Support Rails 7.1+ positional enum syntax in SQL injection check (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2051\"\u003e#2051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/8f04922ad524cf57db87fb878449277693f5d339\"\u003e\u003ccode\u003e8f04922\u003c/code\u003e\u003c/a\u003e Skip top-level vendor directory before recursive globbing (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/f921f01ca318148bfa3d555aa97837847b4079de\"\u003e\u003ccode\u003ef921f01\u003c/code\u003e\u003c/a\u003e Check validation regexes in non-activerecord models (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2053\"\u003e#2053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/d62e919d1aa681ae257b59bc5df54ed211b81aae\"\u003e\u003ccode\u003ed62e919\u003c/code\u003e\u003c/a\u003e Fix CheckValidationRegex overly broad ignores (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2050\"\u003e#2050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/73bbc9961eaf425b2b4e4ecae32e4d375c6fd382\"\u003e\u003ccode\u003e73bbc99\u003c/code\u003e\u003c/a\u003e Recognize Haml::AttributeBuilder.build_class as an escaped output (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2052\"\u003e#2052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/71f8f69a2e1e9df7e3c51c734c5f6feed083f640\"\u003e\u003ccode\u003e71f8f69\u003c/code\u003e\u003c/a\u003e Fix typo in test_format_validation_with_multiline (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/0fd4dbcf8e3aad5c2de3b23eb92e6c9f2bb07e16\"\u003e\u003ccode\u003e0fd4dbc\u003c/code\u003e\u003c/a\u003e Add bundle install step to contributing doc (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/5de415c627af13232b03baeead3bba0161b87fda\"\u003e\u003ccode\u003e5de415c\u003c/code\u003e\u003c/a\u003e Fix ERB frozen \u003ccode\u003esrc\u003c/code\u003e error (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2048\"\u003e#2048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/presidentbeef/brakeman/compare/v8.0.6...v8.1.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/JasonTM17/ForgeBase/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonTM17%2FForgeBase/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"5709449527","node_id":"PR_kwDOSMsD0M8AAAABGrAljw","number":50,"state":"closed","title":"chore(deps): bump the minor-and-patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-13T02:39:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-05T09:16:41.000Z","updated_at":"2026-10-13T02:39:34.000Z","time_to_close":667369,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":5,"packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.25.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"brakeman","old_version":"8.0.6","new_version":"8.1.0","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"lefthook","old_version":"2.1.11","new_version":"2.1.16","repository_url":"https://github.com/evilmartians/lefthook"},{"name":"selenium-webdriver","old_version":"4.48.0","new_version":"4.50.0","repository_url":"https://github.com/SeleniumHQ/selenium"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.25.0` | `1.26.0` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.6` | `8.1.0` |\n| [lefthook](https://github.com/evilmartians/lefthook) | `2.1.11` | `2.1.16` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.48.0` | `4.50.0` |\n\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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.25.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.25.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brakeman` from 8.0.6 to 8.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/releases\"\u003ebrakeman's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate SonarQube report to use generic issue format (\u003ca href=\"https://github.com/fffx\"\u003e\u003ccode\u003e@​fffx\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude regex code in validation warnings (\u003ca href=\"https://github.com/eliotsykes\"\u003e\u003ccode\u003e@​eliotsykes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck validation regexes in non-activerecord models (\u003ca href=\"https://github.com/eliotsykes\"\u003e\u003ccode\u003e@​eliotsykes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip top-level vendor directory before recursive globbing (\u003ca href=\"https://github.com/ronocod\"\u003e\u003ccode\u003e@​ronocod\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.1+ positional enum syntax in SQL injection check (\u003ca href=\"https://github.com/cubasepp\"\u003e\u003ccode\u003e@​cubasepp\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eHaml::AttributeBuilder.build_class\u003c/code\u003e as an escaped output (\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string error (\u003ca href=\"https://github.com/shaicoleman\"\u003e\u003ccode\u003e@​shaicoleman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBetter help and error message for \u003ccode\u003e--ensure-latest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2036\"\u003e#2036\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/presidentbeef/brakeman/blob/main/CHANGES.md\"\u003ebrakeman's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e8.1.0 - 2026-09-30\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter help and error message for \u003ccode\u003e--ensure-latest\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix frozen string error (Shai Coleman)\u003c/li\u003e\n\u003cli\u003eUpdate Sonar report format (fangxing)\u003c/li\u003e\n\u003cli\u003eFix frozen \u003ccode\u003esrc\u003c/code\u003e string error\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eHaml::AttributeBuilder.build_class\u003c/code\u003e as an escaped output (Yuriy Tumanov)\u003c/li\u003e\n\u003cli\u003eInclude regex code in validation warnings (Eliot Sykes)\u003c/li\u003e\n\u003cli\u003eCheck validation regexes in non-activerecord models (Eliot Sykes)\u003c/li\u003e\n\u003cli\u003eSkip top-level vendor directory before recursive globbing (Conor O'Donnell)\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.1+ positional enum syntax in SQL injection check (Michael Vogl/Yuriy Tumanov)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c7781648630c789dd1a2f089e94b5d8c463169fb\"\u003e\u003ccode\u003ec778164\u003c/code\u003e\u003c/a\u003e Bump to 8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/4621407a8a63d28508f38f5bb6e7485e8cd326aa\"\u003e\u003ccode\u003e4621407\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/26ba01f0a77b996310c3c2516194fb2e3d5e3547\"\u003e\u003ccode\u003e26ba01f\u003c/code\u003e\u003c/a\u003e Support Rails 7.1+ positional enum syntax in SQL injection check (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2051\"\u003e#2051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/8f04922ad524cf57db87fb878449277693f5d339\"\u003e\u003ccode\u003e8f04922\u003c/code\u003e\u003c/a\u003e Skip top-level vendor directory before recursive globbing (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/f921f01ca318148bfa3d555aa97837847b4079de\"\u003e\u003ccode\u003ef921f01\u003c/code\u003e\u003c/a\u003e Check validation regexes in non-activerecord models (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2053\"\u003e#2053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/d62e919d1aa681ae257b59bc5df54ed211b81aae\"\u003e\u003ccode\u003ed62e919\u003c/code\u003e\u003c/a\u003e Fix CheckValidationRegex overly broad ignores (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2050\"\u003e#2050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/73bbc9961eaf425b2b4e4ecae32e4d375c6fd382\"\u003e\u003ccode\u003e73bbc99\u003c/code\u003e\u003c/a\u003e Recognize Haml::AttributeBuilder.build_class as an escaped output (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2052\"\u003e#2052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/71f8f69a2e1e9df7e3c51c734c5f6feed083f640\"\u003e\u003ccode\u003e71f8f69\u003c/code\u003e\u003c/a\u003e Fix typo in test_format_validation_with_multiline (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/0fd4dbcf8e3aad5c2de3b23eb92e6c9f2bb07e16\"\u003e\u003ccode\u003e0fd4dbc\u003c/code\u003e\u003c/a\u003e Add bundle install step to contributing doc (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/5de415c627af13232b03baeead3bba0161b87fda\"\u003e\u003ccode\u003e5de415c\u003c/code\u003e\u003c/a\u003e Fix ERB frozen \u003ccode\u003esrc\u003c/code\u003e error (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2048\"\u003e#2048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/presidentbeef/brakeman/compare/v8.0.6...v8.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lefthook` from 2.1.11 to 2.1.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evilmartians/lefthook/releases\"\u003elefthook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.16\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e3ee04318fd06d56a70cc9c90dc8385b19918f520 ci: refactor publishing scripts (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e91407e537b2fa36539506963a33e582dca394798 deps: bump mod and text deps to resolve CVEs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1560\"\u003e#1560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebe6f0ae8793533449cb9a07a253fa9a381e82206 fix: preserve unrelated unstaged changes on conflict (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecf4ef1e19baf0581871f69b40914d64c94ff19d7 fix: test staging fixed files with partially staged\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.1.15\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e2388dde2b31dc9a782e967764046b41b404cece9 feat: propagate forced colors to hook commands via CLICOLOR_FORCE (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1547\"\u003e#1547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e49260b57c2a56bc4d65d09395458bb3ce3c63311 fix(lfs): do not pipe stdin into post-checkout git-lfs hook (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1523\"\u003e#1523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e38bc1c6cef3192a36002d0dcc37973416249c07e fix: quote paths in the generated hook shim (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1509\"\u003e#1509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e0892f5f256ebe162485492af5ca14c2ced45586f fix: remove color blending (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1558\"\u003e#1558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ef1de41cd5cd6a6c5e0179c65e00d5ed6d90078c2 fix: resolve push-files fallback against the remote-tracking ref (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e07ce565bcc73465bc18fb36561b935ee2a53eab6 fix: sanitize slashes in remote ref when building the checkout dir name (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec465ca8ef4fc9ee0695aa4a9530fc404ed838b7a test(cmd): regression for valid fish shell completion output (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1527\"\u003e#1527\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.1.14\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003ev2.1.12\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eb8350fde604197b2422adfc4ae0af080725822b9 ci: fix npm publishing by bumping Node to 24 (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1508\"\u003e#1508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e9fb290d786a0e122fe113b1b49a45bbd0ffa7d28 fix: LEFTHOOK_OUTPUT precedence (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1506\"\u003e#1506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e2f0a9f37cef73e10d95043ba3754329a21850d57 fix: fail the hook when staging fixed files errors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1484\"\u003e#1484\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/evilmartians/lefthook/blob/master/CHANGELOG.md\"\u003elefthook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: test staging fixed files with partially staged by \u003ca href=\"https://github.com/mrexox\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: preserve unrelated unstaged changes on conflict (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1483\"\u003e#1483\u003c/a\u003e) by \u003ca href=\"https://github.com/Sakshamm-Goyal\"\u003e\u003ccode\u003e@​Sakshamm-Goyal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeps: bump mod and text deps to resolve CVEs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1560\"\u003e#1560\u003c/a\u003e) by \u003ca href=\"https://github.com/devindavies\"\u003e\u003ccode\u003e@​devindavies\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: refactor publishing scripts (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1559\"\u003e#1559\u003c/a\u003e) by \u003ca href=\"https://github.com/mrexox\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: do not pipe stdin into post-checkout git-lfs hook (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1523\"\u003e#1523\u003c/a\u003e) by \u003ca href=\"https://github.com/rwinkelman\"\u003e\u003ccode\u003e@​rwinkelman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove color blending (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1558\"\u003e#1558\u003c/a\u003e) by \u003ca href=\"https://github.com/mrexox\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve push-files fallback against the remote-tracking ref (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1485\"\u003e#1485\u003c/a\u003e) by \u003ca href=\"https://github.com/hamodywe\"\u003e\u003ccode\u003e@​hamodywe\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: regression for valid fish shell completion output (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1527\"\u003e#1527\u003c/a\u003e) by \u003ca href=\"https://github.com/rwinkelman\"\u003e\u003ccode\u003e@​rwinkelman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: sanitize slashes in remote ref when building the checkout dir name (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1486\"\u003e#1486\u003c/a\u003e) by \u003ca href=\"https://github.com/hamodywe\"\u003e\u003ccode\u003e@​hamodywe\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: quote paths in the generated hook shim (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1509\"\u003e#1509\u003c/a\u003e) by \u003ca href=\"https://github.com/addielaruee\"\u003e\u003ccode\u003e@​addielaruee\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: propagate forced colors to hook commands via CLICOLOR_FORCE (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1547\"\u003e#1547\u003c/a\u003e) by \u003ca href=\"https://github.com/Yash121l\"\u003e\u003ccode\u003e@​Yash121l\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.13/2.1.14 (2026-09-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: error when --job/--command matches nothing (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1512\"\u003e#1512\u003c/a\u003e) by \u003ca href=\"https://github.com/nityanand123gupta\"\u003e\u003ccode\u003e@​nityanand123gupta\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: disable tty things when stdout is not TTY (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1545\"\u003e#1545\u003c/a\u003e) by \u003ca href=\"https://github.com/mrexox\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document files inheritance for grouped jobs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1536\"\u003e#1536\u003c/a\u003e) by \u003ca href=\"https://github.com/chiliec\"\u003e\u003ccode\u003e@​chiliec\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: force colors when colors are explicitly enabled (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1538\"\u003e#1538\u003c/a\u003e) by \u003ca href=\"https://github.com/Yash121l\"\u003e\u003ccode\u003e@​Yash121l\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve file_types paths from the repo root (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1537\"\u003e#1537\u003c/a\u003e) by \u003ca href=\"https://github.com/Yash121l\"\u003e\u003ccode\u003e@​Yash121l\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: don't force-install hooks from the npm postinstall (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1510\"\u003e#1510\u003c/a\u003e) by \u003ca href=\"https://github.com/hamodywe\"\u003e\u003ccode\u003e@​hamodywe\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: quote template run examples (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/Guflly\"\u003e\u003ccode\u003e@​Guflly\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.12 (2026-08-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: fail the hook when staging fixed files errors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1484\"\u003e#1484\u003c/a\u003e) by \u003ca href=\"https://github.com/teddytennant\"\u003e\u003ccode\u003e@​teddytennant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: LEFTHOOK_OUTPUT precedence (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1506\"\u003e#1506\u003c/a\u003e) by \u003ca href=\"https://github.com/Yuki9814\"\u003e\u003ccode\u003e@​Yuki9814\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix npm publishing by bumping Node to 24 (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1508\"\u003e#1508\u003c/a\u003e) by \u003ca href=\"https://github.com/mariokresic\"\u003e\u003ccode\u003e@​mariokresic\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/evilmartians/lefthook/commit/433e6b9067d5d138bf63b47403e0df8895a40e33\"\u003e\u003ccode\u003e433e6b9\u003c/code\u003e\u003c/a\u003e 2.1.16: preserve unrelated unstaged changes on conflicts after autofixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/cf4ef1e19baf0581871f69b40914d64c94ff19d7\"\u003e\u003ccode\u003ecf4ef1e\u003c/code\u003e\u003c/a\u003e fix: test staging fixed files with partially staged\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/be6f0ae8793533449cb9a07a253fa9a381e82206\"\u003e\u003ccode\u003ebe6f0ae\u003c/code\u003e\u003c/a\u003e fix: preserve unrelated unstaged changes on conflict (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/91407e537b2fa36539506963a33e582dca394798\"\u003e\u003ccode\u003e91407e5\u003c/code\u003e\u003c/a\u003e deps: bump mod and text deps to resolve CVEs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1560\"\u003e#1560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/3ee04318fd06d56a70cc9c90dc8385b19918f520\"\u003e\u003ccode\u003e3ee0431\u003c/code\u003e\u003c/a\u003e ci: refactor publishing scripts (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/d050364655420db8a4241f2480942a8d8ddb3486\"\u003e\u003ccode\u003ed050364\u003c/code\u003e\u003c/a\u003e 2.1.15: small fixes to output and LFS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/49260b57c2a56bc4d65d09395458bb3ce3c63311\"\u003e\u003ccode\u003e49260b5\u003c/code\u003e\u003c/a\u003e fix(lfs): do not pipe stdin into post-checkout git-lfs hook (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1523\"\u003e#1523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/0892f5f256ebe162485492af5ca14c2ced45586f\"\u003e\u003ccode\u003e0892f5f\u003c/code\u003e\u003c/a\u003e fix: remove color blending (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1558\"\u003e#1558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/f1de41cd5cd6a6c5e0179c65e00d5ed6d90078c2\"\u003e\u003ccode\u003ef1de41c\u003c/code\u003e\u003c/a\u003e fix: resolve push-files fallback against the remote-tracking ref (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/c465ca8ef4fc9ee0695aa4a9530fc404ed838b7a\"\u003e\u003ccode\u003ec465ca8\u003c/code\u003e\u003c/a\u003e test(cmd): regression for valid fish shell completion output (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1527\"\u003e#1527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evilmartians/lefthook/compare/v2.1.11...v2.1.16\"\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.48.0 to 4.50.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.50.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\u003cul\u003e\n\u003cli\u003e[dotnet] [bidi] Add image size to capture screenshots 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/18016\"\u003eSeleniumHQ/selenium#18016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] only need to run nightly Grid release after production release 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/18013\"\u003eSeleniumHQ/selenium#18013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] merge the release PR automatically once required checks pass 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/18018\"\u003eSeleniumHQ/selenium#18018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] move Selenium Manager publishing into sm-snapshot.yml so releases no longer skip it 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/18017\"\u003eSeleniumHQ/selenium#18017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Network async/event API proposal 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/17685\"\u003eSeleniumHQ/selenium#17685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Behavioral contract for the low-level WebDriver BiDi layer 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/17786\"\u003eSeleniumHQ/selenium#17786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove deprecated methods from 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/17993\"\u003eSeleniumHQ/selenium#17993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] cover BiDi key, wheel, release, and setFiles scenarios in the Input spec 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/18022\"\u003eSeleniumHQ/selenium#18022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] replace the blanket remote BiDi test suite with an opt-in list 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/18023\"\u003eSeleniumHQ/selenium#18023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] always use the latest Selenium Manager code when needed for tests 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/18024\"\u003eSeleniumHQ/selenium#18024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] cleanup for ruff b904 raise from  by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18030\"\u003eSeleniumHQ/selenium#18030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py]: Apply ClientConfig \u003ccode\u003euser_agent\u003c/code\u003e and \u003ccode\u003eextra_headers\u003c/code\u003e per connection by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17944\"\u003eSeleniumHQ/selenium#17944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add bazel flag to support cross-compiling all Selenium Manager binaries from Linux or Mac 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/18029\"\u003eSeleniumHQ/selenium#18029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] render WebSocket debug log lines lazily by \u003ca href=\"https://github.com/ikraamg\"\u003e\u003ccode\u003e@​ikraamg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18033\"\u003eSeleniumHQ/selenium#18033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Implement driver methods for installing and uninstalling web extensions via BiDi 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/17879\"\u003eSeleniumHQ/selenium#17879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Parse each BiDi command response only once by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18011\"\u003eSeleniumHQ/selenium#18011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run the requirements lock check on RBE with a platform-agnostic lock 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/18039\"\u003eSeleniumHQ/selenium#18039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Support DestinationFolder optional arg in StartScreencast 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/18042\"\u003eSeleniumHQ/selenium#18042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add Emulation.SetTextLayoutModeOverride 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/18043\"\u003eSeleniumHQ/selenium#18043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] use RBE to prepare and build the artifacts for releases 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/18041\"\u003eSeleniumHQ/selenium#18041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] move complete GitHub Actions test suite to nightly and run only high value smoke tests for PRs 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/18040\"\u003eSeleniumHQ/selenium#18040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type BaseOptions.set_capability parameters by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18027\"\u003eSeleniumHQ/selenium#18027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Use one HttpClient.Factory inside one RemoteWebDriver instance 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/18038\"\u003eSeleniumHQ/selenium#18038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Ignore exec.log recursively 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/18049\"\u003eSeleniumHQ/selenium#18049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] fetch the changelog history since the previous release tag instead of computing a depth 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/18044\"\u003eSeleniumHQ/selenium#18044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] prefix workflow names by how they run so the Actions sidebar groups them 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/18053\"\u003eSeleniumHQ/selenium#18053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run grid specific tests on windows during scheduled tests 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/18054\"\u003eSeleniumHQ/selenium#18054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate webref_cddl.bzl from the BiDi spec's external specifications list 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/18055\"\u003eSeleniumHQ/selenium#18055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] update BiDi schema generation to include external spec methods missing due to upstream spec omissions 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/18057\"\u003eSeleniumHQ/selenium#18057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type WebElement.get_attribute name by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18028\"\u003eSeleniumHQ/selenium#18028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL 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/18060\"\u003eSeleniumHQ/selenium#18060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [build] Include package license/notice files 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/18048\"\u003eSeleniumHQ/selenium#18048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet][java][js][py][rb] remove deprecated Firefox profile extension and cert methods 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/18066\"\u003eSeleniumHQ/selenium#18066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] resolve exceptions from the W3C state in ErrorHandler by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18059\"\u003eSeleniumHQ/selenium#18059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Fix the two CDDL repin fallouts breaking every Python target 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/18068\"\u003eSeleniumHQ/selenium#18068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Eliminate BiDi context on hot path 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/18069\"\u003eSeleniumHQ/selenium#18069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] [dotnet] [java] declare Firefox default preferences in each binding 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/18070\"\u003eSeleniumHQ/selenium#18070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema 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/18071\"\u003eSeleniumHQ/selenium#18071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] fix flaky tests 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/18073\"\u003eSeleniumHQ/selenium#18073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Align BiDi Generator with the low-level contract by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17973\"\u003eSeleniumHQ/selenium#17973\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.50.0 (2026-09-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v152, v153, v154\u003c/li\u003e\n\u003cli\u003erender WebSocket debug log lines lazily (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18033\"\u003e#18033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement driver methods for installing and uninstalling web extensions via BiDi (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17879\"\u003e#17879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18046\"\u003e#18046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] replace the BiDi KNOWN_INCOMPLETE allowlist with spec-shaped CDDL overlays (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18057\"\u003e#18057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18060\"\u003e#18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated Firefox profile extension and cert methods (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18066\"\u003e#18066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\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/ca2a96694916c818db1c388b7a1c14cf3380c098\"\u003e\u003ccode\u003eca2a966\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.50.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18105\"\u003e#18105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27ef65761b92bc943e5aae804459421727d1cf78\"\u003e\u003ccode\u003e27ef657\u003c/code\u003e\u003c/a\u003e [rb] add bidi tests for recent spec updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/76febdc715a93c9256eb2ac35624c406bc2159b7\"\u003e\u003ccode\u003e76febdc\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18082\"\u003e#18082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6f841aa1f8f3b73f10af195b9f2b8734dd7b81f7\"\u003e\u003ccode\u003e6f841aa\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a288e07fe4e5540bbf67c7d42cbaf66a1c61de\"\u003e\u003ccode\u003e52a288e\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/acd7ce82c602b9926ae65f1b1fb50af75b09f084\"\u003e\u003ccode\u003eacd7ce8\u003c/code\u003e\u003c/a\u003e [rb] remove stale Windows pending guard from Firefox signed directory addon test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/748477d0fcb941b8c7d50fc5d7d2ffb69ffe1c96\"\u003e\u003ccode\u003e748477d\u003c/code\u003e\u003c/a\u003e [rb] remove dead headless, browser and remote config_settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6ff202add86b748bb87e75655b1cdc0aa2d144a2\"\u003e\u003ccode\u003e6ff202a\u003c/code\u003e\u003c/a\u003e [rb] fix flaky test by not applying timeouts to the setup navigation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27c86e2055d5ecffdfaf6df1a15442b36fa6fcbb\"\u003e\u003ccode\u003e27c86e2\u003c/code\u003e\u003c/a\u003e [build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/59b28c40ef9c92d95abc6312f36da23cc9f444ef\"\u003e\u003ccode\u003e59b28c4\u003c/code\u003e\u003c/a\u003e [rb] fix nightly web extension spec failures on Safari and Windows\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.48.0...selenium-4.50.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/alexandresilvestri/blog/pull/50","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandresilvestri%2Fblog/issues/50","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/50/packages"},{"uuid":"5685063562","node_id":"PR_kwDOQ6XWkc8AAAABGYDw_w","number":263,"state":"open","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-03T00:23:17.000Z","updated_at":"2026-10-03T00:23:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/git-kaz/istanding/pull/263","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-kaz%2Fistanding/issues/263","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/263/packages"},{"uuid":"5674543765","node_id":"PR_kwDOSLOQAM8AAAABGPq4lQ","number":44,"state":"closed","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-03T11:35:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-02T07:53:50.000Z","updated_at":"2026-10-03T11:35:53.000Z","time_to_close":99713,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/ryu/role_sample/pull/44","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryu%2Frole_sample/issues/44","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/44/packages"},{"uuid":"5674021417","node_id":"PR_kwDOSBLDL88AAAABGPQkEg","number":109,"state":"open","title":"Bump the ruby group across 1 directory with 9 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-10-02T06:57:34.000Z","updated_at":"2026-10-02T06:57:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby","update_count":9,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"solid_queue","old_version":"1.4.0","new_version":"1.7.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"solid_cable","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.24.6","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.22","new_version":"0.1.26","repository_url":"https://github.com/basecamp/thruster"},{"name":"image_processing","old_version":"2.0.2","new_version":"2.1.0","repository_url":"https://github.com/janko/image_processing"},{"name":"brakeman","old_version":"8.0.5","new_version":"8.0.6","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"selenium-webdriver","old_version":"4.45.0","new_version":"4.49.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rack-proxy","old_version":"1.0.3","new_version":"2.0.1","repository_url":"https://github.com/ncr/rack-proxy"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.4.0` | `1.7.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.0` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.6` | `1.26.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.22` | `0.1.26` |\n| [image_processing](https://github.com/janko/image_processing) | `2.0.2` | `2.1.0` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.5` | `8.0.6` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.45.0` | `4.49.0` |\n| [rack-proxy](https://github.com/ncr/rack-proxy) | `1.0.3` | `2.0.1` |\n\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.4.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 - batches\u003c/h2\u003e\n\u003cp\u003eThis is a big one! Solid Queue finally supports \u003ca href=\"https://github.com/rails/solid_queue#batch-jobs\"\u003ejob batches\u003c/a\u003e thanks to \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e.   Check the README for more details about how to use these. This took ages despite being a very requested feature 😅 Big thanks to \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e for his patience, refinements and production-app tests!\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that concurrency + bulk enqueuing is a perf caveat, not unsafe by \u003ca href=\"https://github.com/Gnirt\"\u003e\u003ccode\u003e@​Gnirt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/785\"\u003erails/solid_queue#785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for polling queries in logging tests instead of sleeping by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/775\"\u003erails/solid_queue#775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep semaphore slots held while blocked jobs are enqueued in concurrency test by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/776\"\u003erails/solid_queue#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive in-flight jobs enough pause to survive slow shutdowns in tests by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/782\"\u003erails/solid_queue#782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude the error in fail_many_claimed events and document recovery by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/779\"\u003erails/solid_queue#779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace terminated forks even if releasing their claimed jobs fails by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/781\"\u003erails/solid_queue#781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonour TERM received during supervisor boot before forking workers by \u003ca href=\"https://github.com/rafael-pissardo\"\u003e\u003ccode\u003e@​rafael-pissardo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/770\"\u003erails/solid_queue#770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch Support by \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/142\"\u003erails/solid_queue#142\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/Gnirt\"\u003e\u003ccode\u003e@​Gnirt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/785\"\u003erails/solid_queue#785\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/solid_queue/compare/v1.6.0...v1.7.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.6.0...v1.7.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.0 - fiber execution mode (with Async)\u003c/h2\u003e\n\u003cp\u003eA long-awaited feature thanks to \u003ca href=\"https://github.com/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e on this release: instead of using a thread pool to run jobs in multiple threads per works, you can now use \u003ca href=\"https://docs.ruby-lang.org/en/master/Fiber.html\"\u003efibers\u003c/a\u003e on a single fiber reactor thread. To use this, you just need to specify the number of fibers instead of the number of threads in your worker configuration, like this:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eworkers:\r\n  - queues: \u0026quot;api*\u0026quot;\r\n    fibers: 100\r\n    polling_interval: 0.05\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt uses \u003ca href=\"https://github.com/socketry/async\"\u003eAsync\u003c/a\u003e under the hood, so you need to have that as a dependency for it to work. Also, you need to be using fiber isolation in Rails (\u003ccode\u003econfig.active_support.isolation_level`` = :fiber\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eThis can be very useful for I/O-bound workloads, such as those involving LLM calls.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fiber worker execution mode by \u003ca href=\"https://github.com/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/728\"\u003erails/solid_queue#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRoll back transactions leaked by killed job threads in tests by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/773\"\u003erails/solid_queue#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to update dynamic recurring tasks by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/777\"\u003erails/solid_queue#777\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/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/728\"\u003erails/solid_queue#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/777\"\u003erails/solid_queue#777\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/solid_queue/compare/v1.5.1...v1.6.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.5.1...v1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix flaky tests caused by leaked job threads and signal timing by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/766\"\u003erails/solid_queue#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an update generator to copy new migrations by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/765\"\u003erails/solid_queue#765\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for the continuable job to start before interrupting it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/767\"\u003erails/solid_queue#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd --only-recurring to run just the recurring scheduler by \u003ca href=\"https://github.com/rafael-pissardo\"\u003e\u003ccode\u003e@​rafael-pissardo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/757\"\u003erails/solid_queue#757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse with_connection in DistinctValues by \u003ca href=\"https://github.com/trevorturk\"\u003e\u003ccode\u003e@​trevorturk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/769\"\u003erails/solid_queue#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace forked processes that fail to boot by \u003ca href=\"https://github.com/sapandiwakar\"\u003e\u003ccode\u003e@​sapandiwakar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/760\"\u003erails/solid_queue#760\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/e2b53849c715b29fa2d97a939097bd1beaea4bc9\"\u003e\u003ccode\u003ee2b5384\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/5352228d24eae58200ee7142f53ad36c942b7de2\"\u003e\u003ccode\u003e5352228\u003c/code\u003e\u003c/a\u003e Reset pooled connections when flipping the batches schema in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/112bb1cb66c399d16de3b48afcf7c7ace71ae553\"\u003e\u003ccode\u003e112bb1c\u003c/code\u003e\u003c/a\u003e Refine batch support after a full review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/1bcac835608712dcb24a988e70e0b7aca5e31221\"\u003e\u003ccode\u003e1bcac83\u003c/code\u003e\u003c/a\u003e Add batch support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/fcb5f7acf26b4f91df2ba699d8990f5dbb645580\"\u003e\u003ccode\u003efcb5f7a\u003c/code\u003e\u003c/a\u003e Name the supervisor's stop checkpoint and simplify its lifecycle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/124176afb0dd6637238a86274390dc961a7312f2\"\u003e\u003ccode\u003e124176a\u003c/code\u003e\u003c/a\u003e Honour TERM received during supervisor boot before forking workers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/174cb071f4edfadc878eea89b18e4fdf5f2aa733\"\u003e\u003ccode\u003e174cb07\u003c/code\u003e\u003c/a\u003e Protect the shutdown reap from release failures too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/0526401f0dcf8cd984f26a564f81eb876d1b7f0b\"\u003e\u003ccode\u003e0526401\u003c/code\u003e\u003c/a\u003e Replace terminated forks even if releasing their claimed jobs fails\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/6816e52bb5a3f31e01af4796f11fb115fb1cf722\"\u003e\u003ccode\u003e6816e52\u003c/code\u003e\u003c/a\u003e Include the error in fail_many_claimed events and document recovery\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/fc5fb599930f5bb677d91cf2729a611b651ee6b3\"\u003e\u003ccode\u003efc5fb59\u003c/code\u003e\u003c/a\u003e Wait longer for the supervisor to fail the killed worker's job\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.4.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.1.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.6 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\u003c/a\u003e\u003c/p\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.26.0\"\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.22 to 0.1.26\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/main/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.26 / 2026-08-24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd X-Request-ID header to requests and logs (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.26.6 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.25 / 2026-08-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass all uncacheable requests (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.24 / 2026-08-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse struct types as cache keys\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.23 / 2026-07-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild with Go 1.26.5 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/140\"\u003e#140\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/basecamp/thruster/commit/cda91adeadc3b79124a1dc236edc48e1d11bd838\"\u003e\u003ccode\u003ecda91ad\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/318a0fc4e72307ad1e2ff5200695368d5d74188e\"\u003e\u003ccode\u003e318a0fc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/148\"\u003e#148\u003c/a\u003e from basecamp/request-id\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/f25e0fb2902c0b5e9e85b93306d4f4c290a94dc2\"\u003e\u003ccode\u003ef25e0fb\u003c/code\u003e\u003c/a\u003e Keep owned headers out of hop-by-hop stripping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/e95cad76476cdb6eebd93e2d8bf450697ef19f60\"\u003e\u003ccode\u003ee95cad7\u003c/code\u003e\u003c/a\u003e Add X-Request-ID to requests, responses and logs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/de6ec48c4d82bf1102ad4dc58cd1c91996aa50f3\"\u003e\u003ccode\u003ede6ec48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/147\"\u003e#147\u003c/a\u003e from basecamp/go-1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/5a33fe7bb080d5b27956704eb84a90eb28a75136\"\u003e\u003ccode\u003e5a33fe7\u003c/code\u003e\u003c/a\u003e Update x/crypto, x/net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/8e265077815ca611cb91255f0102ed4c33e73588\"\u003e\u003ccode\u003e8e26507\u003c/code\u003e\u003c/a\u003e Update klauspost/compress to v1.19.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/06f3e8aacec1d2acbf43652982c9280a8ebd5fb5\"\u003e\u003ccode\u003e06f3e8a\u003c/code\u003e\u003c/a\u003e Build with Go 1.27.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/e7173c55c0ff7762c7747cdbb403dffc778c5462\"\u003e\u003ccode\u003ee7173c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/145\"\u003e#145\u003c/a\u003e from erikthoreson24/bump-go-1.26.6-security\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/f84d58d665f293ac2dcf6e28e7f41d31d90c1ce4\"\u003e\u003ccode\u003ef84d58d\u003c/code\u003e\u003c/a\u003e bump go to 1.26.6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.22...v0.1.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `image_processing` from 2.0.2 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/janko/image_processing/blob/master/CHANGELOG.md\"\u003eimage_processing's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.0 (2026-09-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[minimagick] Add \u003ccode\u003einherit_fds:\u003c/code\u003e so a loader can name an already-open input (thanks to \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3 (2026-08-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePrevent remote code execution when operation names come from user input, closing bypasses through the \u003ccode\u003e#operation\u003c/code\u003e meta-builder, \u003ccode\u003e#method_missing\u003c/code\u003e, and nested \u003ccode\u003e#send\u003c/code\u003e calls (reported by \u003ca href=\"https://github.com/szymonsec\"\u003e\u003ccode\u003e@​szymonsec\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[minimagick] Prevent remote code execution through unsafe public methods (e.g. \u003ccode\u003e#instance_eval\u003c/code\u003e, \u003ccode\u003e#send\u003c/code\u003e) passed as loader/saver option names\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/janko/image_processing/commit/3d990c3cd3f478eda5a9373d48f6f0c39e615b72\"\u003e\u003ccode\u003e3d990c3\u003c/code\u003e\u003c/a\u003e Set version to 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/722d900ea46e8a701e7513e1ec45cdf434229eae\"\u003e\u003ccode\u003e722d900\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003einherit_fds:\u003c/code\u003e so a loader can name an already-open input (\u003ca href=\"https://redirect.github.com/janko/image_processing/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/1611c00ed4eb3764e4b85db006c5667a0c50e817\"\u003e\u003ccode\u003e1611c00\u003c/code\u003e\u003c/a\u003e Bump to 2.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/8cd14e9cac4fd6dc7e27dfee2fb87d694a8697fd\"\u003e\u003ccode\u003e8cd14e9\u003c/code\u003e\u003c/a\u003e Test on JRuby 10.1.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/28684e76c018e73eea9928045290b5766569e92e\"\u003e\u003ccode\u003e28684e7\u003c/code\u003e\u003c/a\u003e Close more RCE security gaps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/0360dbd0b75f04e02b7eff6ad2234fd23e088fdf\"\u003e\u003ccode\u003e0360dbd\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eruby2_keywords\u003c/code\u003e usage (\u003ca href=\"https://redirect.github.com/janko/image_processing/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/janko/image_processing/compare/v2.0.2...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brakeman` from 8.0.5 to 8.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/releases\"\u003ebrakeman's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.6 - EOL Dates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix EOL date for Rails 8.0 (\u003ca href=\"https://github.com/yeaseul-kim\"\u003e\u003ccode\u003e@​yeaseul-kim\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix command injection false positives (\u003ca href=\"https://github.com/JacobEvelyn\"\u003e\u003ccode\u003e@​JacobEvelyn\u003c/code\u003e\u003c/a\u003e )\u003c/li\u003e\n\u003cli\u003eFix unused variable warning (\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd EOL dates for Rails 8.1 and Ruby 4.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/presidentbeef/brakeman/blob/main/CHANGES.md\"\u003ebrakeman's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e8.0.6 - 2026-08-13\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix EOL date for Rails 8.0 (yeaseul-kim)\u003c/li\u003e\n\u003cli\u003eAdd EOL dates for Rails 8.1 and Ruby 4.0\u003c/li\u003e\n\u003cli\u003eFix command injection false positives (Jacob Evelyn)\u003c/li\u003e\n\u003cli\u003eFix unused variable warning (viralpraxis)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/fffc4837becbc25bb8ca44a04e9b2f155b2bec6d\"\u003e\u003ccode\u003efffc483\u003c/code\u003e\u003c/a\u003e Bump to 8.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/b7218fe82dc132005b5d84cc37e0da4ee4b4169b\"\u003e\u003ccode\u003eb7218fe\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c6be6cc1316d3c89d331adcf31923840e3fc717d\"\u003e\u003ccode\u003ec6be6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2034\"\u003e#2034\u003c/a\u003e from yeaseul-kim/fix-rails-8-0-eol-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/4c191ddfa69ee3af6656fde09c122fdf2a64e624\"\u003e\u003ccode\u003e4c191dd\u003c/code\u003e\u003c/a\u003e Fix EOL date for Rails 8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/e7bda16713762deef3137ced91dffdef32c98c2b\"\u003e\u003ccode\u003ee7bda16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2033\"\u003e#2033\u003c/a\u003e from presidentbeef/add-ruby-rails-eol-dates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/dd4f0b96a560a1c9144bece590a9d0426f42140d\"\u003e\u003ccode\u003edd4f0b9\u003c/code\u003e\u003c/a\u003e Add EOL date for Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/7ca100ac2d571d9f23c50dd4be9e86cc406edc3b\"\u003e\u003ccode\u003e7ca100a\u003c/code\u003e\u003c/a\u003e Add EOL date for Rails 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/a53a456e625216b677f9da2d93be55385f8d2abb\"\u003e\u003ccode\u003ea53a456\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2022\"\u003e#2022\u003c/a\u003e from JacobEvelyn/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/bf3fdc91c071501047e59cadd5d0ff188ea3955b\"\u003e\u003ccode\u003ebf3fdc9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2030\"\u003e#2030\u003c/a\u003e from viralpraxis/fix-unusued-gem-release-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/20f74ac60125c8d162241a38535a6ce3d027b988\"\u003e\u003ccode\u003e20f74ac\u003c/code\u003e\u003c/a\u003e \u003ccode\u003eBrakeman.ensure_latest\u003c/code\u003e: fix unsued \u003ccode\u003erelease_date\u003c/code\u003e variable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/presidentbeef/brakeman/compare/v8.0.5...v8.0.6\"\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.45.0 to 4.49.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.49.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\u003cul\u003e\n\u003cli\u003e[build] improve pre-release workflow ordering 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/17963\"\u003eSeleniumHQ/selenium#17963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] track the generated BiDi schema 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/17962\"\u003eSeleniumHQ/selenium#17962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Fix various missing fields in DTO 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/17961\"\u003eSeleniumHQ/selenium#17961\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Fix mismatch of proxy json property names 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/17960\"\u003eSeleniumHQ/selenium#17960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Fix realm type enum serialization 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/17959\"\u003eSeleniumHQ/selenium#17959\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Fix NamespaceUri json property name 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/17958\"\u003eSeleniumHQ/selenium#17958\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Avoid massive command descriptors allocation 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/17965\"\u003eSeleniumHQ/selenium#17965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add browsing context screencast support 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/17941\"\u003eSeleniumHQ/selenium#17941\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js][py] Capitalize non-Latin text in the getVisibleText atom 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/17964\"\u003eSeleniumHQ/selenium#17964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js][py][rb] derive BiDi field names and enum value types in the schema 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/17966\"\u003eSeleniumHQ/selenium#17966\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] chore fix for unreachable mypy warnings by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17969\"\u003eSeleniumHQ/selenium#17969\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] wire print_pdf_tests.py into the browser test suites 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/17976\"\u003eSeleniumHQ/selenium#17976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate compact execution log by \u003ca href=\"https://github.com/iamricard\"\u003e\u003ccode\u003e@​iamricard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17977\"\u003eSeleniumHQ/selenium#17977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] chore: enable mypy disallow untyped decorators and update type hints by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17974\"\u003eSeleniumHQ/selenium#17974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Fix 500 when downloading a file whose name contains spaces by \u003ca href=\"https://github.com/ashrafiucse\"\u003e\u003ccode\u003e@​ashrafiucse\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17968\"\u003eSeleniumHQ/selenium#17968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] add the LICENSE and NOTICE files to the jars created 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/17601\"\u003eSeleniumHQ/selenium#17601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Remove deprecated GET /session/{sessionId}/se/files/{fileName} endpoint 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/17982\"\u003eSeleniumHQ/selenium#17982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] shrink published javadoc jars 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/17957\"\u003eSeleniumHQ/selenium#17957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] pin the rules_rs zlib bootstrap to an immutable snapshot 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/17985\"\u003eSeleniumHQ/selenium#17985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add a daily workflow to update the pinned CDDL specs 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/17972\"\u003eSeleniumHQ/selenium#17972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] fix Windows architecture detection under WOW64 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/17987\"\u003eSeleniumHQ/selenium#17987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] build Selenium Manager Linux binaries natively and pin the Rust toolchain 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/17988\"\u003eSeleniumHQ/selenium#17988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run the BiDi tests against the Grid server 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/17980\"\u003eSeleniumHQ/selenium#17980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] fix flaky BiDi input tests that raced the page's autofocus 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/17981\"\u003eSeleniumHQ/selenium#17981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] raise typed WebDriver errors for BiDi wire error codes 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/17952\"\u003eSeleniumHQ/selenium#17952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] bump rules_rs to 0.0.108 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/17997\"\u003eSeleniumHQ/selenium#17997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] remove stale xfail markers from python tests by \u003ca href=\"https://github.com/aayushisabharwal\"\u003e\u003ccode\u003e@​aayushisabharwal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18002\"\u003eSeleniumHQ/selenium#18002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] populate linux bazel cache from gh-cache workflow instead of RBE 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/18003\"\u003eSeleniumHQ/selenium#18003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] only embed the git revision in SourceLink metadata when stamping 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/18004\"\u003eSeleniumHQ/selenium#18004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] run Rust tests and build Selenium Manager from source on Windows 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/17998\"\u003eSeleniumHQ/selenium#17998\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings 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/17999\"\u003eSeleniumHQ/selenium#17999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove try-catch while opening a new window \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17754\"\u003e#17754\u003c/a\u003e 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/17996\"\u003eSeleniumHQ/selenium#17996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add Launchpad fallback for the rules_rs zlib .deb fetch 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/18006\"\u003eSeleniumHQ/selenium#18006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Upgrade rules_rs to 0.0.109 and \u003ca href=\"https://github.com/llvm\"\u003e\u003ccode\u003e@​llvm\u003c/code\u003e\u003c/a\u003e to 0.8.19 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/17929\"\u003eSeleniumHQ/selenium#17929\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] add BiDi upload tests that verify files actually reach the server 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/18007\"\u003eSeleniumHQ/selenium#18007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] Add license and notice links to Selenium Manager help by \u003ca href=\"https://github.com/shubmittal\"\u003e\u003ccode\u003e@​shubmittal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17986\"\u003eSeleniumHQ/selenium#17986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] Add support for Chrome arm64 on Linux by \u003ca href=\"https://github.com/dennisameling\"\u003e\u003ccode\u003e@​dennisameling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17915\"\u003eSeleniumHQ/selenium#17915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove let's guess URI encoding 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/17995\"\u003eSeleniumHQ/selenium#17995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] adopt the worthwhile ruff 0.16 rule families (tranches 1 and 2) 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/17992\"\u003eSeleniumHQ/selenium#17992\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.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.48.0 (2026-08-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v150, v151, v152\u003c/li\u003e\n\u003cli\u003eadd low-level BiDi protocol integration specs (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17878\"\u003e#17878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17910\"\u003e#17910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix silent hang on oversized WebSocket frames (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17655\"\u003e#17655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ealways reject a missing required inbound BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17936\"\u003e#17936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eaccept a whole-valued float for an integer BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17939\"\u003e#17939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject an inbound BiDi scalar outside its union's declared arms (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17947\"\u003e#17947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.47.0 (2026-08-10)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v149, v150, v151\u003c/li\u003e\n\u003cli\u003esupport WebDriver BiDi on Safari Preview and move #bidi onto Driver (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17729\"\u003e#17729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elink generated BiDi elements to their spec definitions (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17781\"\u003e#17781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd objectOnly/preserveExtras/scalar-primitive BiDi schema signals (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17784\"\u003e#17784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003econstruct the BiDi transport inside the domain from a connection (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17796\"\u003e#17796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eroute BiDiBridge navigation through the generated Protocol::BrowsingContext (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17785\"\u003e#17785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresolve spec runfiles via Bazel::Runfiles (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17810\"\u003e#17810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] standardize generated-file license and not to edit markers across generators (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17816\"\u003e#17816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate nullable-constant BiDi params outbound (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17818\"\u003e#17818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] upgrade rules_ruby to 0.28.0 and drop vendored Bazel::Runfiles workaround (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17824\"\u003e#17824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Merge vendor cddl files into shared BiDi schema and implement custom Firefox webExtension options (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17840\"\u003e#17840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[grid] honor client-advertised se:remoteUrl for reachable BiDi/CDP/VNC URLs (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17790\"\u003e#17790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etolerate and warn on missing required inbound BiDi fields, with SE_BIDI_STRICT to escalate (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17844\"\u003e#17844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated FTP proxy support (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17846\"\u003e#17846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprevent CDP access with Firefox (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17849\"\u003e#17849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest matchers assert log entries by id and optional messages and match severity (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17848\"\u003e#17848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[bidi] Correct float/enum type fidelity in the shared schema and validate primitives outbound in Ruby (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17852\"\u003e#17852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[bidi] mark BiDi types extensible per spec and update Ruby handling (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17853\"\u003e#17853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eraise typed WebDriver errors for BiDi from a generated error-code map (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17855\"\u003e#17855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eallow pending test guards to require matching provided exception (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17859\"\u003e#17859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epass --enable-chrome-logs unless CHROME_LOG_FILE is set (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17858\"\u003e#17858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport custom vendor specific capabilities in options classes (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17862\"\u003e#17862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate BiDi outbound ref fields against their declared type (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17861\"\u003e#17861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egenerate BiDi domain type accessors and union variant factories (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17865\"\u003e#17865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edeprecate invalid Firefox profile code (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17871\"\u003e#17871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17873\"\u003e#17873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.46.0 (2026-07-10)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v148, v149, v150\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/bedb24f6f703876e7e4c5d506f0d697eb358c720\"\u003e\u003ccode\u003ebedb24f\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.49.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18012\"\u003e#18012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/0536451d5b340478614e5a2fdba898dec3e59e3a\"\u003e\u003ccode\u003e0536451\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/0aaee1e6a990a8383ae04dfb607924f2cd1bc19f\"\u003e\u003ccode\u003e0aaee1e\u003c/code\u003e\u003c/a\u003e [build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/59ea9e026420a20e952b734fc5e07d985f363af8\"\u003e\u003ccode\u003e59ea9e0\u003c/code\u003e\u003c/a\u003e [rb] stop serializing BiDi and DevTools specs under remote execution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6776d3704981cd39df18046739bfea3b1e6795fa\"\u003e\u003ccode\u003e6776d37\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f4721fddc0158a20d0e31397e89ca1c1bbe72991\"\u003e\u003ccode\u003ef4721fd\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17991\"\u003e#17991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/507b67e1634f0cba23c13d83346243ecf5aa88ea\"\u003e\u003ccode\u003e507b67e\u003c/code\u003e\u003c/a\u003e [rb] guard the Firefox Linux screencast failure to stable only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/4eaa35b280da8a53c0821205c4bd7c3f2d024eee\"\u003e\u003ccode\u003e4eaa35b\u003c/code\u003e\u003c/a\u003e [rb] request the configured browser version when finding drivers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f7f60f942ee07238d9e31a37d1cfdb0cbd9c1f36\"\u003e\u003ccode\u003ef7f60f9\u003c/code\u003e\u003c/a\u003e [rb] wait for both downloads to finish before listing them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dc4fc25ac86b79379859f6a32aee2938b917a7c5\"\u003e\u003ccode\u003edc4fc25\u003c/code\u003e\u003c/a\u003e [rb] give the Grid two minutes to become ready in remote specs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.45.0...selenium-4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack-proxy` from 1.0.3 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ncr/rack-proxy/releases\"\u003erack-proxy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.1 — RequestBodyStream#read accepts an optional length (WebMock fix)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe bounded request body stream accepts \u003ccode\u003eIO#read\u003c/code\u003e's optional \u003ccode\u003elength\u003c/code\u003e\nargument. Net::HTTP instrumentation layers that read the whole request body\nat once (WebMock's adapter, for example) raised \u003ccode\u003eArgumentError\u003c/code\u003e against\n2.0.0, failing the test suite of any app that proxies a request body. (\u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.0 — HTTP framing and response hardening\u003c/h2\u003e\n\u003cp\u003eSecurity hardening for request/response framing, resource limits, and Rack compatibility. This major release includes changes to non-streaming retries and response-hook types.\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNon-streaming requests no longer automatically retry transport failures.\nThis prevents replay with consumed request input; applications that require\nretries must implement them with a fresh body and an explicit retry policy.\u003c/li\u003e\n\u003cli\u003eRack 3 response hooks receive arrays for repeated header values, including\n\u003ccode\u003eSet-Cookie\u003c/code\u003e, and non-streaming statuses are integers. Update hooks that\nassumed newline-separated headers or string statuses. Rack 2 retains its\nnewline-separated header representation.\u003c/li\u003e\n\u003cli\u003eInvalid or ambiguous HTTP framing is now rejected, incomplete responses fail,\nand uploads without a known length use fresh chunked framing. Backends must\naccept properly framed HTTP/1.1 requests and send valid, complete responses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReframe decoded request bodies without a \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e using chunked\nencoding instead of sending body bytes after \u003ccode\u003eContent-Length: 0\u003c/code\u003e. Bound\nknown-length input streams so excess bytes cannot become another backend\nrequest; malformed lengths and prematurely ended uploads return \u003ccode\u003e400\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReject ambiguous backend framing (\u003ccode\u003eTransfer-Encoding\u003c/code\u003e with \u003ccode\u003eContent-Length\u003c/code\u003e,\nconflicting or invalid lengths, and unsupported transfer codings) with \u003ccode\u003e502\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eStrip response headers named by the backend's \u003ccode\u003eConnection\u003c/code\u003e fields as well as\nthe standard hop-by-hop headers.\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003emax_response_length\u003c/code\u003e before buffering each chunk in non-streaming\nmode, including rejecting declared oversized responses before reading them.\u003c/li\u003e\n\u003cli\u003eDetect premature EOF in fixed-length responses: return \u003ccode\u003e502\u003c/code\u003e before sending\nheaders, or raise while streaming so the server aborts the incomplete transfer.\u003c/li\u003e\n\u003cli\u003eDisable Net::HTTP transport retries in non-streaming mode as well as streaming\nmode, preventing replay with an already-consumed request body.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn integer statuses in non-streaming mode and preserve multiple response\nheader values as arrays on Rack 3 (including \u003ccode\u003eSet-Cookie\u003c/code\u003e). Rack 2 keeps its\nnewline-separated representation.\u003c/li\u003e\n\u003cli\u003eRemove entity headers forbidden by Rack on 1xx/204/304 responses. HEAD and\n304 representation sizes no longer incorrectly trigger the response body cap.\u003c/li\u003e\n\u003cli\u003eReplace a remaining live-host test with a local fixture and simulate failed\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/ncr/rack-proxy/blob/master/CHANGELOG.md\"\u003erack-proxy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.1] - 2026-09-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe bounded request body stream accepts \u003ccode\u003eIO#read\u003c/code\u003e's optional \u003ccode\u003elength\u003c/code\u003e\nargument. Net::HTTP instrumentation layers that read the whole request body\nat once (WebMock's adapter, for example) raised \u003ccode\u003eArgumentError\u003c/code\u003e against\n2.0.0, failing the test suite of any app that proxies a request body. (\u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[2.0.0] - 2026-09-05\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNon-streaming requests no longer automatically retry transport failures.\nThis prevents replay with consumed request input; applications that require\nretries must implement them with a fresh body and an explicit retry policy.\u003c/li\u003e\n\u003cli\u003eRack 3 response hooks receive arrays for repeated header values, including\n\u003ccode\u003eSet-Cookie\u003c/code\u003e, and non-streaming statuses are integers. Update hooks that\nassumed newline-separated headers or string statuses. Rack 2 retains its\nnewline-separated header representation.\u003c/li\u003e\n\u003cli\u003eInvalid or ambiguous HTTP framing is now rejected, incomplete responses fail,\nand uploads without a known length use fresh chunked framing. Backends must\naccept properly framed HTTP/1.1 requests and send valid, complete responses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReframe decoded request bodies without a \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e using chunked\nencoding instead of sending body bytes after \u003ccode\u003eContent-Length: 0\u003c/code\u003e. Bound\nknown-length input streams so excess bytes cannot become another backend\nrequest; malformed lengths and prematurely ended uploads return \u003ccode\u003e400\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReject ambiguous backend framing (\u003ccode\u003eTransfer-Encoding\u003c/code\u003e with \u003ccode\u003eContent-Length\u003c/code\u003e,\nconflicting or invalid lengths, and unsupported transfer codings) with \u003ccode\u003e502\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eStrip response headers named by the backend's \u003ccode\u003eConnection\u003c/code\u003e fields as well as\nthe standard hop-by-hop headers.\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003emax_response_length\u003c/code\u003e before buffering each chunk in non-streaming\nmode, including rejecting declared oversized responses before reading them.\u003c/li\u003e\n\u003cli\u003eDetect premature EOF in fixed-length responses: return \u003ccode\u003e502\u003c/code\u003e before sending\nheaders, or raise while streaming so the server aborts the incomplete transfer.\u003c/li\u003e\n\u003cli\u003eDisable Net::HTTP transport retries in non-streaming mode as well as streaming\nmode, preventing replay with an already-consumed request body.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn integer statuses in non-streaming mode and preserve multiple response\nheader values as arrays on Rack 3 (including \u003ccode\u003eSet-Cookie\u003c/code\u003e). Rack 2 keeps its\nnewline-separated representation.\u003c/li\u003e\n\u003cli\u003eRemove entity headers forbidden by Rack on 1xx/204/304 responses. HEAD and\n304 representation sizes no longer incorrectly trigger the response body cap.\u003c/li\u003e\n\u003cli\u003eReplace a remaining live-host test with a local fixture and simulate failed\nDNS resolution without sending external DNS queries. Add offline adversarial\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/1ca3d3dc9a2aaf730ed25aa9685924d3d12450f3\"\u003e\u003ccode\u003e1ca3d3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/146\"\u003e#146\u003c/a\u003e from ncr/release-2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/258e77307a34535b61f1fb47c22d6541dc8caecc\"\u003e\u003ccode\u003e258e773\u003c/code\u003e\u003c/a\u003e Bump version to 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/ec21cbd9d48e29f0abe33afb734f43468ad9ce65\"\u003e\u003ccode\u003eec21cbd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/145\"\u003e#145\u003c/a\u003e from rodrigobb/request-body-stream-optional-length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/52062bcf783a3e7750e4f3d2e1128843fb8ba7bd\"\u003e\u003ccode\u003e52062bc\u003c/code\u003e\u003c/a\u003e Accept IO#read's optional length in RequestBodyStream#read\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/9b84056bb2232c329c6d2b75b8d608fabb814d46\"\u003e\u003ccode\u003e9b84056\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/144\"\u003e#144\u003c/a\u003e from ncr/release-2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/31b8e03a8db00bf585098a8df100075eb777b689\"\u003e\u003ccode\u003e31b8e03\u003c/code\u003e\u003c/a\u003e Harden HTTP framing and response handling for 2.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ncr/rack-proxy/compare/v1.0.3...v2.0.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/shakacode/react-on-rails-demo-hacker-news-rsc/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakacode%2Freact-on-rails-demo-hacker-news-rsc/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"},{"uuid":"5644075296","node_id":"PR_kwDOR8vZ4s8AAAABF3RU1Q","number":69,"state":"open","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-30T09:13:18.000Z","updated_at":"2026-09-30T09:13:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/is2b007/daybreak/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/is2b007%2Fdaybreak/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"},{"uuid":"5638511984","node_id":"PR_kwDOSvSQPM8AAAABFy1X0A","number":36,"state":"closed","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-02T20:03:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-29T23:33:44.000Z","updated_at":"2026-10-02T20:03:28.000Z","time_to_close":246582,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/vryan95/FileShare/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vryan95%2FFileShare/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"},{"uuid":"5634280932","node_id":"PR_kwDOUcT0As8AAAABFveIJQ","number":5,"state":"open","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-29T17:14:12.000Z","updated_at":"2026-09-29T17:14:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/rinkukushwah5679/dummy-application-for-vercel/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rinkukushwah5679%2Fdummy-application-for-vercel/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"5608345384","node_id":"PR_kwDONqlwoc8AAAABFapVhg","number":214,"state":"closed","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-28T02:14:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-28T02:14:33.000Z","updated_at":"2026-09-28T02:15:05.000Z","time_to_close":11,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/watanaberyunosuke/ruby-rail-shop/pull/214","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/watanaberyunosuke%2Fruby-rail-shop/issues/214","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/214/packages"},{"uuid":"5607385573","node_id":"PR_kwDOQzh0q88AAAABFZ5FCw","number":305,"state":"closed","title":"build(deps): bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-30T08:45:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-27T23:53:00.000Z","updated_at":"2026-09-30T08:45:10.000Z","time_to_close":204728,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/izkreny/groupifico/pull/305","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/izkreny%2Fgroupifico/issues/305","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/305/packages"},{"uuid":"5600185260","node_id":"PR_kwDOQzpxJc8AAAABFUc5CA","number":133,"state":"closed","title":"build(deps): bump solid_cable from 4.0.0 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-04T05:52:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-27T05:53:59.000Z","updated_at":"2026-10-04T05:52:40.000Z","time_to_close":604719,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/AndreRobitaille/TwoRiversReporter/pull/133","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreRobitaille%2FTwoRiversReporter/issues/133","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/133/packages"},{"uuid":"5095494911","node_id":"PR_kwDOS5T4aM78TRBV","number":64,"state":"open","title":"Bump solid_cable from 3.0.12 to 4.0.2 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-08T02:34:08.000Z","updated_at":"2026-08-08T02:37:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"3.0.12","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":"/backend","ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 3.0.12 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade ci to test against all ruby versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/76\"\u003erails/solid_cable#76\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop ruby 3.1 support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/77\"\u003erails/solid_cable#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetry if connection fails by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/75\"\u003erails/solid_cable#75\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEagerly initialize last_id to avoid skipping messages by \u003ca href=\"https://github.com/xrav3nz\"\u003e\u003ccode\u003e@​xrav3nz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/78\"\u003erails/solid_cable#78\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop ruby 3.2 support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden CI by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd connection timeout error and not established to the list of retryable connection errors by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\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/xrav3nz\"\u003e\u003ccode\u003e@​xrav3nz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/78\"\u003erails/solid_cable#78\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/solid_cable/compare/v3.0.12...v4.0.0\"\u003ehttps://github.com/rails/solid_cable/compare/v3.0.12...v4.0.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/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/363e49c98d239f41a84e333b12eebcc370685c6d\"\u003e\u003ccode\u003e363e49c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/beb66b250663354a184ba93cb1952ad88a332772\"\u003e\u003ccode\u003ebeb66b2\u003c/code\u003e\u003c/a\u003e Add connection timeout error and not established to the list of retryable con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/29bef6ae5ebc3ec0514e2ab993cfa04935105e4c\"\u003e\u003ccode\u003e29bef6a\u003c/code\u003e\u003c/a\u003e harden ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2e07205a298913e04caaa00cd3da018ea73e0097\"\u003e\u003ccode\u003e2e07205\u003c/code\u003e\u003c/a\u003e Drop ruby 3.2 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v3.0.12...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=3.0.12\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/git-kaz/loan-app/pull/64","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-kaz%2Floan-app/issues/64","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/64/packages"},{"uuid":"4967846934","node_id":"PR_kwDOTbPeTM710esK","number":6,"state":"closed","title":"Bump solid_cable from 4.0.0 to 4.0.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-02T11:05:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-24T11:06:47.000Z","updated_at":"2026-10-02T11:05:35.000Z","time_to_close":6047926,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.0\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/2602IT0021-oca/furits_shop/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/2602IT0021-oca%2Ffurits_shop/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4958846463","node_id":"PR_kwDOTSjnfs71XXsm","number":4,"state":"closed","title":"Bump solid_cable from 4.0.0 to 4.0.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-01T12:42:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-23T12:34:19.000Z","updated_at":"2026-10-01T12:42:59.000Z","time_to_close":6048518,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.0\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/michaeldoom1/Survivor-Back-End/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaeldoom1%2FSurvivor-Back-End/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"4955682285","node_id":"PR_kwDOTa9bnM71NJmQ","number":6,"state":"closed","title":"Bump solid_cable from 4.0.0 to 4.0.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-01T05:24:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-23T05:14:03.000Z","updated_at":"2026-10-01T05:24:37.000Z","time_to_close":6048632,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.0\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/AlmeidaLevi/Ficha_automatizada_OP/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlmeidaLevi%2FFicha_automatizada_OP/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4949372528","node_id":"PR_kwDOTP86Fc704rXQ","number":7,"state":"closed","title":"Bump solid_cable from 4.0.0 to 4.0.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-30T13:24:25.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-22T13:25:03.000Z","updated_at":"2026-09-30T13:24:27.000Z","time_to_close":6047962,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.0\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/sdnr1418/Foodnerd_Practice/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdnr1418%2FFoodnerd_Practice/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}],"issue_packages":[{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-10-24T17:47:50.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"6015810816","node_id":"PR_kwDOIFhWM88AAAABKeK-5g","number":9,"state":"closed","title":"chore(deps): bump the all-bundler-dependencies group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-24T18:06:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-24T17:47:50.000Z","updated_at":"2026-10-24T18:06:48.000Z","time_to_close":1136,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-bundler-dependencies","update_count":6,"packages":[{"name":"bootsnap","old_version":"1.25.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"slim-rails","old_version":"4.0.0","new_version":"4.0.1","repository_url":"https://github.com/slim-template/slim-rails"},{"name":"sqlite3","old_version":"2.9.6","new_version":"2.10.0","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"selenium-webdriver","old_version":"4.48.0","new_version":"4.51.0","repository_url":"https://github.com/SeleniumHQ/selenium"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-bundler-dependencies group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.25.0` | `1.26.0` |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [slim-rails](https://github.com/slim-template/slim-rails) | `4.0.0` | `4.0.1` |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `2.9.6` | `2.10.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.48.0` | `4.51.0` |\n\n\nUpdates `bootsnap` from 1.25.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.25.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `slim-rails` from 4.0.0 to 4.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/slim-template/slim-rails/releases\"\u003eslim-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCompletely drop support for Rails 6.1 and older\n\u003cul\u003e\n\u003cli\u003eAlign Rails dependencies with supported versions by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/221\"\u003eslim-template/slim-rails#221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy Rails 6.1 and older support code by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/223\"\u003eslim-template/slim-rails#223\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fix\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerate valid block markup for attachment collections by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/218\"\u003eslim-template/slim-rails#218\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrack compiled Slim render calls in template digests by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/220\"\u003eslim-template/slim-rails#220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve Sprockets context dependency metadata by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/217\"\u003eslim-template/slim-rails#217\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve literal greeting characters in generated plain-text mail by \u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/219\"\u003eslim-template/slim-rails#219\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate gemspec metadata and remove unused development dependencies by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/213\"\u003eslim-template/slim-rails#213\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RuboCop config for development environment by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/211\"\u003eslim-template/slim-rails#211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for github-actions by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/208\"\u003eslim-template/slim-rails#208\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Appraisals definitions for maintainability by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/209\"\u003eslim-template/slim-rails#209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Fix CI failures with minitest v6 by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/210\"\u003eslim-template/slim-rails#210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add Ruby 4.0 to CI Matrix by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/212\"\u003eslim-template/slim-rails#212\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Restrict GitHub Actions workflow permissions to contents: read by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/215\"\u003eslim-template/slim-rails#215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 6 to 7 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/slim-template/slim-rails/pull/216\"\u003eslim-template/slim-rails#216\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/216\"\u003eslim-template/slim-rails#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OskarEichler\"\u003e\u003ccode\u003e@​OskarEichler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/pull/221\"\u003eslim-template/slim-rails#221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/slim-template/slim-rails/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/slim-template/slim-rails/compare/v4.0.0...v4.0.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/slim-template/slim-rails/blob/master/CHANGELOG.md\"\u003eslim-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.1 (September 19, 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlign Rails dependencies with supported versions (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/221\"\u003e#221\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eDrop Support for Rails 6.1 and older\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemove legacy Rails 6.1 and older support code (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/223\"\u003e#223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve Sprockets context dependency metadata (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTrack compiled Slim render calls in template digests (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerate valid block markup for attachment collections (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate gemspec metadata and remove unused development dependencies (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Restrict GitHub Actions workflow permissions to contents: read (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Add Ruby 4.0 to CI Matrix (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix CI failures with minitest v6 (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Update Appraisals definitions for maintainability (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/209\"\u003e#209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix RuboCop config for development environment (\u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/211\"\u003e#211\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/slim-template/slim-rails/commit/abaed8b53bedb59b0de921eb0b13c3215de9af9f\"\u003e\u003ccode\u003eabaed8b\u003c/code\u003e\u003c/a\u003e Bump to 4.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/075dc49954c8f4167ba1784602e7bc45ed797a91\"\u003e\u003ccode\u003e075dc49\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/219\"\u003e#219\u003c/a\u003e from OskarEichler/codex/plain-text-mailer-interpolation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/cdd8f3d24982902c0f5b93425de239537cbc2ef0\"\u003e\u003ccode\u003ecdd8f3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/217\"\u003e#217\u003c/a\u003e from OskarEichler/codex/asset-dependency-metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/c6579faff9c6309f7d873e401c279c9d11ed6150\"\u003e\u003ccode\u003ec6579fa\u003c/code\u003e\u003c/a\u003e Fix lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/1a3c6d4321bf3eef67e20885ace0222ba1689db2\"\u003e\u003ccode\u003e1a3c6d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/223\"\u003e#223\u003c/a\u003e from slim-template/remove-unsupported-code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/7ea03f4ee4d2fea03a6caec5d62256d2126ca486\"\u003e\u003ccode\u003e7ea03f4\u003c/code\u003e\u003c/a\u003e Remove legacy Rails 6.1 and older support code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/923f6c482e2a7b9319fd103e29a65d748f3a51a8\"\u003e\u003ccode\u003e923f6c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/220\"\u003e#220\u003c/a\u003e from OskarEichler/codex/compiled-template-dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/99ee8370e9c5f730ab03bdc79269eb0fd59cb262\"\u003e\u003ccode\u003e99ee837\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/218\"\u003e#218\u003c/a\u003e from OskarEichler/codex/attachment-scaffold-markup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/54b1e30246b7b39ec7f06671e94f56900bed4482\"\u003e\u003ccode\u003e54b1e30\u003c/code\u003e\u003c/a\u003e Generate valid scaffold block markup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slim-template/slim-rails/commit/42a2b9fa110ca2f25b384156ab1b1d765650208b\"\u003e\u003ccode\u003e42a2b9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/slim-template/slim-rails/issues/221\"\u003e#221\u003c/a\u003e from OskarEichler/codex/align-rails-version-requirements\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/slim-template/slim-rails/compare/v4.0.0...v4.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlite3` from 2.9.6 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.0 / 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_54_0.html\"\u003ev3.54.0\u003c/a\u003e (from v3.53.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNotable changes in this version include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e now raises an error when adding, renaming, or dropping a column named \u003ccode\u003eROWID\u003c/code\u003e, \u003ccode\u003e_ROWID_\u003c/code\u003e, or \u003ccode\u003eOID\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe authorizer callback is now invoked for SQL functions in the \u003ccode\u003eDEFAULT\u003c/code\u003e clauses of \u003ccode\u003eCREATE TABLE\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eSQLite no longer supports Windows XP or earlier. On Windows, the precompiled gem and any installation that compiles the vendored sqlite now require Windows Vista or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return an \u003ccode\u003eEnumerator\u003c/code\u003e when called without a block. Previously they raised \u003ccode\u003eLocalJumpError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eDatabase#serialize\u003c/code\u003e, which returns a database as a binary string, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e, which replaces a database with the contents of such a string. These wrap \u003ca href=\"https://www.sqlite.org/c3ref/serialize.html\"\u003e\u003ccode\u003esqlite3_serialize()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.sqlite.org/c3ref/deserialize.html\"\u003e\u003ccode\u003esqlite3_deserialize()\u003c/code\u003e\u003c/a\u003e. Both methods are defined only when SQLite was compiled without \u003ccode\u003eSQLITE_OMIT_DESERIALIZE\u003c/code\u003e, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e also requires that the loaded SQLite is v3.54.0 or later. An image of a database in WAL mode cannot be queried after deserializing; see the \u003ccode\u003eDatabase#deserialize\u003c/code\u003e documentation. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e \u003ca href=\"https://github.com/Maaarcocr\"\u003e\u003ccode\u003e@​Maaarcocr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDatabase#statement_timeout=\u003c/code\u003e interrupting statements almost immediately instead of after the timeout elapsed, including re-executed prepared statements and calls to \u003ccode\u003eDatabase#execute_batch2\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e \u003ca href=\"https://github.com/palkan\"\u003e\u003ccode\u003e@​palkan\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOn CRuby, \u003ccode\u003eStatement#types\u003c/code\u003e allocates fewer strings. Each declared type is downcased and interned in C, instead of allocating two strings per column. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return the result set when called with a block. As a consequence, \u003ccode\u003eDatabase#execute\u003c/code\u003e and \u003ccode\u003e#execute2\u003c/code\u003e called with a block return the closed \u003ccode\u003eResultSet\u003c/code\u003e instead of \u003ccode\u003enil\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#columns\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return frozen arrays, and the strings in \u003ccode\u003eStatement#types\u003c/code\u003e are frozen. Code that mutates them now raises \u003ccode\u003eFrozenError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#column_decltype\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return UTF-8 strings. Previously they returned ASCII-8BIT strings. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003edafeea94182af2eb53a10797be359fa6ec4270532bd45255d1c2beb69f2eb743  gems/sqlite3-2.10.0-aarch64-linux-gnu.gem\r\nec4ffedded0bd8579629e14d0647cfee9092c0af0009c05d6404d90857b1cb8b  gems/sqlite3-2.10.0-aarch64-linux-musl.gem\r\nbcf2e165f27fd28f46ba34eeba3503d557ea7f76f9dd40434ce719f2ba0d5cda  gems/sqlite3-2.10.0-arm-linux-gnu.gem\r\n338510e64876c7d02d91733eeaee384806c58b3835d8a688d1bfdbf7e468c497  gems/sqlite3-2.10.0-arm-linux-musl.gem\r\nf619f33adfd01a1827e8764a3da92b289c1a99d93707d021a242dccba6909c4e  gems/sqlite3-2.10.0-arm64-darwin.gem\r\nec284ace2bca873737d0e8818f8eb31e5b84936b694f95933514872929b945d0  gems/sqlite3-2.10.0-x64-mingw-ucrt.gem\r\na3ac204853c8c6b3f2f6f94ebaa52cba26cfd48df82537b1b154a28fc687f057  gems/sqlite3-2.10.0-x86-linux-gnu.gem\r\n96508597fc5e54bfc1a12f94eb2d9f8e0517a8a377bdbfd6cc824215c4530adb  gems/sqlite3-2.10.0-x86-linux-musl.gem\r\n67306588548e62095855a511285daf33389d7f4311c1c33a1addd23e2b90cec5  gems/sqlite3-2.10.0-x86_64-darwin.gem\r\n295f48b240ba663efa2e3b6f38cbc0f19f5c8a2823a71fda3bf15531be5dd0e8  gems/sqlite3-2.10.0-x86_64-linux-gnu.gem\r\n876dd86a15c7828075ff7612e3d0ab0eb2eba0d8485b13fd4000e8a335f86bc5  gems/sqlite3-2.10.0-x86_64-linux-musl.gem\r\n3fc6c4ac2249b1c54099e7b80e57afdd678e648c1f54de8ad3b4c775195c661a  gems/sqlite3-2.10.0.gem\r\n\u003c/code\u003e\u003c/pre\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/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.0 / 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_54_0.html\"\u003ev3.54.0\u003c/a\u003e (from v3.53.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNotable changes in this version include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e now raises an error when adding, renaming, or dropping a column named \u003ccode\u003eROWID\u003c/code\u003e, \u003ccode\u003e_ROWID_\u003c/code\u003e, or \u003ccode\u003eOID\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe authorizer callback is now invoked for SQL functions in the \u003ccode\u003eDEFAULT\u003c/code\u003e clauses of \u003ccode\u003eCREATE TABLE\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eSQLite no longer supports Windows XP or earlier. On Windows, the precompiled gem and any installation that compiles the vendored sqlite now require Windows Vista or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return an \u003ccode\u003eEnumerator\u003c/code\u003e when called without a block. Previously they raised \u003ccode\u003eLocalJumpError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eDatabase#serialize\u003c/code\u003e, which returns a database as a binary string, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e, which replaces a database with the contents of such a string. These wrap \u003ca href=\"https://www.sqlite.org/c3ref/serialize.html\"\u003e\u003ccode\u003esqlite3_serialize()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.sqlite.org/c3ref/deserialize.html\"\u003e\u003ccode\u003esqlite3_deserialize()\u003c/code\u003e\u003c/a\u003e. Both methods are defined only when SQLite was compiled without \u003ccode\u003eSQLITE_OMIT_DESERIALIZE\u003c/code\u003e, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e also requires that the loaded SQLite is v3.54.0 or later. An image of a database in WAL mode cannot be queried after deserializing; see the \u003ccode\u003eDatabase#deserialize\u003c/code\u003e documentation. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e \u003ca href=\"https://github.com/Maaarcocr\"\u003e\u003ccode\u003e@​Maaarcocr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDatabase#statement_timeout=\u003c/code\u003e interrupting statements almost immediately instead of after the timeout elapsed, including re-executed prepared statements and calls to \u003ccode\u003eDatabase#execute_batch2\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e \u003ca href=\"https://github.com/palkan\"\u003e\u003ccode\u003e@​palkan\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOn CRuby, \u003ccode\u003eStatement#types\u003c/code\u003e allocates fewer strings. Each declared type is downcased and interned in C, instead of allocating two strings per column. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return the result set when called with a block. As a consequence, \u003ccode\u003eDatabase#execute\u003c/code\u003e and \u003ccode\u003e#execute2\u003c/code\u003e called with a block return the closed \u003ccode\u003eResultSet\u003c/code\u003e instead of \u003ccode\u003enil\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#columns\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return frozen arrays, and the strings in \u003ccode\u003eStatement#types\u003c/code\u003e are frozen. Code that mutates them now raises \u003ccode\u003eFrozenError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#column_decltype\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return UTF-8 strings. Previously they returned ASCII-8BIT strings. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\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/sparklemotion/sqlite3-ruby/commit/07186c3987c0462bcb086c3bbc617577bf98d259\"\u003e\u003ccode\u003e07186c3\u003c/code\u003e\u003c/a\u003e version bump to v2.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/7ad6fc062bfd0c13dace203186b546dc1350c065\"\u003e\u003ccode\u003e7ad6fc0\u003c/code\u003e\u003c/a\u003e feat: Add Database#serialize and Database#deserialize methods  (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/c35ae350523bb8b7b01a2688a2b4ceb2e1074820\"\u003e\u003ccode\u003ec35ae35\u003c/code\u003e\u003c/a\u003e Fix statement_timeout interrupting most queries (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/ac1b9d9b45b4cea43f0cdad24fd5ec18b11ce914\"\u003e\u003ccode\u003eac1b9d9\u003c/code\u003e\u003c/a\u003e Avoid string allocation of types on statement (and freeze arrays) (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/60679555479b56ac52e4132f4d05b80d96a56ae4\"\u003e\u003ccode\u003e6067955\u003c/code\u003e\u003c/a\u003e Allow calling each, each_hash without block (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/f2315177240132d51a86ad6381e5c960d8c1a086\"\u003e\u003ccode\u003ef231517\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/64aa362931c3b2833d6710313151d9b47bbb1e4a\"\u003e\u003ccode\u003e64aa362\u003c/code\u003e\u003c/a\u003e build(deps-dev): update standard requirement from 1.56.0 to 1.57.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/197861a0f163c18062ab7ae4412ce737f57327df\"\u003e\u003ccode\u003e197861a\u003c/code\u003e\u003c/a\u003e dep: update vendored sqlite to 3.54.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b79f314d55b0a32e600613c3ba227424e554c696\"\u003e\u003ccode\u003eb79f314\u003c/code\u003e\u003c/a\u003e build(deps-dev): update rdoc requirement from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/745\"\u003e#745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b265a20190de40918bab204a8eb244d843a1af52\"\u003e\u003ccode\u003eb265a20\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/746\"\u003e#746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v2.9.6...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\"\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.48.0 to 4.51.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.51.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\u003cul\u003e\n\u003cli\u003e[py] Validate WebSocket response interval correctly by \u003ca href=\"https://github.com/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17984\"\u003eSeleniumHQ/selenium#17984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py][bidi] Send setClientWindowState rect members as sibling params 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/18100\"\u003eSeleniumHQ/selenium#18100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] Degrade to empty metadata when the cache cannot be read 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/18101\"\u003eSeleniumHQ/selenium#18101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Separate project for NUnit infrastructure 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/18104\"\u003eSeleniumHQ/selenium#18104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Do not leak the HttpClient on startup failure 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/18047\"\u003eSeleniumHQ/selenium#18047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Add RemoteWebDriver.getClientFactory() and move HttpCommandExecutor field removal to 4.53 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/18111\"\u003eSeleniumHQ/selenium#18111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Parallelize internal testing 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/18110\"\u003eSeleniumHQ/selenium#18110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] pin Firefox BiDi vendor CDDL from the Firefox repository 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/18094\"\u003eSeleniumHQ/selenium#18094\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] remove obsolete third_party dependencies and dead build references 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/18072\"\u003eSeleniumHQ/selenium#18072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate release docs at approval and commit them after the packages publish 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/18113\"\u003eSeleniumHQ/selenium#18113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Upgrade NUnit library to v5 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/18114\"\u003eSeleniumHQ/selenium#18114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] recover from incomplete Java release by dropping staged repositories when found 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/18112\"\u003eSeleniumHQ/selenium#18112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [build] Escape macOS Edge browser path 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/18126\"\u003eSeleniumHQ/selenium#18126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js][bidi] Add vendor specific class generation by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18125\"\u003eSeleniumHQ/selenium#18125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] assert setFiles uploads reach the server in SetFilesCommandTest by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18058\"\u003eSeleniumHQ/selenium#18058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java][bidi] Decode nested RemoteValues from the parsed tree instead of re-serializing each subtree by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18095\"\u003eSeleniumHQ/selenium#18095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] type a field-less synthetic map record as a validated map by \u003ca href=\"https://github.com/aguspe\"\u003e\u003ccode\u003e@​aguspe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18121\"\u003eSeleniumHQ/selenium#18121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove guava from client bindings \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/12737\"\u003e#12737\u003c/a\u003e 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/13739\"\u003eSeleniumHQ/selenium#13739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] clean up IntelliJ project files and align .editorconfig with formatters 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/18119\"\u003eSeleniumHQ/selenium#18119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[javascript] Create \u003ccode\u003e@​seleniumhq/atoms\u003c/code\u003e npm package from TypeScript atoms 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/17459\"\u003eSeleniumHQ/selenium#17459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java][bidi] Add BiDi code generator by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17777\"\u003eSeleniumHQ/selenium#17777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java][bidi] Type field-less synthetic map records as Map\u0026lt;String, V\u0026gt; by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18122\"\u003eSeleniumHQ/selenium#18122\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[javascript] Publish atoms under the \u003ca href=\"https://github.com/selenium\"\u003e\u003ccode\u003e@​selenium\u003c/code\u003e\u003c/a\u003e npm scope 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/18132\"\u003eSeleniumHQ/selenium#18132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] sign Java artifacts in-process with in-memory PGP keys instead of gpg-agent 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/18130\"\u003eSeleniumHQ/selenium#18130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Support Python 3.15 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/18065\"\u003eSeleniumHQ/selenium#18065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[javascript] Publish \u003ccode\u003e@​seleniumhq/atoms\u003c/code\u003e as part of the npm release 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/18133\"\u003eSeleniumHQ/selenium#18133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Remove the WebSQL and AppCache atoms 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/18137\"\u003eSeleniumHQ/selenium#18137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] remove bazel patches that now have upstream fixes 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/18140\"\u003eSeleniumHQ/selenium#18140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] configure the Chrome sandbox after unpacking a Chrome for Testing build on Windows 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/18139\"\u003eSeleniumHQ/selenium#18139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [test] Entry point to mutate driver options per fixture 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/18141\"\u003eSeleniumHQ/selenium#18141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Add webextension methods on the driver with BiDi and fallback by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18127\"\u003eSeleniumHQ/selenium#18127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] source the Java and .NET versions from a root version.bzl that tests do not read 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/18138\"\u003eSeleniumHQ/selenium#18138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] pin the driver location once per test process so services built in tests skip Selenium Manager 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/18143\"\u003eSeleniumHQ/selenium#18143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Do not pass a bare --proxy to Selenium Manager by \u003ca href=\"https://github.com/Mochxd\"\u003e\u003ccode\u003e@​Mochxd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18089\"\u003eSeleniumHQ/selenium#18089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java][bidi] Update tests to use converter functions by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18146\"\u003eSeleniumHQ/selenium#18146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] manage state in tests not in global hooks 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/18142\"\u003eSeleniumHQ/selenium#18142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add stub mode option for using selenium manager with bazel 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/18135\"\u003eSeleniumHQ/selenium#18135\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/cuishuang\"\u003e\u003ccode\u003e@​cuishuang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17984\"\u003eSeleniumHQ/selenium#17984\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.51.0 (2026-10-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v153, v154, v155\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18118\"\u003e#18118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etype a field-less synthetic map record as a validated map (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18121\"\u003e#18121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18131\"\u003e#18131\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.50.0 (2026-09-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v152, v153, v154\u003c/li\u003e\n\u003cli\u003erender WebSocket debug log lines lazily (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18033\"\u003e#18033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement driver methods for installing and uninstalling web extensions via BiDi (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17879\"\u003e#17879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18046\"\u003e#18046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] replace the BiDi KNOWN_INCOMPLETE allowlist with spec-shaped CDDL overlays (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18057\"\u003e#18057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18060\"\u003e#18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated Firefox profile extension and cert methods (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18066\"\u003e#18066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\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/35c5fab4a58fa5878edb255eb7747b04ca51a015\"\u003e\u003ccode\u003e35c5fab\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.51.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18149\"\u003e#18149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8f7503a553aac68a0f0f960ce152b4a984f2978b\"\u003e\u003ccode\u003e8f7503a\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18131\"\u003e#18131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f3a43a5bc5a1faaad3cd54789186a7e3a0846367\"\u003e\u003ccode\u003ef3a43a5\u003c/code\u003e\u003c/a\u003e [build] remove the Windows session settle sleeps now that Selenium Manager co...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/953b27bb27734af350cc3b8ff647082f67f59033\"\u003e\u003ccode\u003e953b27b\u003c/code\u003e\u003c/a\u003e [rb] drop Safari captureScreenshot guard now that Safari Technology Preview 2...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/92807c94d687bedc75e428c96de7a01c132c65c2\"\u003e\u003ccode\u003e92807c9\u003c/code\u003e\u003c/a\u003e [build] pin the driver location once per test process so services built in te...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e0c56c96b3aedf9de7d6a46b0d83d1bb068b64c4\"\u003e\u003ccode\u003ee0c56c9\u003c/code\u003e\u003c/a\u003e [rb] update test guard for different bidi error in Chrome beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/788fcf3bec38061c57705d4a6b76d12c095be125\"\u003e\u003ccode\u003e788fcf3\u003c/code\u003e\u003c/a\u003e [rb] type a field-less synthetic map record as a validated map (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18121\"\u003e#18121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/8ba36d40044cd1253430e2752417d0f5ec7023de\"\u003e\u003ccode\u003e8ba36d4\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18124\"\u003e#18124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6d04770f34cc0ff88800f7d67d361384144c7697\"\u003e\u003ccode\u003e6d04770\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18118\"\u003e#18118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/e1af1a7911fbbcf17901754b2b9589719b08365f\"\u003e\u003ccode\u003ee1af1a7\u003c/code\u003e\u003c/a\u003e [rb] update tests to guard BiDi browsing context on Safari and Windows Firefo...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.48.0...selenium-4.51.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/hexlet-components/rails-users-list/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexlet-components%2Frails-users-list/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"3.0.12","new_version":"4.1.0","update_type":"major","path":null,"pr_created_at":"2026-10-20T11:02:29.000Z","version_change":"3.0.12 → 4.1.0","issue":{"uuid":"5940505089","node_id":"PR_kwDOQCPKO88AAAABJiLNKA","number":33,"state":"closed","title":"Bump solid_cable from 3.0.12 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":true,"comments_count":1,"pull_request":true,"closed_at":"2026-10-20T11:03:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-20T11:02:29.000Z","updated_at":"2026-10-20T11:03:49.000Z","time_to_close":71,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"3.0.12","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 3.0.12 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade ci to test against all ruby versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/76\"\u003erails/solid_cable#76\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop ruby 3.1 support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/77\"\u003erails/solid_cable#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetry if connection fails by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/75\"\u003erails/solid_cable#75\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEagerly initialize last_id to avoid skipping messages by \u003ca href=\"https://github.com/xrav3nz\"\u003e\u003ccode\u003e@​xrav3nz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/78\"\u003erails/solid_cable#78\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop ruby 3.2 support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden CI by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd connection timeout error and not established to the list of retryable connection errors by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\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/xrav3nz\"\u003e\u003ccode\u003e@​xrav3nz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/78\"\u003erails/solid_cable#78\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/solid_cable/compare/v3.0.12...v4.0.0\"\u003ehttps://github.com/rails/solid_cable/compare/v3.0.12...v4.0.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v3.0.12...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=3.0.12\u0026new-version=4.1.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/joaotorres/recipster/pull/33","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaotorres%2Frecipster/issues/33","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/33/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-10-17T01:35:34.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5893612080","node_id":"PR_kwDOTjH9l88AAAABI9a6rQ","number":26,"state":"closed","title":"build(deps): bump the bundler-minor-and-patch group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-24T01:34:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-17T01:35:34.000Z","updated_at":"2026-10-24T01:34:45.000Z","time_to_close":604746,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"bundler-minor-and-patch","update_count":13,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"sqlite3","old_version":"2.9.5","new_version":"2.10.0","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"solid_queue","old_version":"1.5.0","new_version":"1.7.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.24.6","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.23","new_version":"0.1.27","repository_url":"https://github.com/basecamp/thruster"},{"name":"rails_vite","old_version":"0.2.3","new_version":"0.3.0","repository_url":"https://github.com/skryukov/rails_vite"},{"name":"typelizer","old_version":"0.13.1","new_version":"0.14.0","repository_url":"https://github.com/skryukov/typelizer"},{"name":"pagy","old_version":"43.6.1","new_version":"43.7.1","repository_url":"https://github.com/ddnexus/pagy"},{"name":"action_policy","old_version":"0.7.6","new_version":"0.7.7","repository_url":"https://github.com/palkan/action_policy"},{"name":"brakeman","old_version":"8.0.5","new_version":"8.1.0","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"capybara-lockstep","old_version":"2.3.1","new_version":"2.3.2","repository_url":"https://github.com/makandra/capybara-lockstep"},{"name":"selenium-webdriver","old_version":"4.46.0","new_version":"4.51.0","repository_url":"https://github.com/SeleniumHQ/selenium"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler-minor-and-patch group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `2.9.5` | `2.10.0` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.5.0` | `1.7.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.6` | `1.26.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.23` | `0.1.27` |\n| [rails_vite](https://github.com/skryukov/rails_vite) | `0.2.3` | `0.3.0` |\n| [typelizer](https://github.com/skryukov/typelizer) | `0.13.1` | `0.14.0` |\n| [pagy](https://github.com/ddnexus/pagy) | `43.6.1` | `43.7.1` |\n| [action_policy](https://github.com/palkan/action_policy) | `0.7.6` | `0.7.7` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.5` | `8.1.0` |\n| [capybara-lockstep](https://github.com/makandra/capybara-lockstep) | `2.3.1` | `2.3.2` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.46.0` | `4.51.0` |\n\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlite3` from 2.9.5 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.0 / 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_54_0.html\"\u003ev3.54.0\u003c/a\u003e (from v3.53.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNotable changes in this version include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e now raises an error when adding, renaming, or dropping a column named \u003ccode\u003eROWID\u003c/code\u003e, \u003ccode\u003e_ROWID_\u003c/code\u003e, or \u003ccode\u003eOID\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe authorizer callback is now invoked for SQL functions in the \u003ccode\u003eDEFAULT\u003c/code\u003e clauses of \u003ccode\u003eCREATE TABLE\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eSQLite no longer supports Windows XP or earlier. On Windows, the precompiled gem and any installation that compiles the vendored sqlite now require Windows Vista or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return an \u003ccode\u003eEnumerator\u003c/code\u003e when called without a block. Previously they raised \u003ccode\u003eLocalJumpError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eDatabase#serialize\u003c/code\u003e, which returns a database as a binary string, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e, which replaces a database with the contents of such a string. These wrap \u003ca href=\"https://www.sqlite.org/c3ref/serialize.html\"\u003e\u003ccode\u003esqlite3_serialize()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.sqlite.org/c3ref/deserialize.html\"\u003e\u003ccode\u003esqlite3_deserialize()\u003c/code\u003e\u003c/a\u003e. Both methods are defined only when SQLite was compiled without \u003ccode\u003eSQLITE_OMIT_DESERIALIZE\u003c/code\u003e, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e also requires that the loaded SQLite is v3.54.0 or later. An image of a database in WAL mode cannot be queried after deserializing; see the \u003ccode\u003eDatabase#deserialize\u003c/code\u003e documentation. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e \u003ca href=\"https://github.com/Maaarcocr\"\u003e\u003ccode\u003e@​Maaarcocr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDatabase#statement_timeout=\u003c/code\u003e interrupting statements almost immediately instead of after the timeout elapsed, including re-executed prepared statements and calls to \u003ccode\u003eDatabase#execute_batch2\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e \u003ca href=\"https://github.com/palkan\"\u003e\u003ccode\u003e@​palkan\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOn CRuby, \u003ccode\u003eStatement#types\u003c/code\u003e allocates fewer strings. Each declared type is downcased and interned in C, instead of allocating two strings per column. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return the result set when called with a block. As a consequence, \u003ccode\u003eDatabase#execute\u003c/code\u003e and \u003ccode\u003e#execute2\u003c/code\u003e called with a block return the closed \u003ccode\u003eResultSet\u003c/code\u003e instead of \u003ccode\u003enil\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#columns\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return frozen arrays, and the strings in \u003ccode\u003eStatement#types\u003c/code\u003e are frozen. Code that mutates them now raises \u003ccode\u003eFrozenError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#column_decltype\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return UTF-8 strings. Previously they returned ASCII-8BIT strings. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003edafeea94182af2eb53a10797be359fa6ec4270532bd45255d1c2beb69f2eb743  gems/sqlite3-2.10.0-aarch64-linux-gnu.gem\r\nec4ffedded0bd8579629e14d0647cfee9092c0af0009c05d6404d90857b1cb8b  gems/sqlite3-2.10.0-aarch64-linux-musl.gem\r\nbcf2e165f27fd28f46ba34eeba3503d557ea7f76f9dd40434ce719f2ba0d5cda  gems/sqlite3-2.10.0-arm-linux-gnu.gem\r\n338510e64876c7d02d91733eeaee384806c58b3835d8a688d1bfdbf7e468c497  gems/sqlite3-2.10.0-arm-linux-musl.gem\r\nf619f33adfd01a1827e8764a3da92b289c1a99d93707d021a242dccba6909c4e  gems/sqlite3-2.10.0-arm64-darwin.gem\r\nec284ace2bca873737d0e8818f8eb31e5b84936b694f95933514872929b945d0  gems/sqlite3-2.10.0-x64-mingw-ucrt.gem\r\na3ac204853c8c6b3f2f6f94ebaa52cba26cfd48df82537b1b154a28fc687f057  gems/sqlite3-2.10.0-x86-linux-gnu.gem\r\n96508597fc5e54bfc1a12f94eb2d9f8e0517a8a377bdbfd6cc824215c4530adb  gems/sqlite3-2.10.0-x86-linux-musl.gem\r\n67306588548e62095855a511285daf33389d7f4311c1c33a1addd23e2b90cec5  gems/sqlite3-2.10.0-x86_64-darwin.gem\r\n295f48b240ba663efa2e3b6f38cbc0f19f5c8a2823a71fda3bf15531be5dd0e8  gems/sqlite3-2.10.0-x86_64-linux-gnu.gem\r\n876dd86a15c7828075ff7612e3d0ab0eb2eba0d8485b13fd4000e8a335f86bc5  gems/sqlite3-2.10.0-x86_64-linux-musl.gem\r\n3fc6c4ac2249b1c54099e7b80e57afdd678e648c1f54de8ad3b4c775195c661a  gems/sqlite3-2.10.0.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.10.0 / 2026-10-13\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_54_0.html\"\u003ev3.54.0\u003c/a\u003e (from v3.53.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNotable changes in this version include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e now raises an error when adding, renaming, or dropping a column named \u003ccode\u003eROWID\u003c/code\u003e, \u003ccode\u003e_ROWID_\u003c/code\u003e, or \u003ccode\u003eOID\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe authorizer callback is now invoked for SQL functions in the \u003ccode\u003eDEFAULT\u003c/code\u003e clauses of \u003ccode\u003eCREATE TABLE\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eSQLite no longer supports Windows XP or earlier. On Windows, the precompiled gem and any installation that compiles the vendored sqlite now require Windows Vista or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return an \u003ccode\u003eEnumerator\u003c/code\u003e when called without a block. Previously they raised \u003ccode\u003eLocalJumpError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eDatabase#serialize\u003c/code\u003e, which returns a database as a binary string, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e, which replaces a database with the contents of such a string. These wrap \u003ca href=\"https://www.sqlite.org/c3ref/serialize.html\"\u003e\u003ccode\u003esqlite3_serialize()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://www.sqlite.org/c3ref/deserialize.html\"\u003e\u003ccode\u003esqlite3_deserialize()\u003c/code\u003e\u003c/a\u003e. Both methods are defined only when SQLite was compiled without \u003ccode\u003eSQLITE_OMIT_DESERIALIZE\u003c/code\u003e, and \u003ccode\u003eDatabase#deserialize\u003c/code\u003e also requires that the loaded SQLite is v3.54.0 or later. An image of a database in WAL mode cannot be queried after deserializing; see the \u003ccode\u003eDatabase#deserialize\u003c/code\u003e documentation. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e \u003ca href=\"https://github.com/Maaarcocr\"\u003e\u003ccode\u003e@​Maaarcocr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDatabase#statement_timeout=\u003c/code\u003e interrupting statements almost immediately instead of after the timeout elapsed, including re-executed prepared statements and calls to \u003ccode\u003eDatabase#execute_batch2\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e \u003ca href=\"https://github.com/palkan\"\u003e\u003ccode\u003e@​palkan\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOn CRuby, \u003ccode\u003eStatement#types\u003c/code\u003e allocates fewer strings. Each declared type is downcased and interned in C, instead of allocating two strings per column. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResultSet#each\u003c/code\u003e and \u003ccode\u003e#each_hash\u003c/code\u003e return the result set when called with a block. As a consequence, \u003ccode\u003eDatabase#execute\u003c/code\u003e and \u003ccode\u003e#execute2\u003c/code\u003e called with a block return the closed \u003ccode\u003eResultSet\u003c/code\u003e instead of \u003ccode\u003enil\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e \u003ca href=\"https://github.com/kch\"\u003e\u003ccode\u003e@​kch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#columns\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return frozen arrays, and the strings in \u003ccode\u003eStatement#types\u003c/code\u003e are frozen. Code that mutates them now raises \u003ccode\u003eFrozenError\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eStatement#column_decltype\u003c/code\u003e and \u003ccode\u003eStatement#types\u003c/code\u003e return UTF-8 strings. Previously they returned ASCII-8BIT strings. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e \u003ca href=\"https://github.com/jhawthorn\"\u003e\u003ccode\u003e@​jhawthorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/07186c3987c0462bcb086c3bbc617577bf98d259\"\u003e\u003ccode\u003e07186c3\u003c/code\u003e\u003c/a\u003e version bump to v2.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/7ad6fc062bfd0c13dace203186b546dc1350c065\"\u003e\u003ccode\u003e7ad6fc0\u003c/code\u003e\u003c/a\u003e feat: Add Database#serialize and Database#deserialize methods  (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/c35ae350523bb8b7b01a2688a2b4ceb2e1074820\"\u003e\u003ccode\u003ec35ae35\u003c/code\u003e\u003c/a\u003e Fix statement_timeout interrupting most queries (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/ac1b9d9b45b4cea43f0cdad24fd5ec18b11ce914\"\u003e\u003ccode\u003eac1b9d9\u003c/code\u003e\u003c/a\u003e Avoid string allocation of types on statement (and freeze arrays) (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/743\"\u003e#743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/60679555479b56ac52e4132f4d05b80d96a56ae4\"\u003e\u003ccode\u003e6067955\u003c/code\u003e\u003c/a\u003e Allow calling each, each_hash without block (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/f2315177240132d51a86ad6381e5c960d8c1a086\"\u003e\u003ccode\u003ef231517\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/64aa362931c3b2833d6710313151d9b47bbb1e4a\"\u003e\u003ccode\u003e64aa362\u003c/code\u003e\u003c/a\u003e build(deps-dev): update standard requirement from 1.56.0 to 1.57.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/197861a0f163c18062ab7ae4412ce737f57327df\"\u003e\u003ccode\u003e197861a\u003c/code\u003e\u003c/a\u003e dep: update vendored sqlite to 3.54.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b79f314d55b0a32e600613c3ba227424e554c696\"\u003e\u003ccode\u003eb79f314\u003c/code\u003e\u003c/a\u003e build(deps-dev): update rdoc requirement from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/745\"\u003e#745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b265a20190de40918bab204a8eb244d843a1af52\"\u003e\u003ccode\u003eb265a20\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/746\"\u003e#746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v2.9.5...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.5.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 - batches\u003c/h2\u003e\n\u003cp\u003eThis is a big one! Solid Queue finally supports \u003ca href=\"https://github.com/rails/solid_queue#batch-jobs\"\u003ejob batches\u003c/a\u003e thanks to \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e.   Check the README for more details about how to use these. This took ages despite being a very requested feature 😅 Big thanks to \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e for his patience, refinements and production-app tests!\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that concurrency + bulk enqueuing is a perf caveat, not unsafe by \u003ca href=\"https://github.com/Gnirt\"\u003e\u003ccode\u003e@​Gnirt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/785\"\u003erails/solid_queue#785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for polling queries in logging tests instead of sleeping by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/775\"\u003erails/solid_queue#775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep semaphore slots held while blocked jobs are enqueued in concurrency test by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/776\"\u003erails/solid_queue#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive in-flight jobs enough pause to survive slow shutdowns in tests by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/782\"\u003erails/solid_queue#782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude the error in fail_many_claimed events and document recovery by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/779\"\u003erails/solid_queue#779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace terminated forks even if releasing their claimed jobs fails by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/781\"\u003erails/solid_queue#781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonour TERM received during supervisor boot before forking workers by \u003ca href=\"https://github.com/rafael-pissardo\"\u003e\u003ccode\u003e@​rafael-pissardo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/770\"\u003erails/solid_queue#770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch Support by \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/142\"\u003erails/solid_queue#142\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/Gnirt\"\u003e\u003ccode\u003e@​Gnirt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/785\"\u003erails/solid_queue#785\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/solid_queue/compare/v1.6.0...v1.7.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.6.0...v1.7.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.0 - fiber execution mode (with Async)\u003c/h2\u003e\n\u003cp\u003eA long-awaited feature thanks to \u003ca href=\"https://github.com/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e on this release: instead of using a thread pool to run jobs in multiple threads per works, you can now use \u003ca href=\"https://docs.ruby-lang.org/en/master/Fiber.html\"\u003efibers\u003c/a\u003e on a single fiber reactor thread. To use this, you just need to specify the number of fibers instead of the number of threads in your worker configuration, like this:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eworkers:\r\n  - queues: \u0026quot;api*\u0026quot;\r\n    fibers: 100\r\n    polling_interval: 0.05\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt uses \u003ca href=\"https://github.com/socketry/async\"\u003eAsync\u003c/a\u003e under the hood, so you need to have that as a dependency for it to work. Also, you need to be using fiber isolation in Rails (\u003ccode\u003econfig.active_support.isolation_level`` = :fiber\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eThis can be very useful for I/O-bound workloads, such as those involving LLM calls.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fiber worker execution mode by \u003ca href=\"https://github.com/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/728\"\u003erails/solid_queue#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRoll back transactions leaked by killed job threads in tests by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/773\"\u003erails/solid_queue#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to update dynamic recurring tasks by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/777\"\u003erails/solid_queue#777\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/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/728\"\u003erails/solid_queue#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/777\"\u003erails/solid_queue#777\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/solid_queue/compare/v1.5.1...v1.6.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.5.1...v1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix flaky tests caused by leaked job threads and signal timing by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/766\"\u003erails/solid_queue#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an update generator to copy new migrations by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/765\"\u003erails/solid_queue#765\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for the continuable job to start before interrupting it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/767\"\u003erails/solid_queue#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd --only-recurring to run just the recurring scheduler by \u003ca href=\"https://github.com/rafael-pissardo\"\u003e\u003ccode\u003e@​rafael-pissardo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/757\"\u003erails/solid_queue#757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse with_connection in DistinctValues by \u003ca href=\"https://github.com/trevorturk\"\u003e\u003ccode\u003e@​trevorturk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/769\"\u003erails/solid_queue#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace forked processes that fail to boot by \u003ca href=\"https://github.com/sapandiwakar\"\u003e\u003ccode\u003e@​sapandiwakar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/760\"\u003erails/solid_queue#760\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/e2b53849c715b29fa2d97a939097bd1beaea4bc9\"\u003e\u003ccode\u003ee2b5384\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/5352228d24eae58200ee7142f53ad36c942b7de2\"\u003e\u003ccode\u003e5352228\u003c/code\u003e\u003c/a\u003e Reset pooled connections when flipping the batches schema in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/112bb1cb66c399d16de3b48afcf7c7ace71ae553\"\u003e\u003ccode\u003e112bb1c\u003c/code\u003e\u003c/a\u003e Refine batch support after a full review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/1bcac835608712dcb24a988e70e0b7aca5e31221\"\u003e\u003ccode\u003e1bcac83\u003c/code\u003e\u003c/a\u003e Add batch support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/fcb5f7acf26b4f91df2ba699d8990f5dbb645580\"\u003e\u003ccode\u003efcb5f7a\u003c/code\u003e\u003c/a\u003e Name the supervisor's stop checkpoint and simplify its lifecycle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/124176afb0dd6637238a86274390dc961a7312f2\"\u003e\u003ccode\u003e124176a\u003c/code\u003e\u003c/a\u003e Honour TERM received during supervisor boot before forking workers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/174cb071f4edfadc878eea89b18e4fdf5f2aa733\"\u003e\u003ccode\u003e174cb07\u003c/code\u003e\u003c/a\u003e Protect the shutdown reap from release failures too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/0526401f0dcf8cd984f26a564f81eb876d1b7f0b\"\u003e\u003ccode\u003e0526401\u003c/code\u003e\u003c/a\u003e Replace terminated forks even if releasing their claimed jobs fails\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/6816e52bb5a3f31e01af4796f11fb115fb1cf722\"\u003e\u003ccode\u003e6816e52\u003c/code\u003e\u003c/a\u003e Include the error in fail_many_claimed events and document recovery\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/fc5fb599930f5bb677d91cf2729a611b651ee6b3\"\u003e\u003ccode\u003efc5fb59\u003c/code\u003e\u003c/a\u003e Wait longer for the supervisor to fail the killed worker's job\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.5.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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.6 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\u003c/a\u003e\u003c/p\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.26.0\"\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.23 to 0.1.27\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.27 / 2026-09-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependencies (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump golang.org/x/crypto to v0.56.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.1, update dependencies, add make check (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.26 / 2026-08-24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd X-Request-ID header to requests and logs (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.26.6 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.25 / 2026-08-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass all uncacheable requests (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.24 / 2026-08-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse struct types as cache keys\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/669643fa3ebc6c4daaba8b5210561f03e33f8c53\"\u003e\u003ccode\u003e669643f\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/38d3721e489a969fcabeb14b6471d33237f077f1\"\u003e\u003ccode\u003e38d3721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/155\"\u003e#155\u003c/a\u003e from erikthoreson24/version-0.1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/099297026d09ae63a57cc4b472ec945f1c956c85\"\u003e\u003ccode\u003e0992970\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/72796d797395a4eb5746828bbc12760c6ab95a4b\"\u003e\u003ccode\u003e72796d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e from basecamp/deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/0864e8a6df6cbc97cff90a5a9ebd26298431f6be\"\u003e\u003ccode\u003e0864e8a\u003c/code\u003e\u003c/a\u003e Use http.Transport for h2c test client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/80e89ee10855d0bd02a1629bcd031d903b7c64a1\"\u003e\u003ccode\u003e80e89ee\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/22a99787322af951e6302513074338d5ea69472d\"\u003e\u003ccode\u003e22a9978\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e from erikthoreson24/fix/bump-x-crypto-0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b1865186badbd7a7565910b8df0b52a8f635d5df\"\u003e\u003ccode\u003eb186518\u003c/code\u003e\u003c/a\u003e Bump golang.org/x/crypto to v0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/3ef851682cd2a031294b7a2ac5e012a8bace0cfd\"\u003e\u003ccode\u003e3ef8516\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e from basecamp/go-1.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/fa31b967c1c64e007ef9468e8da1a608491656dc\"\u003e\u003ccode\u003efa31b96\u003c/code\u003e\u003c/a\u003e Add make check to run go vet and govulncheck\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.23...v0.1.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails_vite` from 0.2.3 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/skryukov/rails_vite/releases\"\u003erails_vite's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003erails_vite@0.3.0 / rails-vite-plugin@0.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erefreshDelay\u003c/code\u003e plugin option for \u003ccode\u003erails()\u003c/code\u003e and \u003ccode\u003ejsbundling()\u003c/code\u003e. It waits the given milliseconds after the last \u003ccode\u003erefresh\u003c/code\u003e change before the full-page reload, and sends one reload for a burst of changes. Use it when Rails sees template changes late, e.g. with \u003ccode\u003eEventedFileUpdateChecker\u003c/code\u003e. Default: \u003ccode\u003e0\u003c/code\u003e, which reloads at once as before (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/45\"\u003e#45\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe install generator sets \u003ccode\u003e\u0026quot;type\u0026quot;: \u0026quot;module\u0026quot;\u003c/code\u003e in package.json — Vite and rails-vite-plugin are ESM-only, and without it Node fails to load \u003ccode\u003evite.config.ts\u003c/code\u003e under npm/pnpm/yarn. When package.json pins another \u003ccode\u003etype\u003c/code\u003e, the generator emits \u003ccode\u003evite.config.mts\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aubepkg/aube\"\u003eaube\u003c/a\u003e package manager support: an \u003ccode\u003eaube-lock.yaml\u003c/code\u003e makes the rake tasks, auto build and the install generator use aube, even next to another lockfile left over from \u003ccode\u003eaube import\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/41\"\u003e#41\u003c/a\u003e) (\u003ca href=\"https://github.com/beauraF\"\u003e\u003ccode\u003e@​beauraF\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.vite_executable\u003c/code\u003e sets the executable for \u003ccode\u003erake vite:build\u003c/code\u003e, test builds and auto builds, so Vite-compatible CLIs with another name, such as Vite+'s \u003ccode\u003evp\u003c/code\u003e, work. The default is \u003ccode\u003evite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto_build_paths\u003c/code\u003e config option: extra paths and globs, relative to \u003ccode\u003eRails.root\u003c/code\u003e, that auto build checks for changes besides \u003ccode\u003esourceDir\u003c/code\u003e (for example \u003ccode\u003eapp/views\u003c/code\u003e for Tailwind). It defaults to the root-level Vite, PostCSS, Tailwind and TypeScript configs, \u003ccode\u003epackage.json\u003c/code\u003e, and the lockfile, so changes to them now trigger a rebuild (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/46\"\u003e#46\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.build_mode\u003c/code\u003e sets the \u003ccode\u003e--mode\u003c/code\u003e for \u003ccode\u003evite build\u003c/code\u003e in \u003ccode\u003erake vite:build\u003c/code\u003e and auto builds. The default is unchanged (\u003ccode\u003e\u0026quot;test\u0026quot;\u003c/code\u003e in the test environment, no \u003ccode\u003e--mode\u003c/code\u003e elsewhere); set it to \u003ccode\u003enil\u003c/code\u003e to pass no \u003ccode\u003e--mode\u003c/code\u003e. The gem now passes its \u003ccode\u003ebuild_dir\u003c/code\u003e to the plugin in \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e, so the build directory no longer depends on the mode. Upgrade \u003ccode\u003erails-vite-plugin\u003c/code\u003e together with the gem: older plugin versions ignore \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e. With \u003ccode\u003ebuild_mode\u003c/code\u003e set, \u003ccode\u003evite:build\u003c/code\u003e runs \u003ccode\u003evite build --mode\u003c/code\u003e directly instead of the package.json \u003ccode\u003ebuild\u003c/code\u003e script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/49\"\u003e#49\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evite_asset_url(name)\u003c/code\u003e returns a full URL for a Vite asset, like Rails' \u003ccode\u003easset_url\u003c/code\u003e, for mailers and other places that need an absolute URL (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003erails-vite-plugin\u003c/code\u003e requires Vite 7 or newer and Node.js 20.19+ or 22.12+, like Vite 7 itself. It failed to load on Vite 5 and 6 already (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVite asset URLs are built with Rails' \u003ccode\u003epath_to_asset\u003c/code\u003e, so \u003ccode\u003easset_host\u003c/code\u003e works as it does for other Rails assets: procs that take the request, \u003ccode\u003e%d\u003c/code\u003e hosts and per-controller hosts. Mailers now use \u003ccode\u003econfig.action_mailer.asset_host\u003c/code\u003e (or \u003ccode\u003econfig.asset_host\u003c/code\u003e) instead of the controller's. With \u003ccode\u003erelative_url_root\u003c/code\u003e, tags now include the prefix; set Vite's \u003ccode\u003ebase\u003c/code\u003e to match (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erake vite:build\u003c/code\u003e loads the Rails environment first, so \u003ccode\u003econfig.rails_vite\u003c/code\u003e settings from initializers (such as \u003ccode\u003evite_executable\u003c/code\u003e) also apply to it and to \u003ccode\u003ebin/rails test\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe install generator writes \u003ccode\u003evite dev\u003c/code\u003e instead of \u003ccode\u003evite\u003c/code\u003e to \u003ccode\u003eProcfile.dev\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003evite:build\u003c/code\u003e (and therefore \u003ccode\u003eassets:precompile\u003c/code\u003e) runs the package.json \u003ccode\u003ebuild\u003c/code\u003e script when one exists, so \u003ccode\u003e\u0026quot;build\u0026quot;: \u0026quot;vite build \u0026amp;\u0026amp; vite build --ssr\u0026quot;\u003c/code\u003e produces both client and SSR bundles on deploy. Apps without a \u003ccode\u003ebuild\u003c/code\u003e script keep the bare \u003ccode\u003evite build\u003c/code\u003e. If package.json already has a \u003ccode\u003ebuild\u003c/code\u003e script (e.g. one left over from jsbundling-rails), change it to \u003ccode\u003e\u0026quot;build\u0026quot;: \u0026quot;vite build\u0026quot;\u003c/code\u003e or remove it before upgrading; otherwise precompile succeeds without Vite assets and production raises \u003ccode\u003eRailsVite::MissingManifestError\u003c/code\u003e. The install generator warns about such a script. Test builds and auto-builds always use the bare command, since their extra flags (\u003ccode\u003e--mode test\u003c/code\u003e, \u003ccode\u003e--logLevel warn\u003c/code\u003e) would only reach the last command of a compound script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVite commands from the rake tasks and auto build run in \u003ccode\u003eRails.root\u003c/code\u003e, so they work when Rails is started from another directory (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/39\"\u003e#39\u003c/a\u003e) (\u003ca href=\"https://github.com/janko\"\u003e\u003ccode\u003e@​janko\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe package manager is detected from lockfiles in \u003ccode\u003eRails.root\u003c/code\u003e, not the current directory (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChunks loaded at runtime (dynamic \u003ccode\u003eimport()\u003c/code\u003e and their preloads) now come from a string \u003ccode\u003econfig.action_controller.asset_host\u003c/code\u003e, like the tags: \u003ccode\u003erake vite:build\u003c/code\u003e and auto builds pass it to the plugin in \u003ccode\u003eRAILS_VITE_ASSET_HOST\u003c/code\u003e, which prepends it to Vite's \u003ccode\u003ebase\u003c/code\u003e. Set the variable yourself for a proc or \u003ccode\u003e%d\u003c/code\u003e \u003ccode\u003easset_host\u003c/code\u003e. Needs both the updated gem and plugin (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/35\"\u003e#35\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow Vitest's internal Vite server to start in CI. \u003ccode\u003erails()\u003c/code\u003e and \u003ccode\u003ejsbundling()\u003c/code\u003e now skip the dev-server environment guard and dev server setup under Vitest (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/43\"\u003e#43\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProduction tags now link the CSS of chunks an entry imports, including nested and shared chunks, not just the entry's own CSS. Chunk CSS comes before the entry's CSS, matching Vite's HTML output, and CSS shared by several entries in one \u003ccode\u003evite_tags\u003c/code\u003e call is linked once (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/40\"\u003e#40\u003c/a\u003e) (\u003ca href=\"https://github.com/madogiwa0124\"\u003e\u003ccode\u003e@​madogiwa0124\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWatch the base directories of the \u003ccode\u003erefresh\u003c/code\u003e globs, so template and helper changes trigger a full reload on Linux. Vite's watcher disables globbing, so the globs were watched as literal paths that don't exist. On Linux this also stopped change events for the nested view directories (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/44\"\u003e#44\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore a dev metadata file whose Vite process is gone. After a hard kill (SIGKILL, OOM killer), \u003ccode\u003evite_tags\u003c/code\u003e no longer link to a dead dev server, and Rails started afterwards runs auto builds again. The plugin now records its hostname, and the pid is only checked when Vite runs on the same host, so Vite in another container still counts as running. Needs both the updated gem and plugin (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/48\"\u003e#48\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eGem\u003c/strong\u003e: \u003ca href=\"https://rubygems.org/gems/rails_vite/versions/0.3.0\"\u003ehttps://rubygems.org/gems/rails_vite/versions/0.3.0\u003c/a\u003e\n\u003cstrong\u003enpm\u003c/strong\u003e: \u003ca href=\"https://www.npmjs.com/package/rails-vite-plugin/v/0.3.0\"\u003ehttps://www.npmjs.com/package/rails-vite-plugin/v/0.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003erails_vite@0.3.0.rc1 / rails-vite-plugin@0.3.0-rc.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erefreshDelay\u003c/code\u003e plugin option for \u003ccode\u003erails()\u003c/code\u003e and \u003ccode\u003ejsbundling()\u003c/code\u003e. It waits the given milliseconds after the last \u003ccode\u003erefresh\u003c/code\u003e change before the full-page reload, and sends one reload for a burst of changes. Use it when Rails sees template changes late, e.g. with \u003ccode\u003eEventedFileUpdateChecker\u003c/code\u003e. Default: \u003ccode\u003e0\u003c/code\u003e, which reloads at once as before (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/45\"\u003e#45\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe install generator sets \u003ccode\u003e\u0026quot;type\u0026quot;: \u0026quot;module\u0026quot;\u003c/code\u003e in package.json — Vite and rails-vite-plugin are ESM-only, and without it Node fails to load \u003ccode\u003evite.config.ts\u003c/code\u003e under npm/pnpm/yarn. When package.json pins another \u003ccode\u003etype\u003c/code\u003e, the generator emits \u003ccode\u003evite.config.mts\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aubepkg/aube\"\u003eaube\u003c/a\u003e package manager support: an \u003ccode\u003eaube-lock.yaml\u003c/code\u003e makes the rake tasks, auto build and the install generator use aube, even next to another lockfile left over from \u003ccode\u003eaube import\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/41\"\u003e#41\u003c/a\u003e) (\u003ca href=\"https://github.com/beauraF\"\u003e\u003ccode\u003e@​beauraF\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.vite_executable\u003c/code\u003e sets the executable for \u003ccode\u003erake vite:build\u003c/code\u003e, test builds and auto builds, so Vite-compatible CLIs with another name, such as Vite+'s \u003ccode\u003evp\u003c/code\u003e, work. The default is \u003ccode\u003evite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto_build_paths\u003c/code\u003e config option: extra paths and globs, relative to \u003ccode\u003eRails.root\u003c/code\u003e, that auto build checks for changes besides \u003ccode\u003esourceDir\u003c/code\u003e (for example \u003ccode\u003eapp/views\u003c/code\u003e for Tailwind). It defaults to the root-level Vite, PostCSS, Tailwind and TypeScript configs, \u003ccode\u003epackage.json\u003c/code\u003e, and the lockfile, so changes to them now trigger a rebuild (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/46\"\u003e#46\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.build_mode\u003c/code\u003e sets the \u003ccode\u003e--mode\u003c/code\u003e for \u003ccode\u003evite build\u003c/code\u003e in \u003ccode\u003erake vite:build\u003c/code\u003e and auto builds. The default is unchanged (\u003ccode\u003e\u0026quot;test\u0026quot;\u003c/code\u003e in the test environment, no \u003ccode\u003e--mode\u003c/code\u003e elsewhere); set it to \u003ccode\u003enil\u003c/code\u003e to pass no \u003ccode\u003e--mode\u003c/code\u003e. The gem now passes its \u003ccode\u003ebuild_dir\u003c/code\u003e to the plugin in \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e, so the build directory no longer depends on the mode. Upgrade \u003ccode\u003erails-vite-plugin\u003c/code\u003e together with the gem: older plugin versions ignore \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e. With \u003ccode\u003ebuild_mode\u003c/code\u003e set, \u003ccode\u003evite:build\u003c/code\u003e runs \u003ccode\u003evite build --mode\u003c/code\u003e directly instead of the package.json \u003ccode\u003ebuild\u003c/code\u003e script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/49\"\u003e#49\u003c/a\u003e) (\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evite_asset_url(name)\u003c/code\u003e returns a full URL for a Vite asset, like Rails' \u003ccode\u003easset_url\u003c/code\u003e, for mailers and other places that need an absolute URL (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003erails-vite-plugin\u003c/code\u003e requires Vite 7 or newer and Node.js 20.19+ or 22.12+, like Vite 7 itself. It failed to load on Vite 5 and 6 already (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVite asset URLs are built with Rails' \u003ccode\u003epath_to_asset\u003c/code\u003e, so \u003ccode\u003easset_host\u003c/code\u003e works as it does for other Rails assets: procs that take the request, \u003ccode\u003e%d\u003c/code\u003e hosts and per-controller hosts. Mailers now use \u003ccode\u003econfig.action_mailer.asset_host\u003c/code\u003e (or \u003ccode\u003econfig.asset_host\u003c/code\u003e) instead of the controller's. With \u003ccode\u003erelative_url_root\u003c/code\u003e, tags now include the prefix; set Vite's \u003ccode\u003ebase\u003c/code\u003e to match (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) (\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erake vite:build\u003c/code\u003e loads the Rails environment first, so \u003ccode\u003econfig.rails_vite\u003c/code\u003e settings from initializers (such as \u003ccode\u003evite_executable\u003c/code\u003e) also apply to it and to \u003ccode\u003ebin/rails test\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) (\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\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/skryukov/rails_vite/blob/main/CHANGELOG.md\"\u003erails_vite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003erails_vite@0.3.0 / rails-vite-plugin@0.3.0 - 2026-10-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erefreshDelay\u003c/code\u003e plugin option for \u003ccode\u003erails()\u003c/code\u003e and \u003ccode\u003ejsbundling()\u003c/code\u003e. It waits the given milliseconds after the last \u003ccode\u003erefresh\u003c/code\u003e change before the full-page reload, and sends one reload for a burst of changes. Use it when Rails sees template changes late, e.g. with \u003ccode\u003eEventedFileUpdateChecker\u003c/code\u003e. Default: \u003ccode\u003e0\u003c/code\u003e, which reloads at once as before (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/45\"\u003e#45\u003c/a\u003e) ([\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eThe install generator sets \u003ccode\u003e\u0026quot;type\u0026quot;: \u0026quot;module\u0026quot;\u003c/code\u003e in package.json — Vite and rails-vite-plugin are ESM-only, and without it Node fails to load \u003ccode\u003evite.config.ts\u003c/code\u003e under npm/pnpm/yarn. When package.json pins another \u003ccode\u003etype\u003c/code\u003e, the generator emits \u003ccode\u003evite.config.mts\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aubepkg/aube\"\u003eaube\u003c/a\u003e package manager support: an \u003ccode\u003eaube-lock.yaml\u003c/code\u003e makes the rake tasks, auto build and the install generator use aube, even next to another lockfile left over from \u003ccode\u003eaube import\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/41\"\u003e#41\u003c/a\u003e) ([\u003ca href=\"https://github.com/beauraF\"\u003e\u003ccode\u003e@​beauraF\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.vite_executable\u003c/code\u003e sets the executable for \u003ccode\u003erake vite:build\u003c/code\u003e, test builds and auto builds, so Vite-compatible CLIs with another name, such as Vite+'s \u003ccode\u003evp\u003c/code\u003e, work. The default is \u003ccode\u003evite\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) ([\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto_build_paths\u003c/code\u003e config option: extra paths and globs, relative to \u003ccode\u003eRails.root\u003c/code\u003e, that auto build checks for changes besides \u003ccode\u003esourceDir\u003c/code\u003e (for example \u003ccode\u003eapp/views\u003c/code\u003e for Tailwind). It defaults to the root-level Vite, PostCSS, Tailwind and TypeScript configs, \u003ccode\u003epackage.json\u003c/code\u003e, and the lockfile, so changes to them now trigger a rebuild (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/46\"\u003e#46\u003c/a\u003e) ([\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.rails_vite.build_mode\u003c/code\u003e sets the \u003ccode\u003e--mode\u003c/code\u003e for \u003ccode\u003evite build\u003c/code\u003e in \u003ccode\u003erake vite:build\u003c/code\u003e and auto builds. The default is unchanged (\u003ccode\u003e\u0026quot;test\u0026quot;\u003c/code\u003e in the test environment, no \u003ccode\u003e--mode\u003c/code\u003e elsewhere); set it to \u003ccode\u003enil\u003c/code\u003e to pass no \u003ccode\u003e--mode\u003c/code\u003e. The gem now passes its \u003ccode\u003ebuild_dir\u003c/code\u003e to the plugin in \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e, so the build directory no longer depends on the mode. Upgrade \u003ccode\u003erails-vite-plugin\u003c/code\u003e together with the gem: older plugin versions ignore \u003ccode\u003eRAILS_VITE_BUILD_DIR\u003c/code\u003e. With \u003ccode\u003ebuild_mode\u003c/code\u003e set, \u003ccode\u003evite:build\u003c/code\u003e runs \u003ccode\u003evite build --mode\u003c/code\u003e directly instead of the package.json \u003ccode\u003ebuild\u003c/code\u003e script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/49\"\u003e#49\u003c/a\u003e) ([\u003ca href=\"https://github.com/olivier-thatch\"\u003e\u003ccode\u003e@​olivier-thatch\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evite_asset_url(name)\u003c/code\u003e returns a full URL for a Vite asset, like Rails' \u003ccode\u003easset_url\u003c/code\u003e, for mailers and other places that need an absolute URL (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003erails-vite-plugin\u003c/code\u003e requires Vite 7 or newer and Node.js 20.19+ or 22.12+, like Vite 7 itself. It failed to load on Vite 5 and 6 already ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eVite asset URLs are built with Rails' \u003ccode\u003epath_to_asset\u003c/code\u003e, so \u003ccode\u003easset_host\u003c/code\u003e works as it does for other Rails assets: procs that take the request, \u003ccode\u003e%d\u003c/code\u003e hosts and per-controller hosts. Mailers now use \u003ccode\u003econfig.action_mailer.asset_host\u003c/code\u003e (or \u003ccode\u003econfig.asset_host\u003c/code\u003e) instead of the controller's. With \u003ccode\u003erelative_url_root\u003c/code\u003e, tags now include the prefix; set Vite's \u003ccode\u003ebase\u003c/code\u003e to match (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/36\"\u003e#36\u003c/a\u003e) ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erake vite:build\u003c/code\u003e loads the Rails environment first, so \u003ccode\u003econfig.rails_vite\u003c/code\u003e settings from initializers (such as \u003ccode\u003evite_executable\u003c/code\u003e) also apply to it and to \u003ccode\u003ebin/rails test\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) ([\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003eThe install generator writes \u003ccode\u003evite dev\u003c/code\u003e instead of \u003ccode\u003evite\u003c/code\u003e to \u003ccode\u003eProcfile.dev\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/42\"\u003e#42\u003c/a\u003e) ([\u003ca href=\"https://github.com/cole-robertson\"\u003e\u003ccode\u003e@​cole-robertson\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBreaking:\u003c/strong\u003e \u003ccode\u003evite:build\u003c/code\u003e (and therefore \u003ccode\u003eassets:precompile\u003c/code\u003e) runs the package.json \u003ccode\u003ebuild\u003c/code\u003e script when one exists, so \u003ccode\u003e\u0026quot;build\u0026quot;: \u0026quot;vite build \u0026amp;\u0026amp; vite build --ssr\u0026quot;\u003c/code\u003e produces both client and SSR bundles on deploy. Apps without a \u003ccode\u003ebuild\u003c/code\u003e script keep the bare \u003ccode\u003evite build\u003c/code\u003e. If package.json already has a \u003ccode\u003ebuild\u003c/code\u003e script (e.g. one left over from jsbundling-rails), change it to \u003ccode\u003e\u0026quot;build\u0026quot;: \u0026quot;vite build\u0026quot;\u003c/code\u003e or remove it before upgrading; otherwise precompile succeeds without Vite assets and production raises \u003ccode\u003eRailsVite::MissingManifestError\u003c/code\u003e. The install generator warns about such a script. Test builds and auto-builds always use the bare command, since their extra flags (\u003ccode\u003e--mode test\u003c/code\u003e, \u003ccode\u003e--logLevel warn\u003c/code\u003e) would only reach the last command of a compound script (\u003ca href=\"https://redirect.github.com/skryukov/rails_vite/issues/38\"\u003e#38\u003c/a\u003e) ([\u003ca href=\"https://github.com/skryukov\"\u003e\u003ccode\u003e@​skryukov\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFix...\n\n_Description has been truncated_","html_url":"https://github.com/egio12/rails-astryx-starter-kit/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/egio12%2Frails-astryx-starter-kit/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-10-11T04:21:01.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5797909442","node_id":"PR_kwDOQ8VhiM8AAAABHxZxDQ","number":58,"state":"closed","title":"Bump the bundler group with 8 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-25T04:14:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-11T04:21:01.000Z","updated_at":"2026-10-25T04:14:38.000Z","time_to_close":1209213,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":8,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.25.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.26","new_version":"0.1.27","repository_url":"https://github.com/basecamp/thruster"},{"name":"selenium-webdriver","old_version":"4.47.0","new_version":"4.50.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"simplecov","old_version":"1.1.1","new_version":"1.3.2","repository_url":"https://github.com/simplecov-ruby/simplecov"},{"name":"twilio-ruby","old_version":"7.11.1","new_version":"7.11.3","repository_url":"https://github.com/twilio/twilio-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.3` | `1.7.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.25.0` | `1.26.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.26` | `0.1.27` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.47.0` | `4.50.0` |\n| [simplecov](https://github.com/simplecov-ruby/simplecov) | `1.1.1` | `1.3.2` |\n| [twilio-ruby](https://github.com/twilio/twilio-ruby) | `7.11.1` | `7.11.3` |\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.3 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\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/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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.25.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.25.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.26 to 0.1.27\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.27 / 2026-09-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependencies (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump golang.org/x/crypto to v0.56.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.1, update dependencies, add make check (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\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/basecamp/thruster/commit/669643fa3ebc6c4daaba8b5210561f03e33f8c53\"\u003e\u003ccode\u003e669643f\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/38d3721e489a969fcabeb14b6471d33237f077f1\"\u003e\u003ccode\u003e38d3721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/155\"\u003e#155\u003c/a\u003e from erikthoreson24/version-0.1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/099297026d09ae63a57cc4b472ec945f1c956c85\"\u003e\u003ccode\u003e0992970\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/72796d797395a4eb5746828bbc12760c6ab95a4b\"\u003e\u003ccode\u003e72796d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e from basecamp/deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/0864e8a6df6cbc97cff90a5a9ebd26298431f6be\"\u003e\u003ccode\u003e0864e8a\u003c/code\u003e\u003c/a\u003e Use http.Transport for h2c test client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/80e89ee10855d0bd02a1629bcd031d903b7c64a1\"\u003e\u003ccode\u003e80e89ee\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/22a99787322af951e6302513074338d5ea69472d\"\u003e\u003ccode\u003e22a9978\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e from erikthoreson24/fix/bump-x-crypto-0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b1865186badbd7a7565910b8df0b52a8f635d5df\"\u003e\u003ccode\u003eb186518\u003c/code\u003e\u003c/a\u003e Bump golang.org/x/crypto to v0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/3ef851682cd2a031294b7a2ac5e012a8bace0cfd\"\u003e\u003ccode\u003e3ef8516\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e from basecamp/go-1.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/fa31b967c1c64e007ef9468e8da1a608491656dc\"\u003e\u003ccode\u003efa31b96\u003c/code\u003e\u003c/a\u003e Add make check to run go vet and govulncheck\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.26...v0.1.27\"\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.47.0 to 4.50.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.50.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\u003cul\u003e\n\u003cli\u003e[dotnet] [bidi] Add image size to capture screenshots 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/18016\"\u003eSeleniumHQ/selenium#18016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] only need to run nightly Grid release after production release 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/18013\"\u003eSeleniumHQ/selenium#18013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] merge the release PR automatically once required checks pass 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/18018\"\u003eSeleniumHQ/selenium#18018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] move Selenium Manager publishing into sm-snapshot.yml so releases no longer skip it 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/18017\"\u003eSeleniumHQ/selenium#18017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Network async/event API proposal 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/17685\"\u003eSeleniumHQ/selenium#17685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Behavioral contract for the low-level WebDriver BiDi layer 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/17786\"\u003eSeleniumHQ/selenium#17786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove deprecated methods from 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/17993\"\u003eSeleniumHQ/selenium#17993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] cover BiDi key, wheel, release, and setFiles scenarios in the Input spec 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/18022\"\u003eSeleniumHQ/selenium#18022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] replace the blanket remote BiDi test suite with an opt-in list 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/18023\"\u003eSeleniumHQ/selenium#18023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] always use the latest Selenium Manager code when needed for tests 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/18024\"\u003eSeleniumHQ/selenium#18024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] cleanup for ruff b904 raise from  by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18030\"\u003eSeleniumHQ/selenium#18030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py]: Apply ClientConfig \u003ccode\u003euser_agent\u003c/code\u003e and \u003ccode\u003eextra_headers\u003c/code\u003e per connection by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17944\"\u003eSeleniumHQ/selenium#17944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add bazel flag to support cross-compiling all Selenium Manager binaries from Linux or Mac 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/18029\"\u003eSeleniumHQ/selenium#18029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] render WebSocket debug log lines lazily by \u003ca href=\"https://github.com/ikraamg\"\u003e\u003ccode\u003e@​ikraamg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18033\"\u003eSeleniumHQ/selenium#18033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Implement driver methods for installing and uninstalling web extensions via BiDi 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/17879\"\u003eSeleniumHQ/selenium#17879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Parse each BiDi command response only once by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18011\"\u003eSeleniumHQ/selenium#18011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run the requirements lock check on RBE with a platform-agnostic lock 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/18039\"\u003eSeleniumHQ/selenium#18039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Support DestinationFolder optional arg in StartScreencast 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/18042\"\u003eSeleniumHQ/selenium#18042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add Emulation.SetTextLayoutModeOverride 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/18043\"\u003eSeleniumHQ/selenium#18043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] use RBE to prepare and build the artifacts for releases 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/18041\"\u003eSeleniumHQ/selenium#18041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] move complete GitHub Actions test suite to nightly and run only high value smoke tests for PRs 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/18040\"\u003eSeleniumHQ/selenium#18040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type BaseOptions.set_capability parameters by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18027\"\u003eSeleniumHQ/selenium#18027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Use one HttpClient.Factory inside one RemoteWebDriver instance 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/18038\"\u003eSeleniumHQ/selenium#18038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Ignore exec.log recursively 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/18049\"\u003eSeleniumHQ/selenium#18049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] fetch the changelog history since the previous release tag instead of computing a depth 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/18044\"\u003eSeleniumHQ/selenium#18044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] prefix workflow names by how they run so the Actions sidebar groups them 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/18053\"\u003eSeleniumHQ/selenium#18053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run grid specific tests on windows during scheduled tests 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/18054\"\u003eSeleniumHQ/selenium#18054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate webref_cddl.bzl from the BiDi spec's external specifications list 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/18055\"\u003eSeleniumHQ/selenium#18055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] update BiDi schema generation to include external spec methods missing due to upstream spec omissions 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/18057\"\u003eSeleniumHQ/selenium#18057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type WebElement.get_attribute name by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18028\"\u003eSeleniumHQ/selenium#18028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL 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/18060\"\u003eSeleniumHQ/selenium#18060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [build] Include package license/notice files 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/18048\"\u003eSeleniumHQ/selenium#18048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet][java][js][py][rb] remove deprecated Firefox profile extension and cert methods 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/18066\"\u003eSeleniumHQ/selenium#18066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] resolve exceptions from the W3C state in ErrorHandler by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18059\"\u003eSeleniumHQ/selenium#18059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Fix the two CDDL repin fallouts breaking every Python target 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/18068\"\u003eSeleniumHQ/selenium#18068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Eliminate BiDi context on hot path 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/18069\"\u003eSeleniumHQ/selenium#18069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] [dotnet] [java] declare Firefox default preferences in each binding 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/18070\"\u003eSeleniumHQ/selenium#18070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema 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/18071\"\u003eSeleniumHQ/selenium#18071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] fix flaky tests 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/18073\"\u003eSeleniumHQ/selenium#18073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Align BiDi Generator with the low-level contract by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17973\"\u003eSeleniumHQ/selenium#17973\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.50.0 (2026-09-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v152, v153, v154\u003c/li\u003e\n\u003cli\u003erender WebSocket debug log lines lazily (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18033\"\u003e#18033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement driver methods for installing and uninstalling web extensions via BiDi (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17879\"\u003e#17879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18046\"\u003e#18046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] replace the BiDi KNOWN_INCOMPLETE allowlist with spec-shaped CDDL overlays (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18057\"\u003e#18057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18060\"\u003e#18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated Firefox profile extension and cert methods (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18066\"\u003e#18066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.48.0 (2026-08-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v150, v151, v152\u003c/li\u003e\n\u003cli\u003eadd low-level BiDi protocol integration specs (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17878\"\u003e#17878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17910\"\u003e#17910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix silent hang on oversized WebSocket frames (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17655\"\u003e#17655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ealways reject a missing required inbound BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17936\"\u003e#17936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eaccept a whole-valued float for an integer BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17939\"\u003e#17939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject an inbound BiDi scalar outside its union's declared arms (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17947\"\u003e#17947\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/ca2a96694916c818db1c388b7a1c14cf3380c098\"\u003e\u003ccode\u003eca2a966\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.50.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18105\"\u003e#18105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27ef65761b92bc943e5aae804459421727d1cf78\"\u003e\u003ccode\u003e27ef657\u003c/code\u003e\u003c/a\u003e [rb] add bidi tests for recent spec updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/76febdc715a93c9256eb2ac35624c406bc2159b7\"\u003e\u003ccode\u003e76febdc\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18082\"\u003e#18082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6f841aa1f8f3b73f10af195b9f2b8734dd7b81f7\"\u003e\u003ccode\u003e6f841aa\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a288e07fe4e5540bbf67c7d42cbaf66a1c61de\"\u003e\u003ccode\u003e52a288e\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/acd7ce82c602b9926ae65f1b1fb50af75b09f084\"\u003e\u003ccode\u003eacd7ce8\u003c/code\u003e\u003c/a\u003e [rb] remove stale Windows pending guard from Firefox signed directory addon test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/748477d0fcb941b8c7d50fc5d7d2ffb69ffe1c96\"\u003e\u003ccode\u003e748477d\u003c/code\u003e\u003c/a\u003e [rb] remove dead headless, browser and remote config_settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6ff202add86b748bb87e75655b1cdc0aa2d144a2\"\u003e\u003ccode\u003e6ff202a\u003c/code\u003e\u003c/a\u003e [rb] fix flaky test by not applying timeouts to the setup navigation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27c86e2055d5ecffdfaf6df1a15442b36fa6fcbb\"\u003e\u003ccode\u003e27c86e2\u003c/code\u003e\u003c/a\u003e [build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/59b28c40ef9c92d95abc6312f36da23cc9f444ef\"\u003e\u003ccode\u003e59b28c4\u003c/code\u003e\u003c/a\u003e [rb] fix nightly web extension spec failures on Safari and Windows\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplecov` from 1.1.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplecov-ruby/simplecov/releases\"\u003esimplecov's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report is generated again on Rails 8.1.4 when a \u003ccode\u003eparallelize_teardown\u003c/code\u003e hook calls \u003ccode\u003eSimpleCov.result\u003c/code\u003e. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops \u003ccode\u003eCoverage\u003c/code\u003e, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1308\"\u003esimplecov-ruby/simplecov#1308\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.3.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e compiles templates on Rails main again. Rails removed \u003ccode\u003eActionView::Template.registered_template_handler\u003c/code\u003e; the lookup reads \u003ccode\u003eActionView::Template::Handlers.template_handlers\u003c/code\u003e and still skips an extension with no handler. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1300\"\u003esimplecov-ruby/simplecov#1300\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e works again on JRuby on Windows, where 1.3.0 raised \u003ccode\u003eLoadError: Could not open library '.../libprism.dll'\u003c/code\u003e. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1299\"\u003esimplecov-ruby/simplecov#1299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov affected --run\u003c/code\u003e works on JRuby on Windows, where it crashed with \u003ccode\u003eNoMethodError\u003c/code\u003e because \u003ccode\u003eProcess.wait2\u003c/code\u003e answers no status there. On that platform the runner starts through \u003ccode\u003eKernel#system\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e refuses a symlink that points outside the report on JRuby on Windows too. JRuby's \u003ccode\u003eFile.realpath\u003c/code\u003e follows no symlinks there, so \u003ccode\u003eserve\u003c/code\u003e would have served the file the link pointed to, and \u003ccode\u003esimplecov clean\u003c/code\u003e and the \u003ccode\u003ecoverage.json\u003c/code\u003e lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003cp\u003eSimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates,\nteaches \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e to annotate CI hosts natively, and settles what the report says\nabout files and groups that hold nothing.\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax or as Ruby comments on a code line.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--annotate KIND\u003c/code\u003e turns \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of padding it at 100%, and the \u003ccode\u003erails\u003c/code\u003e profile declares its groups alphabetically.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e is the only way to measure a template now: a \u003ccode\u003ecover\u003c/code\u003e glob that matches one warns and leaves it out, and \u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods.\u003c/li\u003e\n\u003cli\u003eA file with nothing to cover reports the same percentage in the file list as it does in the source view.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.\u003c/li\u003e\n\u003cli\u003eA group that matched no files disappears from the HTML report, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile's group tabs come out in alphabetical order, so an existing project's tabs move.\u003c/li\u003e\n\u003cli\u003eA never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob matching \u003ccode\u003e.erb\u003c/code\u003e, \u003ccode\u003e.haml\u003c/code\u003e, or \u003ccode\u003e.slim\u003c/code\u003e warns and drops those files from the report. Measure templates with \u003ccode\u003ecover_views\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage.json\u003c/code\u003e stays at schema 1.3, unchanged by this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (\u003ccode\u003erequired_ruby_version \u0026gt;= 3.3\u003c/code\u003e), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: \u003ccode\u003eStaticCoverageExtractor.available?\u003c/code\u003e and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax (\u003ccode\u003e\u0026lt;%# simplecov:disable %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# simplecov:disable\u003c/code\u003e, \u003ccode\u003e/ simplecov:disable\u003c/code\u003e) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB \u003ccode\u003e%\u0026gt;\u003c/code\u003e opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim \u003ccode\u003e- # simplecov:disable\u003c/code\u003e line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the \u003ccode\u003econfirmable\u003c/code\u003e link it never renders instead of carrying it as uncovered. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1295\"\u003esimplecov-ruby/simplecov#1295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file all skip them, so the \u003ccode\u003erails\u003c/code\u003e profile's \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, and \u003ccode\u003eViews\u003c/code\u003e tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (\u003ccode\u003eDir[\u0026quot;app/*\u0026quot;].each { |dir| group File.basename(dir).capitalize, dir }\u003c/code\u003e) without checking each one for Ruby files first. A \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1293\"\u003esimplecov-ruby/simplecov#1293\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile declares its groups in alphabetical order: \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eControllers\u003c/code\u003e, \u003ccode\u003eHelpers\u003c/code\u003e, \u003ccode\u003eJobs\u003c/code\u003e, \u003ccode\u003eLibraries\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, \u003ccode\u003eModels\u003c/code\u003e, \u003ccode\u003eViews\u003c/code\u003e. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e annotate CI hosts natively. \u003ccode\u003e--annotate KIND\u003c/code\u003e on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (\u003ccode\u003epatch\u003c/code\u003e adds one per uncovered touched branch or method when the report measured them): \u003ccode\u003egithub\u003c/code\u003e emits \u003ccode\u003e::warning\u003c/code\u003e workflow commands, \u003ccode\u003egitlab\u003c/code\u003e a Code Quality report for the \u003ccode\u003ecodequality\u003c/code\u003e artifact, \u003ccode\u003erdjson\u003c/code\u003e reviewdog's Diagnostic Format for any host reviewdog posts to, \u003ccode\u003eazure\u003c/code\u003e \u003ccode\u003e##vso[task.logissue]\u003c/code\u003e logging commands, \u003ccode\u003eteamcity\u003c/code\u003e code inspection service messages, and \u003ccode\u003ebuildkite\u003c/code\u003e the Markdown body for \u003ccode\u003ebuildkite-agent annotate\u003c/code\u003e. \u003ccode\u003euncovered\u003c/code\u003e previously offered only \u003ccode\u003egithub\u003c/code\u003e, and its annotations now name the chosen criterion the way \u003ccode\u003epatch\u003c/code\u003e's do. Nothing else reaches stdout in that mode and \u003ccode\u003epatch --minimum\u003c/code\u003e still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/902\"\u003esimplecov-ruby/simplecov#902\u003c/a\u003e), from a time when simulation recorded no tuples for such a file and an empty set really did mean \u0026quot;nobody knows\u0026quot;. Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1296\"\u003esimplecov-ruby/simplecov#1296\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob that matches a template warns and leaves it out instead of simulating it. Simulation classifies lines as Ruby and parses for branches, so a swept-in template appeared with a comment counted as a missed line, an \u003ccode\u003e#id\u003c/code\u003e tag counted as never relevant, and no branches at all. The warning names the templates and points at \u003ccode\u003ecover_views\u003c/code\u003e, which compiles them and measures the real thing.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e toggle works in a template's own comment syntax (\u003ccode\u003e\u0026lt;%# :nocov: %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# :nocov:\u003c/code\u003e, \u003ccode\u003e/ :nocov:\u003c/code\u003e) and emits its deprecation warning there. The matcher read raw lines and needed the line to begin with \u003ccode\u003e#\u003c/code\u003e, so those forms were silently ignored while the Ruby-comment form inside an ERB code tag happened to work. The matcher now reads the same extracted Ruby the directives do.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods. The filter keeps a Coverage entry only when Prism finds a matching construct in the static source, which for a template measured with \u003ccode\u003ecover_views\u003c/code\u003e meant parsing ERB, Haml, or Slim as Ruby. That usually fails and the entry is kept, but a template whose text happens to parse (a Haml or Slim \u003ccode\u003e#id\u003c/code\u003e tag reads as a Ruby comment, and so does an ERB text line starting with \u003ccode\u003e#\u003c/code\u003e) yielded a confident wrong parse, and the template's own conditionals vanished from branch coverage. Templates now skip the parse, since everything a template reports is eval-generated by construction and the filter has nothing to distinguish there.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003cp\u003eSimpleCov 1.2 adds change-focused coverage, per-test attribution, production coverage, and a substantially expanded\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/simplecov-ruby/simplecov/blob/main/CHANGELOG.md\"\u003esimplecov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.2 (2026-09-30)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report is generated again on Rails 8.1.4 when a \u003ccode\u003eparallelize_teardown\u003c/code\u003e hook calls \u003ccode\u003eSimpleCov.result\u003c/code\u003e. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops \u003ccode\u003eCoverage\u003c/code\u003e, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1308\"\u003esimplecov-ruby/simplecov#1308\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.3.1 (2026-09-24)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e compiles templates on Rails main again. Rails removed \u003ccode\u003eActionView::Template.registered_template_handler\u003c/code\u003e; the lookup reads \u003ccode\u003eActionView::Template::Handlers.template_handlers\u003c/code\u003e and still skips an extension with no handler. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1300\"\u003esimplecov-ruby/simplecov#1300\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e works again on JRuby on Windows, where 1.3.0 raised \u003ccode\u003eLoadError: Could not open library '.../libprism.dll'\u003c/code\u003e. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1299\"\u003esimplecov-ruby/simplecov#1299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov affected --run\u003c/code\u003e works on JRuby on Windows, where it crashed with \u003ccode\u003eNoMethodError\u003c/code\u003e because \u003ccode\u003eProcess.wait2\u003c/code\u003e answers no status there. On that platform the runner starts through \u003ccode\u003eKernel#system\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e refuses a symlink that points outside the report on JRuby on Windows too. JRuby's \u003ccode\u003eFile.realpath\u003c/code\u003e follows no symlinks there, so \u003ccode\u003eserve\u003c/code\u003e would have served the file the link pointed to, and \u003ccode\u003esimplecov clean\u003c/code\u003e and the \u003ccode\u003ecoverage.json\u003c/code\u003e lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.3.0 (2026-09-12)\u003c/h1\u003e\n\u003cp\u003eSimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates,\nteaches \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e to annotate CI hosts natively, and settles what the report says\nabout files and groups that hold nothing.\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax or as Ruby comments on a code line.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--annotate KIND\u003c/code\u003e turns \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of padding it at 100%, and the \u003ccode\u003erails\u003c/code\u003e profile declares its groups alphabetically.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e is the only way to measure a template now: a \u003ccode\u003ecover\u003c/code\u003e glob that matches one warns and leaves it out, and \u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods.\u003c/li\u003e\n\u003cli\u003eA file with nothing to cover reports the same percentage in the file list as it does in the source view.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.\u003c/li\u003e\n\u003cli\u003eA group that matched no files disappears from the HTML report, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile's group tabs come out in alphabetical order, so an existing project's tabs move.\u003c/li\u003e\n\u003cli\u003eA never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob matching \u003ccode\u003e.erb\u003c/code\u003e, \u003ccode\u003e.haml\u003c/code\u003e, or \u003ccode\u003e.slim\u003c/code\u003e warns and drops those files from the report. Measure templates with \u003ccode\u003ecover_views\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage.json\u003c/code\u003e stays at schema 1.3, unchanged by this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (\u003ccode\u003erequired_ruby_version \u0026gt;= 3.3\u003c/code\u003e), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: \u003ccode\u003eStaticCoverageExtractor.available?\u003c/code\u003e and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax (\u003ccode\u003e\u0026lt;%# simplecov:disable %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# simplecov:disable\u003c/code\u003e, \u003ccode\u003e/ simplecov:disable\u003c/code\u003e) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB \u003ccode\u003e%\u0026gt;\u003c/code\u003e opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim \u003ccode\u003e- # simplecov:disable\u003c/code\u003e line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the \u003ccode\u003econfirmable\u003c/code\u003e link it never renders instead of carrying it as uncovered. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1295\"\u003esimplecov-ruby/simplecov#1295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file all skip them, so the \u003ccode\u003erails\u003c/code\u003e profile's \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, and \u003ccode\u003eViews\u003c/code\u003e tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (\u003ccode\u003eDir[\u0026quot;app/*\u0026quot;].each { |dir| group File.basename(dir).capitalize, dir }\u003c/code\u003e) without checking each one for Ruby files first. A \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1293\"\u003esimplecov-ruby/simplecov#1293\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile declares its groups in alphabetical order: \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eControllers\u003c/code\u003e, \u003ccode\u003eHelpers\u003c/code\u003e, \u003ccode\u003eJobs\u003c/code\u003e, \u003ccode\u003eLibraries\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, \u003ccode\u003eModels\u003c/code\u003e, \u003ccode\u003eViews\u003c/code\u003e. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e annotate CI hosts natively. \u003ccode\u003e--annotate KIND\u003c/code\u003e on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (\u003ccode\u003epatch\u003c/code\u003e adds one per uncovered touched branch or method when the report measured them): \u003ccode\u003egithub\u003c/code\u003e emits \u003ccode\u003e::warning\u003c/code\u003e workflow commands, \u003ccode\u003egitlab\u003c/code\u003e a Code Quality report for the \u003ccode\u003ecodequality\u003c/code\u003e artifact, \u003ccode\u003erdjson\u003c/code\u003e reviewdog's Diagnostic Format for any host reviewdog posts to, \u003ccode\u003eazure\u003c/code\u003e \u003ccode\u003e##vso[task.logissue]\u003c/code\u003e logging commands, \u003ccode\u003eteamcity\u003c/code\u003e code inspection service messages, and \u003ccode\u003ebuildkite\u003c/code\u003e the Markdown body for \u003ccode\u003ebuildkite-agent annotate\u003c/code\u003e. \u003ccode\u003euncovered\u003c/code\u003e previously offered only \u003ccode\u003egithub\u003c/code\u003e, and its annotations now name the chosen criterion the way \u003ccode\u003epatch\u003c/code\u003e's do. Nothing else reaches stdout in that mode and \u003ccode\u003epatch --minimum\u003c/code\u003e still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/902\"\u003esimplecov-ruby/simplecov#902\u003c/a\u003e), from a time when simulation recorded no tuples for such a file and an empty set really did mean \u0026quot;nobody knows\u0026quot;. Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1296\"\u003esimplecov-ruby/simplecov#1296\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/simplecov-ruby/simplecov/commit/52a8754ccc443b0f049493ec7f06920bdcf6ad28\"\u003e\u003ccode\u003e52a8754\u003c/code\u003e\u003c/a\u003e Bump version to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/4fb4ae1f2c92f0fdcbb0a4d80217706d46e8a217\"\u003e\u003ccode\u003e4fb4ae1\u003c/code\u003e\u003c/a\u003e Format a result collected before exit on Rails 8.1.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/14767413eeb89dab0051cf0b914725d9db5df252\"\u003e\u003ccode\u003e1476741\u003c/code\u003e\u003c/a\u003e bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/343a933b72ac5d8cacc11e7bccf1f881a75a6fd1\"\u003e\u003ccode\u003e343a933\u003c/code\u003e\u003c/a\u003e Stop leaking a flush thread in the forked-child production specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e64fcaa0a540f88d3e9bc79db0ec2abe08950132\"\u003e\u003ccode\u003ee64fcaa\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.323.0 to 1.325.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/cb8bd83fd13b3b7b863c149d487cdbd8264393fc\"\u003e\u003ccode\u003ecb8bd83\u003c/code\u003e\u003c/a\u003e Bump oxlint from 1.83.0 to 1.85.0 in /html_frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/4ee7894dd4feb3c18a30bb6d487e0266aed3318e\"\u003e\u003ccode\u003e4ee7894\u003c/code\u003e\u003c/a\u003e Bump version to 1.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/486e55e92a46b47ebe52ea97742105360fbe8c24\"\u003e\u003ccode\u003e486e55e\u003c/code\u003e\u003c/a\u003e bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/d2a62a86cd0fdba0813f0bc71b878c5c1aaeea29\"\u003e\u003ccode\u003ed2a62a8\u003c/code\u003e\u003c/a\u003e Resolve paths and wait on runners correctly on JRuby on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/3a2e08eb02983bdc6ba92ee4a520231cd6ad97bf\"\u003e\u003ccode\u003e3a2e08e\u003c/code\u003e\u003c/a\u003e Load Prism only when the static extractor runs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `twilio-ruby` from 7.11.1 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/twilio/twilio-ruby/releases\"\u003etwilio-ruby's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.11.3\u003c/h2\u003e\n\u003ch2\u003e\u003cstrong\u003eRelease Notes\u003c/strong\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eLibrary - Fix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[PR \u003ca href=\"https://redirect.github.com/twilio/twilio-ruby/issues/809\"\u003e#809\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/twilio/twilio-ruby/pull/809\"\u003etwilio/twilio-ruby#809\u003c/a\u003e): validate webhook signatures on percent-encoded request paths. Thanks to \u003ca href=\"https://github.com/manisha1997\"\u003e\u003ccode\u003e@​manisha1997\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTwiml\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eaudio_format\u003c/code\u003e and \u003ccode\u003esample_rate\u003c/code\u003e to Stream ...\n\n_Description has been truncated_","html_url":"https://github.com/josh-levinson/still_on/pull/58","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/josh-levinson%2Fstill_on/issues/58","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/58/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-10-05T09:55:49.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5709963397","node_id":"PR_kwDOULC95s8AAAABGrbR3A","number":21,"state":"closed","title":"build(deps): bump the ruby-starters group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-13T04:52:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-05T09:55:49.000Z","updated_at":"2026-10-13T04:52:55.000Z","time_to_close":673022,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"ruby-starters","update_count":4,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"image_processing","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/janko/image_processing"},{"name":"brakeman","old_version":"8.0.6","new_version":"8.1.0","repository_url":"https://github.com/presidentbeef/brakeman"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-starters group with 4 updates in the /languages/ruby/rails directory: [rails](https://github.com/rails/rails), [solid_cable](https://github.com/rails/solid_cable), [image_processing](https://github.com/janko/image_processing) and [brakeman](https://github.com/presidentbeef/brakeman).\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `image_processing` from 2.1.0 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/janko/image_processing/blob/master/CHANGELOG.md\"\u003eimage_processing's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.0 (2026-09-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSave in the \u003ccode\u003e#convert\u003c/code\u003e format when the destination path has no extension, such as a \u003ccode\u003e/dev/fd/N\u003c/code\u003e path (thanks to \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/d9737fbf8153c4b6d4869f9b943af063165e3c59\"\u003e\u003ccode\u003ed9737fb\u003c/code\u003e\u003c/a\u003e Set version to 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/8f7b53839b922f26407d07d62fbfee7d01d28a6e\"\u003e\u003ccode\u003e8f7b538\u003c/code\u003e\u003c/a\u003e Handle missing AVIF encoder in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/92086c5d3cad3de1b7c78d62296417a493d938eb\"\u003e\u003ccode\u003e92086c5\u003c/code\u003e\u003c/a\u003e Handle AVIF format on extensionless destinations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/5827e8364b626fd7110748251c6123d96caee6fc\"\u003e\u003ccode\u003e5827e83\u003c/code\u003e\u003c/a\u003e Save in the \u003ccode\u003e#convert\u003c/code\u003e format to an extensionless destination (\u003ca href=\"https://redirect.github.com/janko/image_processing/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/janko/image_processing/compare/v2.1.0...v2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brakeman` from 8.0.6 to 8.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/releases\"\u003ebrakeman's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate SonarQube report to use generic issue format (\u003ca href=\"https://github.com/fffx\"\u003e\u003ccode\u003e@​fffx\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude regex code in validation warnings (\u003ca href=\"https://github.com/eliotsykes\"\u003e\u003ccode\u003e@​eliotsykes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck validation regexes in non-activerecord models (\u003ca href=\"https://github.com/eliotsykes\"\u003e\u003ccode\u003e@​eliotsykes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip top-level vendor directory before recursive globbing (\u003ca href=\"https://github.com/ronocod\"\u003e\u003ccode\u003e@​ronocod\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.1+ positional enum syntax in SQL injection check (\u003ca href=\"https://github.com/cubasepp\"\u003e\u003ccode\u003e@​cubasepp\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eHaml::AttributeBuilder.build_class\u003c/code\u003e as an escaped output (\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string error (\u003ca href=\"https://github.com/shaicoleman\"\u003e\u003ccode\u003e@​shaicoleman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBetter help and error message for \u003ccode\u003e--ensure-latest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2036\"\u003e#2036\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/presidentbeef/brakeman/blob/main/CHANGES.md\"\u003ebrakeman's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e8.1.0 - 2026-09-30\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter help and error message for \u003ccode\u003e--ensure-latest\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix frozen string error (Shai Coleman)\u003c/li\u003e\n\u003cli\u003eUpdate Sonar report format (fangxing)\u003c/li\u003e\n\u003cli\u003eFix frozen \u003ccode\u003esrc\u003c/code\u003e string error\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eHaml::AttributeBuilder.build_class\u003c/code\u003e as an escaped output (Yuriy Tumanov)\u003c/li\u003e\n\u003cli\u003eInclude regex code in validation warnings (Eliot Sykes)\u003c/li\u003e\n\u003cli\u003eCheck validation regexes in non-activerecord models (Eliot Sykes)\u003c/li\u003e\n\u003cli\u003eSkip top-level vendor directory before recursive globbing (Conor O'Donnell)\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.1+ positional enum syntax in SQL injection check (Michael Vogl/Yuriy Tumanov)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c7781648630c789dd1a2f089e94b5d8c463169fb\"\u003e\u003ccode\u003ec778164\u003c/code\u003e\u003c/a\u003e Bump to 8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/4621407a8a63d28508f38f5bb6e7485e8cd326aa\"\u003e\u003ccode\u003e4621407\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/26ba01f0a77b996310c3c2516194fb2e3d5e3547\"\u003e\u003ccode\u003e26ba01f\u003c/code\u003e\u003c/a\u003e Support Rails 7.1+ positional enum syntax in SQL injection check (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2051\"\u003e#2051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/8f04922ad524cf57db87fb878449277693f5d339\"\u003e\u003ccode\u003e8f04922\u003c/code\u003e\u003c/a\u003e Skip top-level vendor directory before recursive globbing (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/f921f01ca318148bfa3d555aa97837847b4079de\"\u003e\u003ccode\u003ef921f01\u003c/code\u003e\u003c/a\u003e Check validation regexes in non-activerecord models (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2053\"\u003e#2053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/d62e919d1aa681ae257b59bc5df54ed211b81aae\"\u003e\u003ccode\u003ed62e919\u003c/code\u003e\u003c/a\u003e Fix CheckValidationRegex overly broad ignores (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2050\"\u003e#2050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/73bbc9961eaf425b2b4e4ecae32e4d375c6fd382\"\u003e\u003ccode\u003e73bbc99\u003c/code\u003e\u003c/a\u003e Recognize Haml::AttributeBuilder.build_class as an escaped output (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2052\"\u003e#2052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/71f8f69a2e1e9df7e3c51c734c5f6feed083f640\"\u003e\u003ccode\u003e71f8f69\u003c/code\u003e\u003c/a\u003e Fix typo in test_format_validation_with_multiline (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/0fd4dbcf8e3aad5c2de3b23eb92e6c9f2bb07e16\"\u003e\u003ccode\u003e0fd4dbc\u003c/code\u003e\u003c/a\u003e Add bundle install step to contributing doc (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/5de415c627af13232b03baeead3bba0161b87fda\"\u003e\u003ccode\u003e5de415c\u003c/code\u003e\u003c/a\u003e Fix ERB frozen \u003ccode\u003esrc\u003c/code\u003e error (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2048\"\u003e#2048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/presidentbeef/brakeman/compare/v8.0.6...v8.1.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/JasonTM17/ForgeBase/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/JasonTM17%2FForgeBase/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-10-05T09:16:41.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5709449527","node_id":"PR_kwDOSMsD0M8AAAABGrAljw","number":50,"state":"closed","title":"chore(deps): bump the minor-and-patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-13T02:39:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-05T09:16:41.000Z","updated_at":"2026-10-13T02:39:34.000Z","time_to_close":667369,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":5,"packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.25.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"brakeman","old_version":"8.0.6","new_version":"8.1.0","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"lefthook","old_version":"2.1.11","new_version":"2.1.16","repository_url":"https://github.com/evilmartians/lefthook"},{"name":"selenium-webdriver","old_version":"4.48.0","new_version":"4.50.0","repository_url":"https://github.com/SeleniumHQ/selenium"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.25.0` | `1.26.0` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.6` | `8.1.0` |\n| [lefthook](https://github.com/evilmartians/lefthook) | `2.1.11` | `2.1.16` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.48.0` | `4.50.0` |\n\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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.25.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.25.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brakeman` from 8.0.6 to 8.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/releases\"\u003ebrakeman's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate SonarQube report to use generic issue format (\u003ca href=\"https://github.com/fffx\"\u003e\u003ccode\u003e@​fffx\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude regex code in validation warnings (\u003ca href=\"https://github.com/eliotsykes\"\u003e\u003ccode\u003e@​eliotsykes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck validation regexes in non-activerecord models (\u003ca href=\"https://github.com/eliotsykes\"\u003e\u003ccode\u003e@​eliotsykes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip top-level vendor directory before recursive globbing (\u003ca href=\"https://github.com/ronocod\"\u003e\u003ccode\u003e@​ronocod\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.1+ positional enum syntax in SQL injection check (\u003ca href=\"https://github.com/cubasepp\"\u003e\u003ccode\u003e@​cubasepp\u003c/code\u003e\u003c/a\u003e / \u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eHaml::AttributeBuilder.build_class\u003c/code\u003e as an escaped output (\u003ca href=\"https://github.com/Eljees\"\u003e\u003ccode\u003e@​Eljees\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string error (\u003ca href=\"https://github.com/shaicoleman\"\u003e\u003ccode\u003e@​shaicoleman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBetter help and error message for \u003ccode\u003e--ensure-latest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2036\"\u003e#2036\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/presidentbeef/brakeman/blob/main/CHANGES.md\"\u003ebrakeman's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e8.1.0 - 2026-09-30\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter help and error message for \u003ccode\u003e--ensure-latest\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix frozen string error (Shai Coleman)\u003c/li\u003e\n\u003cli\u003eUpdate Sonar report format (fangxing)\u003c/li\u003e\n\u003cli\u003eFix frozen \u003ccode\u003esrc\u003c/code\u003e string error\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eHaml::AttributeBuilder.build_class\u003c/code\u003e as an escaped output (Yuriy Tumanov)\u003c/li\u003e\n\u003cli\u003eInclude regex code in validation warnings (Eliot Sykes)\u003c/li\u003e\n\u003cli\u003eCheck validation regexes in non-activerecord models (Eliot Sykes)\u003c/li\u003e\n\u003cli\u003eSkip top-level vendor directory before recursive globbing (Conor O'Donnell)\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.1+ positional enum syntax in SQL injection check (Michael Vogl/Yuriy Tumanov)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c7781648630c789dd1a2f089e94b5d8c463169fb\"\u003e\u003ccode\u003ec778164\u003c/code\u003e\u003c/a\u003e Bump to 8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/4621407a8a63d28508f38f5bb6e7485e8cd326aa\"\u003e\u003ccode\u003e4621407\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/26ba01f0a77b996310c3c2516194fb2e3d5e3547\"\u003e\u003ccode\u003e26ba01f\u003c/code\u003e\u003c/a\u003e Support Rails 7.1+ positional enum syntax in SQL injection check (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2051\"\u003e#2051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/8f04922ad524cf57db87fb878449277693f5d339\"\u003e\u003ccode\u003e8f04922\u003c/code\u003e\u003c/a\u003e Skip top-level vendor directory before recursive globbing (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/f921f01ca318148bfa3d555aa97837847b4079de\"\u003e\u003ccode\u003ef921f01\u003c/code\u003e\u003c/a\u003e Check validation regexes in non-activerecord models (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2053\"\u003e#2053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/d62e919d1aa681ae257b59bc5df54ed211b81aae\"\u003e\u003ccode\u003ed62e919\u003c/code\u003e\u003c/a\u003e Fix CheckValidationRegex overly broad ignores (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2050\"\u003e#2050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/73bbc9961eaf425b2b4e4ecae32e4d375c6fd382\"\u003e\u003ccode\u003e73bbc99\u003c/code\u003e\u003c/a\u003e Recognize Haml::AttributeBuilder.build_class as an escaped output (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2052\"\u003e#2052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/71f8f69a2e1e9df7e3c51c734c5f6feed083f640\"\u003e\u003ccode\u003e71f8f69\u003c/code\u003e\u003c/a\u003e Fix typo in test_format_validation_with_multiline (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2049\"\u003e#2049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/0fd4dbcf8e3aad5c2de3b23eb92e6c9f2bb07e16\"\u003e\u003ccode\u003e0fd4dbc\u003c/code\u003e\u003c/a\u003e Add bundle install step to contributing doc (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2047\"\u003e#2047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/5de415c627af13232b03baeead3bba0161b87fda\"\u003e\u003ccode\u003e5de415c\u003c/code\u003e\u003c/a\u003e Fix ERB frozen \u003ccode\u003esrc\u003c/code\u003e error (\u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2048\"\u003e#2048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/presidentbeef/brakeman/compare/v8.0.6...v8.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lefthook` from 2.1.11 to 2.1.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evilmartians/lefthook/releases\"\u003elefthook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.16\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e3ee04318fd06d56a70cc9c90dc8385b19918f520 ci: refactor publishing scripts (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e91407e537b2fa36539506963a33e582dca394798 deps: bump mod and text deps to resolve CVEs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1560\"\u003e#1560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebe6f0ae8793533449cb9a07a253fa9a381e82206 fix: preserve unrelated unstaged changes on conflict (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecf4ef1e19baf0581871f69b40914d64c94ff19d7 fix: test staging fixed files with partially staged\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.1.15\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e2388dde2b31dc9a782e967764046b41b404cece9 feat: propagate forced colors to hook commands via CLICOLOR_FORCE (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1547\"\u003e#1547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e49260b57c2a56bc4d65d09395458bb3ce3c63311 fix(lfs): do not pipe stdin into post-checkout git-lfs hook (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1523\"\u003e#1523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e38bc1c6cef3192a36002d0dcc37973416249c07e fix: quote paths in the generated hook shim (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1509\"\u003e#1509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e0892f5f256ebe162485492af5ca14c2ced45586f fix: remove color blending (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1558\"\u003e#1558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ef1de41cd5cd6a6c5e0179c65e00d5ed6d90078c2 fix: resolve push-files fallback against the remote-tracking ref (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e07ce565bcc73465bc18fb36561b935ee2a53eab6 fix: sanitize slashes in remote ref when building the checkout dir name (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ec465ca8ef4fc9ee0695aa4a9530fc404ed838b7a test(cmd): regression for valid fish shell completion output (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1527\"\u003e#1527\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.1.14\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003ev2.1.12\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eb8350fde604197b2422adfc4ae0af080725822b9 ci: fix npm publishing by bumping Node to 24 (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1508\"\u003e#1508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e9fb290d786a0e122fe113b1b49a45bbd0ffa7d28 fix: LEFTHOOK_OUTPUT precedence (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1506\"\u003e#1506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e2f0a9f37cef73e10d95043ba3754329a21850d57 fix: fail the hook when staging fixed files errors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1484\"\u003e#1484\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/evilmartians/lefthook/blob/master/CHANGELOG.md\"\u003elefthook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: test staging fixed files with partially staged by \u003ca href=\"https://github.com/mrexox\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: preserve unrelated unstaged changes on conflict (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1483\"\u003e#1483\u003c/a\u003e) by \u003ca href=\"https://github.com/Sakshamm-Goyal\"\u003e\u003ccode\u003e@​Sakshamm-Goyal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeps: bump mod and text deps to resolve CVEs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1560\"\u003e#1560\u003c/a\u003e) by \u003ca href=\"https://github.com/devindavies\"\u003e\u003ccode\u003e@​devindavies\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: refactor publishing scripts (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1559\"\u003e#1559\u003c/a\u003e) by \u003ca href=\"https://github.com/mrexox\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: do not pipe stdin into post-checkout git-lfs hook (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1523\"\u003e#1523\u003c/a\u003e) by \u003ca href=\"https://github.com/rwinkelman\"\u003e\u003ccode\u003e@​rwinkelman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove color blending (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1558\"\u003e#1558\u003c/a\u003e) by \u003ca href=\"https://github.com/mrexox\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve push-files fallback against the remote-tracking ref (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1485\"\u003e#1485\u003c/a\u003e) by \u003ca href=\"https://github.com/hamodywe\"\u003e\u003ccode\u003e@​hamodywe\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: regression for valid fish shell completion output (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1527\"\u003e#1527\u003c/a\u003e) by \u003ca href=\"https://github.com/rwinkelman\"\u003e\u003ccode\u003e@​rwinkelman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: sanitize slashes in remote ref when building the checkout dir name (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1486\"\u003e#1486\u003c/a\u003e) by \u003ca href=\"https://github.com/hamodywe\"\u003e\u003ccode\u003e@​hamodywe\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: quote paths in the generated hook shim (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1509\"\u003e#1509\u003c/a\u003e) by \u003ca href=\"https://github.com/addielaruee\"\u003e\u003ccode\u003e@​addielaruee\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: propagate forced colors to hook commands via CLICOLOR_FORCE (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1547\"\u003e#1547\u003c/a\u003e) by \u003ca href=\"https://github.com/Yash121l\"\u003e\u003ccode\u003e@​Yash121l\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.13/2.1.14 (2026-09-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: error when --job/--command matches nothing (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1512\"\u003e#1512\u003c/a\u003e) by \u003ca href=\"https://github.com/nityanand123gupta\"\u003e\u003ccode\u003e@​nityanand123gupta\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: disable tty things when stdout is not TTY (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1545\"\u003e#1545\u003c/a\u003e) by \u003ca href=\"https://github.com/mrexox\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document files inheritance for grouped jobs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1536\"\u003e#1536\u003c/a\u003e) by \u003ca href=\"https://github.com/chiliec\"\u003e\u003ccode\u003e@​chiliec\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: force colors when colors are explicitly enabled (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1538\"\u003e#1538\u003c/a\u003e) by \u003ca href=\"https://github.com/Yash121l\"\u003e\u003ccode\u003e@​Yash121l\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve file_types paths from the repo root (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1537\"\u003e#1537\u003c/a\u003e) by \u003ca href=\"https://github.com/Yash121l\"\u003e\u003ccode\u003e@​Yash121l\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: don't force-install hooks from the npm postinstall (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1510\"\u003e#1510\u003c/a\u003e) by \u003ca href=\"https://github.com/hamodywe\"\u003e\u003ccode\u003e@​hamodywe\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: quote template run examples (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/Guflly\"\u003e\u003ccode\u003e@​Guflly\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.12 (2026-08-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: fail the hook when staging fixed files errors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1484\"\u003e#1484\u003c/a\u003e) by \u003ca href=\"https://github.com/teddytennant\"\u003e\u003ccode\u003e@​teddytennant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: LEFTHOOK_OUTPUT precedence (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1506\"\u003e#1506\u003c/a\u003e) by \u003ca href=\"https://github.com/Yuki9814\"\u003e\u003ccode\u003e@​Yuki9814\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix npm publishing by bumping Node to 24 (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1508\"\u003e#1508\u003c/a\u003e) by \u003ca href=\"https://github.com/mariokresic\"\u003e\u003ccode\u003e@​mariokresic\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/evilmartians/lefthook/commit/433e6b9067d5d138bf63b47403e0df8895a40e33\"\u003e\u003ccode\u003e433e6b9\u003c/code\u003e\u003c/a\u003e 2.1.16: preserve unrelated unstaged changes on conflicts after autofixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/cf4ef1e19baf0581871f69b40914d64c94ff19d7\"\u003e\u003ccode\u003ecf4ef1e\u003c/code\u003e\u003c/a\u003e fix: test staging fixed files with partially staged\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/be6f0ae8793533449cb9a07a253fa9a381e82206\"\u003e\u003ccode\u003ebe6f0ae\u003c/code\u003e\u003c/a\u003e fix: preserve unrelated unstaged changes on conflict (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/91407e537b2fa36539506963a33e582dca394798\"\u003e\u003ccode\u003e91407e5\u003c/code\u003e\u003c/a\u003e deps: bump mod and text deps to resolve CVEs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1560\"\u003e#1560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/3ee04318fd06d56a70cc9c90dc8385b19918f520\"\u003e\u003ccode\u003e3ee0431\u003c/code\u003e\u003c/a\u003e ci: refactor publishing scripts (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1559\"\u003e#1559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/d050364655420db8a4241f2480942a8d8ddb3486\"\u003e\u003ccode\u003ed050364\u003c/code\u003e\u003c/a\u003e 2.1.15: small fixes to output and LFS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/49260b57c2a56bc4d65d09395458bb3ce3c63311\"\u003e\u003ccode\u003e49260b5\u003c/code\u003e\u003c/a\u003e fix(lfs): do not pipe stdin into post-checkout git-lfs hook (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1523\"\u003e#1523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/0892f5f256ebe162485492af5ca14c2ced45586f\"\u003e\u003ccode\u003e0892f5f\u003c/code\u003e\u003c/a\u003e fix: remove color blending (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1558\"\u003e#1558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/f1de41cd5cd6a6c5e0179c65e00d5ed6d90078c2\"\u003e\u003ccode\u003ef1de41c\u003c/code\u003e\u003c/a\u003e fix: resolve push-files fallback against the remote-tracking ref (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/c465ca8ef4fc9ee0695aa4a9530fc404ed838b7a\"\u003e\u003ccode\u003ec465ca8\u003c/code\u003e\u003c/a\u003e test(cmd): regression for valid fish shell completion output (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1527\"\u003e#1527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evilmartians/lefthook/compare/v2.1.11...v2.1.16\"\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.48.0 to 4.50.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.50.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\u003cul\u003e\n\u003cli\u003e[dotnet] [bidi] Add image size to capture screenshots 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/18016\"\u003eSeleniumHQ/selenium#18016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] only need to run nightly Grid release after production release 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/18013\"\u003eSeleniumHQ/selenium#18013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] merge the release PR automatically once required checks pass 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/18018\"\u003eSeleniumHQ/selenium#18018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] move Selenium Manager publishing into sm-snapshot.yml so releases no longer skip it 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/18017\"\u003eSeleniumHQ/selenium#18017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Network async/event API proposal 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/17685\"\u003eSeleniumHQ/selenium#17685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Behavioral contract for the low-level WebDriver BiDi layer 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/17786\"\u003eSeleniumHQ/selenium#17786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove deprecated methods from 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/17993\"\u003eSeleniumHQ/selenium#17993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] cover BiDi key, wheel, release, and setFiles scenarios in the Input spec 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/18022\"\u003eSeleniumHQ/selenium#18022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] replace the blanket remote BiDi test suite with an opt-in list 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/18023\"\u003eSeleniumHQ/selenium#18023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] always use the latest Selenium Manager code when needed for tests 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/18024\"\u003eSeleniumHQ/selenium#18024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] cleanup for ruff b904 raise from  by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18030\"\u003eSeleniumHQ/selenium#18030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py]: Apply ClientConfig \u003ccode\u003euser_agent\u003c/code\u003e and \u003ccode\u003eextra_headers\u003c/code\u003e per connection by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17944\"\u003eSeleniumHQ/selenium#17944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add bazel flag to support cross-compiling all Selenium Manager binaries from Linux or Mac 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/18029\"\u003eSeleniumHQ/selenium#18029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] render WebSocket debug log lines lazily by \u003ca href=\"https://github.com/ikraamg\"\u003e\u003ccode\u003e@​ikraamg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18033\"\u003eSeleniumHQ/selenium#18033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Implement driver methods for installing and uninstalling web extensions via BiDi 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/17879\"\u003eSeleniumHQ/selenium#17879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Parse each BiDi command response only once by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18011\"\u003eSeleniumHQ/selenium#18011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run the requirements lock check on RBE with a platform-agnostic lock 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/18039\"\u003eSeleniumHQ/selenium#18039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Support DestinationFolder optional arg in StartScreencast 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/18042\"\u003eSeleniumHQ/selenium#18042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add Emulation.SetTextLayoutModeOverride 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/18043\"\u003eSeleniumHQ/selenium#18043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] use RBE to prepare and build the artifacts for releases 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/18041\"\u003eSeleniumHQ/selenium#18041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] move complete GitHub Actions test suite to nightly and run only high value smoke tests for PRs 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/18040\"\u003eSeleniumHQ/selenium#18040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type BaseOptions.set_capability parameters by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18027\"\u003eSeleniumHQ/selenium#18027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Use one HttpClient.Factory inside one RemoteWebDriver instance 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/18038\"\u003eSeleniumHQ/selenium#18038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Ignore exec.log recursively 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/18049\"\u003eSeleniumHQ/selenium#18049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] fetch the changelog history since the previous release tag instead of computing a depth 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/18044\"\u003eSeleniumHQ/selenium#18044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] prefix workflow names by how they run so the Actions sidebar groups them 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/18053\"\u003eSeleniumHQ/selenium#18053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run grid specific tests on windows during scheduled tests 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/18054\"\u003eSeleniumHQ/selenium#18054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate webref_cddl.bzl from the BiDi spec's external specifications list 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/18055\"\u003eSeleniumHQ/selenium#18055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] update BiDi schema generation to include external spec methods missing due to upstream spec omissions 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/18057\"\u003eSeleniumHQ/selenium#18057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type WebElement.get_attribute name by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18028\"\u003eSeleniumHQ/selenium#18028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL 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/18060\"\u003eSeleniumHQ/selenium#18060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [build] Include package license/notice files 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/18048\"\u003eSeleniumHQ/selenium#18048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet][java][js][py][rb] remove deprecated Firefox profile extension and cert methods 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/18066\"\u003eSeleniumHQ/selenium#18066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] resolve exceptions from the W3C state in ErrorHandler by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18059\"\u003eSeleniumHQ/selenium#18059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Fix the two CDDL repin fallouts breaking every Python target 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/18068\"\u003eSeleniumHQ/selenium#18068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Eliminate BiDi context on hot path 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/18069\"\u003eSeleniumHQ/selenium#18069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] [dotnet] [java] declare Firefox default preferences in each binding 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/18070\"\u003eSeleniumHQ/selenium#18070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema 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/18071\"\u003eSeleniumHQ/selenium#18071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] fix flaky tests 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/18073\"\u003eSeleniumHQ/selenium#18073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Align BiDi Generator with the low-level contract by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17973\"\u003eSeleniumHQ/selenium#17973\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.50.0 (2026-09-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v152, v153, v154\u003c/li\u003e\n\u003cli\u003erender WebSocket debug log lines lazily (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18033\"\u003e#18033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement driver methods for installing and uninstalling web extensions via BiDi (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17879\"\u003e#17879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18046\"\u003e#18046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] replace the BiDi KNOWN_INCOMPLETE allowlist with spec-shaped CDDL overlays (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18057\"\u003e#18057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18060\"\u003e#18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated Firefox profile extension and cert methods (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18066\"\u003e#18066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\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/ca2a96694916c818db1c388b7a1c14cf3380c098\"\u003e\u003ccode\u003eca2a966\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.50.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18105\"\u003e#18105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27ef65761b92bc943e5aae804459421727d1cf78\"\u003e\u003ccode\u003e27ef657\u003c/code\u003e\u003c/a\u003e [rb] add bidi tests for recent spec updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/76febdc715a93c9256eb2ac35624c406bc2159b7\"\u003e\u003ccode\u003e76febdc\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18082\"\u003e#18082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6f841aa1f8f3b73f10af195b9f2b8734dd7b81f7\"\u003e\u003ccode\u003e6f841aa\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a288e07fe4e5540bbf67c7d42cbaf66a1c61de\"\u003e\u003ccode\u003e52a288e\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/acd7ce82c602b9926ae65f1b1fb50af75b09f084\"\u003e\u003ccode\u003eacd7ce8\u003c/code\u003e\u003c/a\u003e [rb] remove stale Windows pending guard from Firefox signed directory addon test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/748477d0fcb941b8c7d50fc5d7d2ffb69ffe1c96\"\u003e\u003ccode\u003e748477d\u003c/code\u003e\u003c/a\u003e [rb] remove dead headless, browser and remote config_settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6ff202add86b748bb87e75655b1cdc0aa2d144a2\"\u003e\u003ccode\u003e6ff202a\u003c/code\u003e\u003c/a\u003e [rb] fix flaky test by not applying timeouts to the setup navigation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27c86e2055d5ecffdfaf6df1a15442b36fa6fcbb\"\u003e\u003ccode\u003e27c86e2\u003c/code\u003e\u003c/a\u003e [build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/59b28c40ef9c92d95abc6312f36da23cc9f444ef\"\u003e\u003ccode\u003e59b28c4\u003c/code\u003e\u003c/a\u003e [rb] fix nightly web extension spec failures on Safari and Windows\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.48.0...selenium-4.50.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/alexandresilvestri/blog/pull/50","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandresilvestri%2Fblog/issues/50","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/50/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-10-03T00:23:17.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5685063562","node_id":"PR_kwDOQ6XWkc8AAAABGYDw_w","number":263,"state":"open","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-03T00:23:17.000Z","updated_at":"2026-10-03T00:23:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/git-kaz/istanding/pull/263","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-kaz%2Fistanding/issues/263","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/263/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-10-02T07:53:50.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5674543765","node_id":"PR_kwDOSLOQAM8AAAABGPq4lQ","number":44,"state":"closed","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-03T11:35:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-02T07:53:50.000Z","updated_at":"2026-10-03T11:35:53.000Z","time_to_close":99713,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/ryu/role_sample/pull/44","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryu%2Frole_sample/issues/44","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/44/packages"}},{"old_version":"4.0.0","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-10-02T06:57:34.000Z","version_change":"4.0.0 → 4.1.0","issue":{"uuid":"5674021417","node_id":"PR_kwDOSBLDL88AAAABGPQkEg","number":109,"state":"open","title":"Bump the ruby group across 1 directory with 9 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-10-02T06:57:34.000Z","updated_at":"2026-10-02T06:57:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby","update_count":9,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"solid_queue","old_version":"1.4.0","new_version":"1.7.0","repository_url":"https://github.com/rails/solid_queue"},{"name":"solid_cable","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.24.6","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.22","new_version":"0.1.26","repository_url":"https://github.com/basecamp/thruster"},{"name":"image_processing","old_version":"2.0.2","new_version":"2.1.0","repository_url":"https://github.com/janko/image_processing"},{"name":"brakeman","old_version":"8.0.5","new_version":"8.0.6","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"selenium-webdriver","old_version":"4.45.0","new_version":"4.49.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rack-proxy","old_version":"1.0.3","new_version":"2.0.1","repository_url":"https://github.com/ncr/rack-proxy"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [solid_queue](https://github.com/rails/solid_queue) | `1.4.0` | `1.7.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.0` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.24.6` | `1.26.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.22` | `0.1.26` |\n| [image_processing](https://github.com/janko/image_processing) | `2.0.2` | `2.1.0` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `8.0.5` | `8.0.6` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.45.0` | `4.49.0` |\n| [rack-proxy](https://github.com/ncr/rack-proxy) | `1.0.3` | `2.0.1` |\n\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\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.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\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/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_queue` from 1.4.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_queue/releases\"\u003esolid_queue's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 - batches\u003c/h2\u003e\n\u003cp\u003eThis is a big one! Solid Queue finally supports \u003ca href=\"https://github.com/rails/solid_queue#batch-jobs\"\u003ejob batches\u003c/a\u003e thanks to \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e.   Check the README for more details about how to use these. This took ages despite being a very requested feature 😅 Big thanks to \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e for his patience, refinements and production-app tests!\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that concurrency + bulk enqueuing is a perf caveat, not unsafe by \u003ca href=\"https://github.com/Gnirt\"\u003e\u003ccode\u003e@​Gnirt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/785\"\u003erails/solid_queue#785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for polling queries in logging tests instead of sleeping by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/775\"\u003erails/solid_queue#775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep semaphore slots held while blocked jobs are enqueued in concurrency test by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/776\"\u003erails/solid_queue#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive in-flight jobs enough pause to survive slow shutdowns in tests by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/782\"\u003erails/solid_queue#782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude the error in fail_many_claimed events and document recovery by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/779\"\u003erails/solid_queue#779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace terminated forks even if releasing their claimed jobs fails by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/781\"\u003erails/solid_queue#781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonour TERM received during supervisor boot before forking workers by \u003ca href=\"https://github.com/rafael-pissardo\"\u003e\u003ccode\u003e@​rafael-pissardo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/770\"\u003erails/solid_queue#770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch Support by \u003ca href=\"https://github.com/jpcamara\"\u003e\u003ccode\u003e@​jpcamara\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/142\"\u003erails/solid_queue#142\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/Gnirt\"\u003e\u003ccode\u003e@​Gnirt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/785\"\u003erails/solid_queue#785\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/solid_queue/compare/v1.6.0...v1.7.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.6.0...v1.7.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.0 - fiber execution mode (with Async)\u003c/h2\u003e\n\u003cp\u003eA long-awaited feature thanks to \u003ca href=\"https://github.com/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e on this release: instead of using a thread pool to run jobs in multiple threads per works, you can now use \u003ca href=\"https://docs.ruby-lang.org/en/master/Fiber.html\"\u003efibers\u003c/a\u003e on a single fiber reactor thread. To use this, you just need to specify the number of fibers instead of the number of threads in your worker configuration, like this:\u003c/p\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eworkers:\r\n  - queues: \u0026quot;api*\u0026quot;\r\n    fibers: 100\r\n    polling_interval: 0.05\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt uses \u003ca href=\"https://github.com/socketry/async\"\u003eAsync\u003c/a\u003e under the hood, so you need to have that as a dependency for it to work. Also, you need to be using fiber isolation in Rails (\u003ccode\u003econfig.active_support.isolation_level`` = :fiber\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eThis can be very useful for I/O-bound workloads, such as those involving LLM calls.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fiber worker execution mode by \u003ca href=\"https://github.com/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/728\"\u003erails/solid_queue#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRoll back transactions leaked by killed job threads in tests by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/773\"\u003erails/solid_queue#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to update dynamic recurring tasks by \u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/777\"\u003erails/solid_queue#777\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/crmne\"\u003e\u003ccode\u003e@​crmne\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/728\"\u003erails/solid_queue#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wintan1418\"\u003e\u003ccode\u003e@​wintan1418\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/777\"\u003erails/solid_queue#777\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/solid_queue/compare/v1.5.1...v1.6.0\"\u003ehttps://github.com/rails/solid_queue/compare/v1.5.1...v1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix flaky tests caused by leaked job threads and signal timing by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/766\"\u003erails/solid_queue#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an update generator to copy new migrations by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/765\"\u003erails/solid_queue#765\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait for the continuable job to start before interrupting it by \u003ca href=\"https://github.com/rosa\"\u003e\u003ccode\u003e@​rosa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/767\"\u003erails/solid_queue#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd --only-recurring to run just the recurring scheduler by \u003ca href=\"https://github.com/rafael-pissardo\"\u003e\u003ccode\u003e@​rafael-pissardo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/757\"\u003erails/solid_queue#757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse with_connection in DistinctValues by \u003ca href=\"https://github.com/trevorturk\"\u003e\u003ccode\u003e@​trevorturk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/769\"\u003erails/solid_queue#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace forked processes that fail to boot by \u003ca href=\"https://github.com/sapandiwakar\"\u003e\u003ccode\u003e@​sapandiwakar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_queue/pull/760\"\u003erails/solid_queue#760\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/e2b53849c715b29fa2d97a939097bd1beaea4bc9\"\u003e\u003ccode\u003ee2b5384\u003c/code\u003e\u003c/a\u003e Bump solid_queue to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/5352228d24eae58200ee7142f53ad36c942b7de2\"\u003e\u003ccode\u003e5352228\u003c/code\u003e\u003c/a\u003e Reset pooled connections when flipping the batches schema in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/112bb1cb66c399d16de3b48afcf7c7ace71ae553\"\u003e\u003ccode\u003e112bb1c\u003c/code\u003e\u003c/a\u003e Refine batch support after a full review\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/1bcac835608712dcb24a988e70e0b7aca5e31221\"\u003e\u003ccode\u003e1bcac83\u003c/code\u003e\u003c/a\u003e Add batch support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/fcb5f7acf26b4f91df2ba699d8990f5dbb645580\"\u003e\u003ccode\u003efcb5f7a\u003c/code\u003e\u003c/a\u003e Name the supervisor's stop checkpoint and simplify its lifecycle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/124176afb0dd6637238a86274390dc961a7312f2\"\u003e\u003ccode\u003e124176a\u003c/code\u003e\u003c/a\u003e Honour TERM received during supervisor boot before forking workers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/174cb071f4edfadc878eea89b18e4fdf5f2aa733\"\u003e\u003ccode\u003e174cb07\u003c/code\u003e\u003c/a\u003e Protect the shutdown reap from release failures too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/0526401f0dcf8cd984f26a564f81eb876d1b7f0b\"\u003e\u003ccode\u003e0526401\u003c/code\u003e\u003c/a\u003e Replace terminated forks even if releasing their claimed jobs fails\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/6816e52bb5a3f31e01af4796f11fb115fb1cf722\"\u003e\u003ccode\u003e6816e52\u003c/code\u003e\u003c/a\u003e Include the error in fail_many_claimed events and document recovery\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_queue/commit/fc5fb599930f5bb677d91cf2729a611b651ee6b3\"\u003e\u003ccode\u003efc5fb59\u003c/code\u003e\u003c/a\u003e Wait longer for the supervisor to fail the killed worker's job\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_queue/compare/v1.4.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.1.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.6 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\u003c/a\u003e\u003c/p\u003e\n\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.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.26.0\"\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.22 to 0.1.26\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/main/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.26 / 2026-08-24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd X-Request-ID header to requests and logs (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.26.6 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.25 / 2026-08-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass all uncacheable requests (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.24 / 2026-08-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse struct types as cache keys\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.1.23 / 2026-07-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild with Go 1.26.5 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/140\"\u003e#140\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/basecamp/thruster/commit/cda91adeadc3b79124a1dc236edc48e1d11bd838\"\u003e\u003ccode\u003ecda91ad\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/318a0fc4e72307ad1e2ff5200695368d5d74188e\"\u003e\u003ccode\u003e318a0fc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/148\"\u003e#148\u003c/a\u003e from basecamp/request-id\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/f25e0fb2902c0b5e9e85b93306d4f4c290a94dc2\"\u003e\u003ccode\u003ef25e0fb\u003c/code\u003e\u003c/a\u003e Keep owned headers out of hop-by-hop stripping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/e95cad76476cdb6eebd93e2d8bf450697ef19f60\"\u003e\u003ccode\u003ee95cad7\u003c/code\u003e\u003c/a\u003e Add X-Request-ID to requests, responses and logs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/de6ec48c4d82bf1102ad4dc58cd1c91996aa50f3\"\u003e\u003ccode\u003ede6ec48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/147\"\u003e#147\u003c/a\u003e from basecamp/go-1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/5a33fe7bb080d5b27956704eb84a90eb28a75136\"\u003e\u003ccode\u003e5a33fe7\u003c/code\u003e\u003c/a\u003e Update x/crypto, x/net\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/8e265077815ca611cb91255f0102ed4c33e73588\"\u003e\u003ccode\u003e8e26507\u003c/code\u003e\u003c/a\u003e Update klauspost/compress to v1.19.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/06f3e8aacec1d2acbf43652982c9280a8ebd5fb5\"\u003e\u003ccode\u003e06f3e8a\u003c/code\u003e\u003c/a\u003e Build with Go 1.27.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/e7173c55c0ff7762c7747cdbb403dffc778c5462\"\u003e\u003ccode\u003ee7173c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/145\"\u003e#145\u003c/a\u003e from erikthoreson24/bump-go-1.26.6-security\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/f84d58d665f293ac2dcf6e28e7f41d31d90c1ce4\"\u003e\u003ccode\u003ef84d58d\u003c/code\u003e\u003c/a\u003e bump go to 1.26.6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.22...v0.1.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `image_processing` from 2.0.2 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/janko/image_processing/blob/master/CHANGELOG.md\"\u003eimage_processing's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.0 (2026-09-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[minimagick] Add \u003ccode\u003einherit_fds:\u003c/code\u003e so a loader can name an already-open input (thanks to \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3 (2026-08-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePrevent remote code execution when operation names come from user input, closing bypasses through the \u003ccode\u003e#operation\u003c/code\u003e meta-builder, \u003ccode\u003e#method_missing\u003c/code\u003e, and nested \u003ccode\u003e#send\u003c/code\u003e calls (reported by \u003ca href=\"https://github.com/szymonsec\"\u003e\u003ccode\u003e@​szymonsec\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[minimagick] Prevent remote code execution through unsafe public methods (e.g. \u003ccode\u003e#instance_eval\u003c/code\u003e, \u003ccode\u003e#send\u003c/code\u003e) passed as loader/saver option names\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/janko/image_processing/commit/3d990c3cd3f478eda5a9373d48f6f0c39e615b72\"\u003e\u003ccode\u003e3d990c3\u003c/code\u003e\u003c/a\u003e Set version to 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/722d900ea46e8a701e7513e1ec45cdf434229eae\"\u003e\u003ccode\u003e722d900\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003einherit_fds:\u003c/code\u003e so a loader can name an already-open input (\u003ca href=\"https://redirect.github.com/janko/image_processing/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/1611c00ed4eb3764e4b85db006c5667a0c50e817\"\u003e\u003ccode\u003e1611c00\u003c/code\u003e\u003c/a\u003e Bump to 2.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/8cd14e9cac4fd6dc7e27dfee2fb87d694a8697fd\"\u003e\u003ccode\u003e8cd14e9\u003c/code\u003e\u003c/a\u003e Test on JRuby 10.1.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/28684e76c018e73eea9928045290b5766569e92e\"\u003e\u003ccode\u003e28684e7\u003c/code\u003e\u003c/a\u003e Close more RCE security gaps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/janko/image_processing/commit/0360dbd0b75f04e02b7eff6ad2234fd23e088fdf\"\u003e\u003ccode\u003e0360dbd\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eruby2_keywords\u003c/code\u003e usage (\u003ca href=\"https://redirect.github.com/janko/image_processing/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/janko/image_processing/compare/v2.0.2...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brakeman` from 8.0.5 to 8.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/presidentbeef/brakeman/releases\"\u003ebrakeman's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.6 - EOL Dates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix EOL date for Rails 8.0 (\u003ca href=\"https://github.com/yeaseul-kim\"\u003e\u003ccode\u003e@​yeaseul-kim\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix command injection false positives (\u003ca href=\"https://github.com/JacobEvelyn\"\u003e\u003ccode\u003e@​JacobEvelyn\u003c/code\u003e\u003c/a\u003e )\u003c/li\u003e\n\u003cli\u003eFix unused variable warning (\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd EOL dates for Rails 8.1 and Ruby 4.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/presidentbeef/brakeman/blob/main/CHANGES.md\"\u003ebrakeman's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e8.0.6 - 2026-08-13\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix EOL date for Rails 8.0 (yeaseul-kim)\u003c/li\u003e\n\u003cli\u003eAdd EOL dates for Rails 8.1 and Ruby 4.0\u003c/li\u003e\n\u003cli\u003eFix command injection false positives (Jacob Evelyn)\u003c/li\u003e\n\u003cli\u003eFix unused variable warning (viralpraxis)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/fffc4837becbc25bb8ca44a04e9b2f155b2bec6d\"\u003e\u003ccode\u003efffc483\u003c/code\u003e\u003c/a\u003e Bump to 8.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/b7218fe82dc132005b5d84cc37e0da4ee4b4169b\"\u003e\u003ccode\u003eb7218fe\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/c6be6cc1316d3c89d331adcf31923840e3fc717d\"\u003e\u003ccode\u003ec6be6cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2034\"\u003e#2034\u003c/a\u003e from yeaseul-kim/fix-rails-8-0-eol-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/4c191ddfa69ee3af6656fde09c122fdf2a64e624\"\u003e\u003ccode\u003e4c191dd\u003c/code\u003e\u003c/a\u003e Fix EOL date for Rails 8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/e7bda16713762deef3137ced91dffdef32c98c2b\"\u003e\u003ccode\u003ee7bda16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2033\"\u003e#2033\u003c/a\u003e from presidentbeef/add-ruby-rails-eol-dates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/dd4f0b96a560a1c9144bece590a9d0426f42140d\"\u003e\u003ccode\u003edd4f0b9\u003c/code\u003e\u003c/a\u003e Add EOL date for Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/7ca100ac2d571d9f23c50dd4be9e86cc406edc3b\"\u003e\u003ccode\u003e7ca100a\u003c/code\u003e\u003c/a\u003e Add EOL date for Rails 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/a53a456e625216b677f9da2d93be55385f8d2abb\"\u003e\u003ccode\u003ea53a456\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2022\"\u003e#2022\u003c/a\u003e from JacobEvelyn/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/bf3fdc91c071501047e59cadd5d0ff188ea3955b\"\u003e\u003ccode\u003ebf3fdc9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/presidentbeef/brakeman/issues/2030\"\u003e#2030\u003c/a\u003e from viralpraxis/fix-unusued-gem-release-date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/presidentbeef/brakeman/commit/20f74ac60125c8d162241a38535a6ce3d027b988\"\u003e\u003ccode\u003e20f74ac\u003c/code\u003e\u003c/a\u003e \u003ccode\u003eBrakeman.ensure_latest\u003c/code\u003e: fix unsued \u003ccode\u003erelease_date\u003c/code\u003e variable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/presidentbeef/brakeman/compare/v8.0.5...v8.0.6\"\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.45.0 to 4.49.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.49.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\u003cul\u003e\n\u003cli\u003e[build] improve pre-release workflow ordering 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/17963\"\u003eSeleniumHQ/selenium#17963\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] track the generated BiDi schema 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/17962\"\u003eSeleniumHQ/selenium#17962\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Fix various missing fields in DTO 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/17961\"\u003eSeleniumHQ/selenium#17961\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Fix mismatch of proxy json property names 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/17960\"\u003eSeleniumHQ/selenium#17960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Fix realm type enum serialization 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/17959\"\u003eSeleniumHQ/selenium#17959\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Fix NamespaceUri json property name 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/17958\"\u003eSeleniumHQ/selenium#17958\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Avoid massive command descriptors allocation 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/17965\"\u003eSeleniumHQ/selenium#17965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add browsing context screencast support 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/17941\"\u003eSeleniumHQ/selenium#17941\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js][py] Capitalize non-Latin text in the getVisibleText atom 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/17964\"\u003eSeleniumHQ/selenium#17964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js][py][rb] derive BiDi field names and enum value types in the schema 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/17966\"\u003eSeleniumHQ/selenium#17966\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] chore fix for unreachable mypy warnings by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17969\"\u003eSeleniumHQ/selenium#17969\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] wire print_pdf_tests.py into the browser test suites 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/17976\"\u003eSeleniumHQ/selenium#17976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate compact execution log by \u003ca href=\"https://github.com/iamricard\"\u003e\u003ccode\u003e@​iamricard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17977\"\u003eSeleniumHQ/selenium#17977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] chore: enable mypy disallow untyped decorators and update type hints by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17974\"\u003eSeleniumHQ/selenium#17974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[grid] Fix 500 when downloading a file whose name contains spaces by \u003ca href=\"https://github.com/ashrafiucse\"\u003e\u003ccode\u003e@​ashrafiucse\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17968\"\u003eSeleniumHQ/selenium#17968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] add the LICENSE and NOTICE files to the jars created 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/17601\"\u003eSeleniumHQ/selenium#17601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Remove deprecated GET /session/{sessionId}/se/files/{fileName} endpoint 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/17982\"\u003eSeleniumHQ/selenium#17982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] shrink published javadoc jars 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/17957\"\u003eSeleniumHQ/selenium#17957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] pin the rules_rs zlib bootstrap to an immutable snapshot 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/17985\"\u003eSeleniumHQ/selenium#17985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add a daily workflow to update the pinned CDDL specs 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/17972\"\u003eSeleniumHQ/selenium#17972\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] fix Windows architecture detection under WOW64 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/17987\"\u003eSeleniumHQ/selenium#17987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] build Selenium Manager Linux binaries natively and pin the Rust toolchain 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/17988\"\u003eSeleniumHQ/selenium#17988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run the BiDi tests against the Grid server 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/17980\"\u003eSeleniumHQ/selenium#17980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] fix flaky BiDi input tests that raced the page's autofocus 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/17981\"\u003eSeleniumHQ/selenium#17981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] raise typed WebDriver errors for BiDi wire error codes 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/17952\"\u003eSeleniumHQ/selenium#17952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] bump rules_rs to 0.0.108 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/17997\"\u003eSeleniumHQ/selenium#17997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] remove stale xfail markers from python tests by \u003ca href=\"https://github.com/aayushisabharwal\"\u003e\u003ccode\u003e@​aayushisabharwal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18002\"\u003eSeleniumHQ/selenium#18002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] populate linux bazel cache from gh-cache workflow instead of RBE 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/18003\"\u003eSeleniumHQ/selenium#18003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] only embed the git revision in SourceLink metadata when stamping 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/18004\"\u003eSeleniumHQ/selenium#18004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] run Rust tests and build Selenium Manager from source on Windows 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/17998\"\u003eSeleniumHQ/selenium#17998\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings 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/17999\"\u003eSeleniumHQ/selenium#17999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove try-catch while opening a new window \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17754\"\u003e#17754\u003c/a\u003e 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/17996\"\u003eSeleniumHQ/selenium#17996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add Launchpad fallback for the rules_rs zlib .deb fetch 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/18006\"\u003eSeleniumHQ/selenium#18006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Upgrade rules_rs to 0.0.109 and \u003ca href=\"https://github.com/llvm\"\u003e\u003ccode\u003e@​llvm\u003c/code\u003e\u003c/a\u003e to 0.8.19 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/17929\"\u003eSeleniumHQ/selenium#17929\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] add BiDi upload tests that verify files actually reach the server 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/18007\"\u003eSeleniumHQ/selenium#18007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] Add license and notice links to Selenium Manager help by \u003ca href=\"https://github.com/shubmittal\"\u003e\u003ccode\u003e@​shubmittal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17986\"\u003eSeleniumHQ/selenium#17986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] Add support for Chrome arm64 on Linux by \u003ca href=\"https://github.com/dennisameling\"\u003e\u003ccode\u003e@​dennisameling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17915\"\u003eSeleniumHQ/selenium#17915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove let's guess URI encoding 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/17995\"\u003eSeleniumHQ/selenium#17995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] adopt the worthwhile ruff 0.16 rule families (tranches 1 and 2) 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/17992\"\u003eSeleniumHQ/selenium#17992\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.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.48.0 (2026-08-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v150, v151, v152\u003c/li\u003e\n\u003cli\u003eadd low-level BiDi protocol integration specs (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17878\"\u003e#17878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17910\"\u003e#17910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix silent hang on oversized WebSocket frames (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17655\"\u003e#17655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ealways reject a missing required inbound BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17936\"\u003e#17936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eaccept a whole-valued float for an integer BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17939\"\u003e#17939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject an inbound BiDi scalar outside its union's declared arms (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17947\"\u003e#17947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.47.0 (2026-08-10)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v149, v150, v151\u003c/li\u003e\n\u003cli\u003esupport WebDriver BiDi on Safari Preview and move #bidi onto Driver (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17729\"\u003e#17729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elink generated BiDi elements to their spec definitions (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17781\"\u003e#17781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd objectOnly/preserveExtras/scalar-primitive BiDi schema signals (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17784\"\u003e#17784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003econstruct the BiDi transport inside the domain from a connection (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17796\"\u003e#17796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eroute BiDiBridge navigation through the generated Protocol::BrowsingContext (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17785\"\u003e#17785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresolve spec runfiles via Bazel::Runfiles (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17810\"\u003e#17810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] standardize generated-file license and not to edit markers across generators (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17816\"\u003e#17816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate nullable-constant BiDi params outbound (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17818\"\u003e#17818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] upgrade rules_ruby to 0.28.0 and drop vendored Bazel::Runfiles workaround (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17824\"\u003e#17824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Merge vendor cddl files into shared BiDi schema and implement custom Firefox webExtension options (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17840\"\u003e#17840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[grid] honor client-advertised se:remoteUrl for reachable BiDi/CDP/VNC URLs (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17790\"\u003e#17790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etolerate and warn on missing required inbound BiDi fields, with SE_BIDI_STRICT to escalate (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17844\"\u003e#17844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated FTP proxy support (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17846\"\u003e#17846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprevent CDP access with Firefox (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17849\"\u003e#17849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest matchers assert log entries by id and optional messages and match severity (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17848\"\u003e#17848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[bidi] Correct float/enum type fidelity in the shared schema and validate primitives outbound in Ruby (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17852\"\u003e#17852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[bidi] mark BiDi types extensible per spec and update Ruby handling (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17853\"\u003e#17853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eraise typed WebDriver errors for BiDi from a generated error-code map (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17855\"\u003e#17855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eallow pending test guards to require matching provided exception (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17859\"\u003e#17859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epass --enable-chrome-logs unless CHROME_LOG_FILE is set (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17858\"\u003e#17858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport custom vendor specific capabilities in options classes (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17862\"\u003e#17862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate BiDi outbound ref fields against their declared type (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17861\"\u003e#17861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egenerate BiDi domain type accessors and union variant factories (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17865\"\u003e#17865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edeprecate invalid Firefox profile code (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17871\"\u003e#17871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17873\"\u003e#17873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.46.0 (2026-07-10)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v148, v149, v150\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/bedb24f6f703876e7e4c5d506f0d697eb358c720\"\u003e\u003ccode\u003ebedb24f\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.49.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18012\"\u003e#18012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/0536451d5b340478614e5a2fdba898dec3e59e3a\"\u003e\u003ccode\u003e0536451\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/0aaee1e6a990a8383ae04dfb607924f2cd1bc19f\"\u003e\u003ccode\u003e0aaee1e\u003c/code\u003e\u003c/a\u003e [build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/59ea9e026420a20e952b734fc5e07d985f363af8\"\u003e\u003ccode\u003e59ea9e0\u003c/code\u003e\u003c/a\u003e [rb] stop serializing BiDi and DevTools specs under remote execution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6776d3704981cd39df18046739bfea3b1e6795fa\"\u003e\u003ccode\u003e6776d37\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f4721fddc0158a20d0e31397e89ca1c1bbe72991\"\u003e\u003ccode\u003ef4721fd\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17991\"\u003e#17991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/507b67e1634f0cba23c13d83346243ecf5aa88ea\"\u003e\u003ccode\u003e507b67e\u003c/code\u003e\u003c/a\u003e [rb] guard the Firefox Linux screencast failure to stable only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/4eaa35b280da8a53c0821205c4bd7c3f2d024eee\"\u003e\u003ccode\u003e4eaa35b\u003c/code\u003e\u003c/a\u003e [rb] request the configured browser version when finding drivers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/f7f60f942ee07238d9e31a37d1cfdb0cbd9c1f36\"\u003e\u003ccode\u003ef7f60f9\u003c/code\u003e\u003c/a\u003e [rb] wait for both downloads to finish before listing them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/dc4fc25ac86b79379859f6a32aee2938b917a7c5\"\u003e\u003ccode\u003edc4fc25\u003c/code\u003e\u003c/a\u003e [rb] give the Grid two minutes to become ready in remote specs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.45.0...selenium-4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rack-proxy` from 1.0.3 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ncr/rack-proxy/releases\"\u003erack-proxy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.1 — RequestBodyStream#read accepts an optional length (WebMock fix)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe bounded request body stream accepts \u003ccode\u003eIO#read\u003c/code\u003e's optional \u003ccode\u003elength\u003c/code\u003e\nargument. Net::HTTP instrumentation layers that read the whole request body\nat once (WebMock's adapter, for example) raised \u003ccode\u003eArgumentError\u003c/code\u003e against\n2.0.0, failing the test suite of any app that proxies a request body. (\u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.0 — HTTP framing and response hardening\u003c/h2\u003e\n\u003cp\u003eSecurity hardening for request/response framing, resource limits, and Rack compatibility. This major release includes changes to non-streaming retries and response-hook types.\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNon-streaming requests no longer automatically retry transport failures.\nThis prevents replay with consumed request input; applications that require\nretries must implement them with a fresh body and an explicit retry policy.\u003c/li\u003e\n\u003cli\u003eRack 3 response hooks receive arrays for repeated header values, including\n\u003ccode\u003eSet-Cookie\u003c/code\u003e, and non-streaming statuses are integers. Update hooks that\nassumed newline-separated headers or string statuses. Rack 2 retains its\nnewline-separated header representation.\u003c/li\u003e\n\u003cli\u003eInvalid or ambiguous HTTP framing is now rejected, incomplete responses fail,\nand uploads without a known length use fresh chunked framing. Backends must\naccept properly framed HTTP/1.1 requests and send valid, complete responses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReframe decoded request bodies without a \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e using chunked\nencoding instead of sending body bytes after \u003ccode\u003eContent-Length: 0\u003c/code\u003e. Bound\nknown-length input streams so excess bytes cannot become another backend\nrequest; malformed lengths and prematurely ended uploads return \u003ccode\u003e400\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReject ambiguous backend framing (\u003ccode\u003eTransfer-Encoding\u003c/code\u003e with \u003ccode\u003eContent-Length\u003c/code\u003e,\nconflicting or invalid lengths, and unsupported transfer codings) with \u003ccode\u003e502\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eStrip response headers named by the backend's \u003ccode\u003eConnection\u003c/code\u003e fields as well as\nthe standard hop-by-hop headers.\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003emax_response_length\u003c/code\u003e before buffering each chunk in non-streaming\nmode, including rejecting declared oversized responses before reading them.\u003c/li\u003e\n\u003cli\u003eDetect premature EOF in fixed-length responses: return \u003ccode\u003e502\u003c/code\u003e before sending\nheaders, or raise while streaming so the server aborts the incomplete transfer.\u003c/li\u003e\n\u003cli\u003eDisable Net::HTTP transport retries in non-streaming mode as well as streaming\nmode, preventing replay with an already-consumed request body.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn integer statuses in non-streaming mode and preserve multiple response\nheader values as arrays on Rack 3 (including \u003ccode\u003eSet-Cookie\u003c/code\u003e). Rack 2 keeps its\nnewline-separated representation.\u003c/li\u003e\n\u003cli\u003eRemove entity headers forbidden by Rack on 1xx/204/304 responses. HEAD and\n304 representation sizes no longer incorrectly trigger the response body cap.\u003c/li\u003e\n\u003cli\u003eReplace a remaining live-host test with a local fixture and simulate failed\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/ncr/rack-proxy/blob/master/CHANGELOG.md\"\u003erack-proxy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.1] - 2026-09-16\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe bounded request body stream accepts \u003ccode\u003eIO#read\u003c/code\u003e's optional \u003ccode\u003elength\u003c/code\u003e\nargument. Net::HTTP instrumentation layers that read the whole request body\nat once (WebMock's adapter, for example) raised \u003ccode\u003eArgumentError\u003c/code\u003e against\n2.0.0, failing the test suite of any app that proxies a request body. (\u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[2.0.0] - 2026-09-05\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNon-streaming requests no longer automatically retry transport failures.\nThis prevents replay with consumed request input; applications that require\nretries must implement them with a fresh body and an explicit retry policy.\u003c/li\u003e\n\u003cli\u003eRack 3 response hooks receive arrays for repeated header values, including\n\u003ccode\u003eSet-Cookie\u003c/code\u003e, and non-streaming statuses are integers. Update hooks that\nassumed newline-separated headers or string statuses. Rack 2 retains its\nnewline-separated header representation.\u003c/li\u003e\n\u003cli\u003eInvalid or ambiguous HTTP framing is now rejected, incomplete responses fail,\nand uploads without a known length use fresh chunked framing. Backends must\naccept properly framed HTTP/1.1 requests and send valid, complete responses.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReframe decoded request bodies without a \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e using chunked\nencoding instead of sending body bytes after \u003ccode\u003eContent-Length: 0\u003c/code\u003e. Bound\nknown-length input streams so excess bytes cannot become another backend\nrequest; malformed lengths and prematurely ended uploads return \u003ccode\u003e400\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReject ambiguous backend framing (\u003ccode\u003eTransfer-Encoding\u003c/code\u003e with \u003ccode\u003eContent-Length\u003c/code\u003e,\nconflicting or invalid lengths, and unsupported transfer codings) with \u003ccode\u003e502\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eStrip response headers named by the backend's \u003ccode\u003eConnection\u003c/code\u003e fields as well as\nthe standard hop-by-hop headers.\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003emax_response_length\u003c/code\u003e before buffering each chunk in non-streaming\nmode, including rejecting declared oversized responses before reading them.\u003c/li\u003e\n\u003cli\u003eDetect premature EOF in fixed-length responses: return \u003ccode\u003e502\u003c/code\u003e before sending\nheaders, or raise while streaming so the server aborts the incomplete transfer.\u003c/li\u003e\n\u003cli\u003eDisable Net::HTTP transport retries in non-streaming mode as well as streaming\nmode, preventing replay with an already-consumed request body.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn integer statuses in non-streaming mode and preserve multiple response\nheader values as arrays on Rack 3 (including \u003ccode\u003eSet-Cookie\u003c/code\u003e). Rack 2 keeps its\nnewline-separated representation.\u003c/li\u003e\n\u003cli\u003eRemove entity headers forbidden by Rack on 1xx/204/304 responses. HEAD and\n304 representation sizes no longer incorrectly trigger the response body cap.\u003c/li\u003e\n\u003cli\u003eReplace a remaining live-host test with a local fixture and simulate failed\nDNS resolution without sending external DNS queries. Add offline adversarial\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/1ca3d3dc9a2aaf730ed25aa9685924d3d12450f3\"\u003e\u003ccode\u003e1ca3d3d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/146\"\u003e#146\u003c/a\u003e from ncr/release-2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/258e77307a34535b61f1fb47c22d6541dc8caecc\"\u003e\u003ccode\u003e258e773\u003c/code\u003e\u003c/a\u003e Bump version to 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/ec21cbd9d48e29f0abe33afb734f43468ad9ce65\"\u003e\u003ccode\u003eec21cbd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/145\"\u003e#145\u003c/a\u003e from rodrigobb/request-body-stream-optional-length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/52062bcf783a3e7750e4f3d2e1128843fb8ba7bd\"\u003e\u003ccode\u003e52062bc\u003c/code\u003e\u003c/a\u003e Accept IO#read's optional length in RequestBodyStream#read\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/9b84056bb2232c329c6d2b75b8d608fabb814d46\"\u003e\u003ccode\u003e9b84056\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ncr/rack-proxy/issues/144\"\u003e#144\u003c/a\u003e from ncr/release-2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ncr/rack-proxy/commit/31b8e03a8db00bf585098a8df100075eb777b689\"\u003e\u003ccode\u003e31b8e03\u003c/code\u003e\u003c/a\u003e Harden HTTP framing and response handling for 2.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ncr/rack-proxy/compare/v1.0.3...v2.0.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/shakacode/react-on-rails-demo-hacker-news-rsc/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakacode%2Freact-on-rails-demo-hacker-news-rsc/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-09-30T09:13:18.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5644075296","node_id":"PR_kwDOR8vZ4s8AAAABF3RU1Q","number":69,"state":"open","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-30T09:13:18.000Z","updated_at":"2026-09-30T09:13:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/is2b007/daybreak/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/is2b007%2Fdaybreak/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-09-29T23:33:44.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5638511984","node_id":"PR_kwDOSvSQPM8AAAABFy1X0A","number":36,"state":"closed","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-02T20:03:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-29T23:33:44.000Z","updated_at":"2026-10-02T20:03:28.000Z","time_to_close":246582,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/vryan95/FileShare/pull/36","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vryan95%2FFileShare/issues/36","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/36/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-09-29T17:14:12.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5634280932","node_id":"PR_kwDOUcT0As8AAAABFveIJQ","number":5,"state":"open","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-29T17:14:12.000Z","updated_at":"2026-09-29T17:14:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/rinkukushwah5679/dummy-application-for-vercel/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rinkukushwah5679%2Fdummy-application-for-vercel/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-09-28T02:14:33.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5608345384","node_id":"PR_kwDONqlwoc8AAAABFapVhg","number":214,"state":"closed","title":"Bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-28T02:14:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-28T02:14:33.000Z","updated_at":"2026-09-28T02:15:05.000Z","time_to_close":11,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/watanaberyunosuke/ruby-rail-shop/pull/214","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/watanaberyunosuke%2Fruby-rail-shop/issues/214","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/214/packages"}},{"old_version":"4.0.2","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-09-27T23:53:00.000Z","version_change":"4.0.2 → 4.1.0","issue":{"uuid":"5607385573","node_id":"PR_kwDOQzh0q88AAAABFZ5FCw","number":305,"state":"closed","title":"build(deps): bump solid_cable from 4.0.2 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-30T08:45:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-27T23:53:00.000Z","updated_at":"2026-09-30T08:45:10.000Z","time_to_close":204728,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.2 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.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=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.2\u0026new-version=4.1.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/izkreny/groupifico/pull/305","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/izkreny%2Fgroupifico/issues/305","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/305/packages"}},{"old_version":"4.0.0","new_version":"4.1.0","update_type":"minor","path":null,"pr_created_at":"2026-09-27T05:53:59.000Z","version_change":"4.0.0 → 4.1.0","issue":{"uuid":"5600185260","node_id":"PR_kwDOQzpxJc8AAAABFUc5CA","number":133,"state":"closed","title":"build(deps): bump solid_cable from 4.0.0 to 4.1.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-10-04T05:52:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-09-27T05:53:59.000Z","updated_at":"2026-10-04T05:52:40.000Z","time_to_close":604719,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\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/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/AndreRobitaille/TwoRiversReporter/pull/133","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreRobitaille%2FTwoRiversReporter/issues/133","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/133/packages"}},{"old_version":"3.0.12","new_version":"4.0.2","update_type":"major","path":"/backend","pr_created_at":"2026-08-08T02:34:08.000Z","version_change":"3.0.12 → 4.0.2","issue":{"uuid":"5095494911","node_id":"PR_kwDOS5T4aM78TRBV","number":64,"state":"open","title":"Bump solid_cable from 3.0.12 to 4.0.2 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-08T02:34:08.000Z","updated_at":"2026-08-08T02:37:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"3.0.12","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":"/backend","ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 3.0.12 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade ci to test against all ruby versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/76\"\u003erails/solid_cable#76\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop ruby 3.1 support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/77\"\u003erails/solid_cable#77\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetry if connection fails by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/75\"\u003erails/solid_cable#75\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEagerly initialize last_id to avoid skipping messages by \u003ca href=\"https://github.com/xrav3nz\"\u003e\u003ccode\u003e@​xrav3nz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/78\"\u003erails/solid_cable#78\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop ruby 3.2 support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHarden CI by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd connection timeout error and not established to the list of retryable connection errors by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\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/xrav3nz\"\u003e\u003ccode\u003e@​xrav3nz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/78\"\u003erails/solid_cable#78\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/solid_cable/compare/v3.0.12...v4.0.0\"\u003ehttps://github.com/rails/solid_cable/compare/v3.0.12...v4.0.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/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/363e49c98d239f41a84e333b12eebcc370685c6d\"\u003e\u003ccode\u003e363e49c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/beb66b250663354a184ba93cb1952ad88a332772\"\u003e\u003ccode\u003ebeb66b2\u003c/code\u003e\u003c/a\u003e Add connection timeout error and not established to the list of retryable con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/29bef6ae5ebc3ec0514e2ab993cfa04935105e4c\"\u003e\u003ccode\u003e29bef6a\u003c/code\u003e\u003c/a\u003e harden ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2e07205a298913e04caaa00cd3da018ea73e0097\"\u003e\u003ccode\u003e2e07205\u003c/code\u003e\u003c/a\u003e Drop ruby 3.2 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v3.0.12...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=3.0.12\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/git-kaz/loan-app/pull/64","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-kaz%2Floan-app/issues/64","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/64/packages"}},{"old_version":"4.0.0","new_version":"4.0.2","update_type":"patch","path":null,"pr_created_at":"2026-07-24T11:06:47.000Z","version_change":"4.0.0 → 4.0.2","issue":{"uuid":"4967846934","node_id":"PR_kwDOTbPeTM710esK","number":6,"state":"closed","title":"Bump solid_cable from 4.0.0 to 4.0.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-02T11:05:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-24T11:06:47.000Z","updated_at":"2026-10-02T11:05:35.000Z","time_to_close":6047926,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.0\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/2602IT0021-oca/furits_shop/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/2602IT0021-oca%2Ffurits_shop/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"4.0.0","new_version":"4.0.2","update_type":"patch","path":null,"pr_created_at":"2026-07-23T12:34:19.000Z","version_change":"4.0.0 → 4.0.2","issue":{"uuid":"4958846463","node_id":"PR_kwDOTSjnfs71XXsm","number":4,"state":"closed","title":"Bump solid_cable from 4.0.0 to 4.0.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-01T12:42:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-23T12:34:19.000Z","updated_at":"2026-10-01T12:42:59.000Z","time_to_close":6048518,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.0\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/michaeldoom1/Survivor-Back-End/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaeldoom1%2FSurvivor-Back-End/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"4.0.0","new_version":"4.0.2","update_type":"patch","path":null,"pr_created_at":"2026-07-23T05:14:03.000Z","version_change":"4.0.0 → 4.0.2","issue":{"uuid":"4955682285","node_id":"PR_kwDOTa9bnM71NJmQ","number":6,"state":"closed","title":"Bump solid_cable from 4.0.0 to 4.0.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-01T05:24:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-23T05:14:03.000Z","updated_at":"2026-10-01T05:24:37.000Z","time_to_close":6048632,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.0\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/AlmeidaLevi/Ficha_automatizada_OP/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlmeidaLevi%2FFicha_automatizada_OP/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"4.0.0","new_version":"4.0.2","update_type":"patch","path":null,"pr_created_at":"2026-07-22T13:25:03.000Z","version_change":"4.0.0 → 4.0.2","issue":{"uuid":"4949372528","node_id":"PR_kwDOTP86Fc704rXQ","number":7,"state":"closed","title":"Bump solid_cable from 4.0.0 to 4.0.2","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-09-30T13:24:25.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-22T13:25:03.000Z","updated_at":"2026-09-30T13:24:27.000Z","time_to_close":6047962,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"solid_cable","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/rails/solid_cable"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [solid_cable](https://github.com/rails/solid_cable) from 4.0.0 to 4.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReset retry counter on each successful poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/84\"\u003erails/solid_cable#84\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/solid_cable/compare/v4.0.1...v4.0.2\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.1...v4.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun ci against different rails versions by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/79\"\u003erails/solid_cable#79\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate adapter to handle ActionCable adapterization in 8.2 by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/80\"\u003erails/solid_cable#80\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset reconnect_attempt after successfuly accessing the DB. by \u003ca href=\"https://github.com/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/pascalbetz\"\u003e\u003ccode\u003e@​pascalbetz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/82\"\u003erails/solid_cable#82\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/solid_cable/compare/v4.0.0...v4.0.1\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.0...v4.0.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/4a41ec8b0b6ddb5dcfa4e8c9c0062d3bf40a2dc3\"\u003e\u003ccode\u003e4a41ec8\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/f781e4da90e7e0eb7e516abe0d185728f2086944\"\u003e\u003ccode\u003ef781e4d\u003c/code\u003e\u003c/a\u003e Reset retry counter on each successful poll (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/cf0695c54cb9c67cf49880d62141ee04aa0f9e84\"\u003e\u003ccode\u003ecf0695c\u003c/code\u003e\u003c/a\u003e Version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c968ba777f990194596d035e6ba50e1ee677a09c\"\u003e\u003ccode\u003ec968ba7\u003c/code\u003e\u003c/a\u003e Reset reconnect_attempt after successfuly accessing the DB. (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/5ea0f55505c0f4b491a988222bf4f5bc95574b30\"\u003e\u003ccode\u003e5ea0f55\u003c/code\u003e\u003c/a\u003e Update adapter to handle ActionCable adapterization in 8.2 (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/80\"\u003e#80\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/89d34d7890920523aa8a694cccb902dc5bd3ddc6\"\u003e\u003ccode\u003e89d34d7\u003c/code\u003e\u003c/a\u003e Run ci against different rails versions (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.0...v4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=solid_cable\u0026package-manager=bundler\u0026previous-version=4.0.0\u0026new-version=4.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/sdnr1418/Foodnerd_Practice/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdnr1418%2FFoodnerd_Practice/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}}]}